网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月03日漏签0天
arduino吧 关注:75,486贴子:230,541
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 15回复贴,共1页
<<返回arduino吧
>0< 加载中...

【求助】sim900a

  • 只看楼主
  • 收藏

  • 回复
  • 爻齐烟
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
各位大佬们好。我是一个高二的学生,最先是在学校玩创客用mixly图形化编程入门。后来很感兴趣就买书自学了用IDE来编程。最近要参加一个创客比赛,想用sim900a做自动报警模块。先是按照书写了一个自动发送短信的程序。但是上传后,串口一直打印ATE0,arduino给sim900a发送指令但是没有回复。后来我试着用软串口写了一个程序,但是程序有bug,就是我写的是直接让他在软串口打印AT指令,没有一个检测是否收到消息的程序,所以很不稳定,运气好点整套指令完整发过去了就可以发消息,运气不好信号不好就发不了。所以想来问问我第一个程序问题在哪里为什么用不了或者,第二个程序该怎么改善。


  • 爻齐烟
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是按照参考书上
#define MAXCHAR 81
char array[MAXCHAR];
int temp=0;
int g_timeout=0;
char ATE0[]="ATE0";
char CREG_CMD[]="AT+CREG?";
char SMS_send[]="AT+CMGS=18";
char ATCN[]="AT+CNMI=2,1";
char CMGF0[]="AT+CMGF=0";
char CMGF1[]="AT+CMGF=1";
char CMGR12[]="AT+CMGR=1";
char CMGD12[]="AT+CMGD=1";
#define SEND_MESSA_TO_YOUR"at+cmgs=\"15xxxxxxxxxx\"\r\n"
#define SEND_MESSA_CONTENT"arduino group test"
int readSerial(char result[])
{
int i=0;
while(Serial.available()>0)
{
char inChar=Serial.read();
if(inChar=='\n')
{
result[i]='\0';
Serial.flush();
return 0;}
if(inChar!='\r')
{
result[i]=inChar;
i++;
}
}
}
void clearBuff(void)
{
int j=0;
for(temp=0;j<MAXCHAR;j++)
{
array[temp]+0x00;
}
temp=0;
}
int Hand(char*s)
{
delay(200);
clearBuff();
delay(300);
readSerial(array);
if(strstr(array,s)!=NULL)
{
g_timeout=0;
clearBuff();
return 1;
}
if(g_timeout>50)
{
g_timeout=0;
return -1;
}
g_timeout++;
return 0;
}
void AT(void)
{
clearBuff();
Serial.println(ATE0);
delay(50);
readSerial(array);
while(strstr(array,"OK")==NULL)
{
clearBuff();
Serial.println(ATE0);
delay(50);
readSerial(array);
}
clearBuff();
Serial.println(ATCN);
delay(500);
while(Hand("OK")==0);
while(1)
{
clearBuff();
Serial.println(CREG_CMD);
delay(500);
readSerial(array);
if((strstr(array,"0,1")!=NULL)||(strstr(array,"0,5")!=NULL))
{
clearBuff();
break;
}
}
}
void send_english(void)
{
clearBuff();
Serial.println(CMGF1);
delay(500);
while(Hand("OK"==0));
clearBuff();
Serial.println(SEND_MESSA_TO_YOUR);
delay(500);
while(Hand(">"==0));
Serial.println(SEND_MESSA_CONTENT);
delay(100);
Serial.print("\x01A");
delay(10);
while(Hand("OK"==0));
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
AT();
send_english();
delay(200);
clearBuff();
delay(1000);
while(1);
}


2025-11-03 23:03:11
广告
不感兴趣
开通SVIP免广告
  • 爻齐烟
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是后来自己用软串口写的
#include <SoftwareSerial.h>
#define SEND_MESSA_TO_YOUR"at+cmgs=\"15119209236\"\r\n"
#define SEND_MESSA_CONTENT"arduino group test"
SoftwareSerial softSerial(8,9); //自定义软串口 RX=8 TX=9
void setup() {
Serial.begin(9600);
softSerial.begin(9600);
}
//loop主函数,循环执行
void loop() {
// 计算相对应的显示数值
softSerial.print("AT\r\n");
printLine();
delay(2000);
softSerial.print("AT+CSQ\r\n");
printLine();
delay(2000);
softSerial.print("AT+CPIN?\r\n");
printLine();
delay(2000);
softSerial.print("AT+COPS?\r\n");
printLine();
delay(2000);
softSerial.print("AT+CMGF=1\r\n");
printLine();
delay(2000);
softSerial.print(SEND_MESSA_TO_YOUR);
printLine();
softSerial.print(SEND_MESSA_CONTENT);
printLine();
delay(2000);
softSerial.print("\x01A");
printLine();
delay(2000);
}


  • 2925059
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
是不是供电不足导致的问题?


  • 爻齐烟
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
dd


  • 爻齐烟
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有人吗,麻烦救救孩子吧


  • 2925059
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我当时用的是 dfrobot 的 smi808 模块,也是 5v 供电,但是特别说了,发射的时候功率比较大,arduino 供电不足。最后是用2个 18650 串联供电的。


  • 浮云你晓得
  • 富有名气
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
sim900我记得有库的,我之前开发使用商家给的程序来做


2025-11-03 22:57:11
广告
不感兴趣
开通SVIP免广告
  • 爻齐烟
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
已经解决了,是因为供电不足


  • 饼哥就是我
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这个模块调试很麻烦,我当初做的麻烦的要死


  • 邀请函
  • 富有名气
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
6666


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 15回复贴,共1页
<<返回arduino吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示