arduino控制A9G发送短信
2024-08-24 23:20:22
#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);
} }
最新文章
- [Data Structure] LCSs——最长公共子序列和最长公共子串
- 【转】最近公共祖先(LCA)
- Android中View的事件分发机制
- (转载)AppScan使用分享
- (斐波那契总结)Write a method to generate the nth Fibonacci number (CC150 8.1)
- 如何点击按钮后在加载外部的Js文件
- 我所理解的 惠普云 (HP Cloud)
- 比较setImmediate(func),setTimeout(func),process.nextTick(func)
- 微软Hololens学院教程- Holograms 101: Introduction with Device【微软教程已经更新,本文是老版本】
- 【原创整理,基于JavaScript的创建对象方式的集锦】
- iOS 本地化应用程序(NSLocalizedString)
- Linux时间子系统之(四):timekeeping
- Netty的基本使用
- git命令之git remote的用法
- vue-cli —— 项目打包及一些注意事项
- python faker 生成随机类型字符串
- python 排序算法
- python - class类 (二) 静态属性/类方法/静态方法
- redis mongodb mysql 三大数据库的更简单的批量操作。批量任务自动聚合器。
- JavaScriptSerializer的日期转换方案
热门文章
- Best Cow Line <;挑战程序设计竞赛>; 习题 poj 3617
- Where does Oracle SQL Developer store connections? oracle SQL Developer 连接信息保存的位置,什么地方
- SSM框架(Spring + Spring MVC + Mybatis)搭建
- bzoj5092 分割序列
- AntzOs系列导航
- go get 获取被墙依赖包解决方法
- typescript里一些有趣的点
- 试着用workerman开发一个在线聊天应用
- IT兄弟连 Java语法教程 综合案例
- js移动端自适应动态设置html的fontsize