【问题标题】:Sim900 + arduino server stops listening after a whileSim900 + arduino 服务器在一段时间后停止监听
【发布时间】:2014-05-31 18:29:50
【问题描述】:

所以我尝试制作一个 arduino + sim900 gprs 服务器,但一段时间后服务器停止响应 http 请求,状态仍然是“正在侦听”,但它只是没有“发现”任何新请求。重新启动连接即可​​解决问题,

以下是来自服务器的 at 命令和回复:

AT+CREG?

+CREG: 0,1
AT+CSCLK=0

OK
AT+CIPMUX=1

OK
AT+CIPMODE=0

+CME ERROR: 3

AT+IFC=2,2

OK
AT+CGATT=1

OK
AT+CIPRXGET=1

OK
AT+CIPCSGP=1,"publicip.net.il","",""

OK
AT+CSTT

OK
AT+CIICR

OK
AT+CIFSR

2.
AT+CSQ

+CSQ: 22,0

OK
AT+CIPSERVER=1,80

OK

SERVER OK


0, REMOTE IP
AT+CIPRXGET=2,0,1024
: 192.163.218.62

+CIPRXGET:1,0

+CIPRXGET:2,0,53,0
GET /get HTTP/1.1
Host: 2.55.73.164
Accept: */*
SEND DATA
SEND_DATA FUNCTION::
AT+CIPSEND=0,221

>
1;1000;2000;0;0;1;2;0;0;0;1;1000;2000;0;0;1;2;0;0;0;1;0;10;0;0;1;2;0;0;0;1;0;10;0;0;1;2;0;0;0;1;0;10;1;0;1;2;0;0;0;1;0;10;1;0;1;2;0;0;0;1;0;10;1;0;1;2;0;0;0;1;0;10;0;0;1;2;0;0;0;0;1;941;0;1003166680;0;0;51;52;20;31;5;2013

0, SEND OK
AT+CIPCLOSE=0,0

0, CLOSE OK

我该如何解决这个问题?它让我发疯,sim900 带有种子工作室 gprs sheild: www.seeedstudio.com/wiki/GPRS_Shield_V2.0

经过一些尝试,我开始意识到发送多个请求通常会导致此问题,但此 CIPMUX 为 1,因此假设最多有 10 个多个连接..

【问题讨论】:

  • 我也遇到了同样的问题!你找到解决办法了吗??
  • 不,我换了角色,让sim900成为客户端。它也更省电

标签: arduino gsm gprs sim900


【解决方案1】:

我找到了一个解决方案,但我不确定它是否适用于所有人。我发现我需要在运行 AT+CIPCLOSE 后发送换行符才能将文本从缓冲区中取出。例如:

SIM900.println((char)26);
SIM900.println("");
SIM900.println("AT+CIPCLOSE");
SIM900.println("");

另外需要注意的是,你需要尽可能快地读取缓冲区,否则它会溢出,你会错过一些响应

【讨论】:

  • 我拿到零钱就试试
猜你喜欢
  • 2017-07-28
  • 2019-10-20
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多