#include<SoftwareSerial.h>

#define phonenum_call "18150561160"  // 最好移动卡  联通卡支持度不是很好

SoftwareSerial softSerial1(4,5);//软串口RXD4、TXD5,与短信模块通信
int sendMeg(String phonenum,String text)//发送信息的函数,直接调用即可,无需修改
{ softSerial1.println("AT");//对GSM发送AT,看响应
char comdata=0;//判断接收到的最后一位是否对
String phone="";//电话号码存储
phone="AT+CMGS=\""+phonenum+'\"';
while (softSerial1.available() > 0){
comdata = softSerial1.read(); //每次读一个char字符,并相加
delay(2);
}
softSerial1.println("AT");//对GSM发送AT,看响应
delay(1000);
while (softSerial1.available() > 2){
comdata = softSerial1.read(); //每次读一个char字符,并相加
Serial.print(comdata);//错误
delay(2);
}
if(comdata!='K')//判断没有收到OK
{
Serial.println("error1");//错误
// return 0;
}
comdata=0;
softSerial1.println("AT+CMGF=1");//设置GSM文本模式
delay(500);
while (softSerial1.available() > 2){
comdata = softSerial1.read(); //每次读一个char字符,并相加
delay(2);
} if(comdata!='K')//没有收到OK
{
Serial.println("error2");
// return 0;
}
comdata=0;
softSerial1.println(phone);//发送的目标号码
delay(1000);
while (softSerial1.available() > 1){
comdata = softSerial1.read(); //每次读一个char字符,并相加
delay(2);
} if(comdata!='>')//没有收到>
{
Serial.println("error3");
// return 0;
}
comdata=0;
softSerial1.print(text);//发送所写内容
delay(500);
softSerial1.write(0x1A); //结束输入文本,并发送
Serial.println("success"); //成功 } void setup(){
//硬串口
Serial.begin(9600);
//监听软串口通信
softSerial1.begin(9600);
softSerial1.listen();
delay(5000);
}
String comdata;
void loop(){ if(Serial.available()>0){
// delay(1);//影响读取速度
comdata = Serial.readString();
sendMeg(phonenum_call,comdata);//给15147300333 发送信息
comdata="";
delay(3000);
} }

  

最新文章

  1. [Data Structure] LCSs——最长公共子序列和最长公共子串
  2. 【转】最近公共祖先(LCA)
  3. Android中View的事件分发机制
  4. (转载)AppScan使用分享
  5. (斐波那契总结)Write a method to generate the nth Fibonacci number (CC150 8.1)
  6. 如何点击按钮后在加载外部的Js文件
  7. 我所理解的 惠普云 (HP Cloud)
  8. 比较setImmediate(func),setTimeout(func),process.nextTick(func)
  9. 微软Hololens学院教程- Holograms 101: Introduction with Device【微软教程已经更新,本文是老版本】
  10. 【原创整理,基于JavaScript的创建对象方式的集锦】
  11. iOS 本地化应用程序(NSLocalizedString)
  12. Linux时间子系统之(四):timekeeping
  13. Netty的基本使用
  14. git命令之git remote的用法
  15. vue-cli —— 项目打包及一些注意事项
  16. python faker 生成随机类型字符串
  17. python 排序算法
  18. python - class类 (二) 静态属性/类方法/静态方法
  19. redis mongodb mysql 三大数据库的更简单的批量操作。批量任务自动聚合器。
  20. JavaScriptSerializer的日期转换方案

热门文章

  1. Best Cow Line &lt;挑战程序设计竞赛&gt; 习题 poj 3617
  2. Where does Oracle SQL Developer store connections? oracle SQL Developer 连接信息保存的位置,什么地方
  3. SSM框架(Spring + Spring MVC + Mybatis)搭建
  4. bzoj5092 分割序列
  5. AntzOs系列导航
  6. go get 获取被墙依赖包解决方法
  7. typescript里一些有趣的点
  8. 试着用workerman开发一个在线聊天应用
  9. IT兄弟连 Java语法教程 综合案例
  10. js移动端自适应动态设置html的fontsize