标签:电话号码 fine 接收 mda software 移动 调用 listen 直接
串口接收短信内容,发出去
1修改号码
2发送的是纯英文
#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); } }
标签:电话号码 fine 接收 mda software 移动 调用 listen 直接
原文地址:https://www.cnblogs.com/kekeoutlook/p/12181144.html