极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10061|回复: 1

求助!gprs扩展板接收短信

[复制链接]
发表于 2014-5-14 17:52:44 | 显示全部楼层 |阅读模式
最近得到一块 GSM/GPRS shield sim900无线通讯开发板,想通过收到短消息进行判断控制继电器进行工作,下面是代码:
  1. #include <SoftwareSerial.h>
  2. SoftwareSerial gprs(7,8);
  3. String comdata="";
  4. String ope="open";
  5. String cls="close";
  6. String cmgr="AT+CMGR=";
  7. String newmsg="+CMTI: "sm"";
  8. String msg="+CMI:";
  9. void setup(){
  10.   gprs.begin(19200);
  11.   Serial.begin(19200);
  12.   gprs.println("AT+CMGF=1");
  13.   delay(350);
  14.   gprs.println("AT+CNMI=2,2");
  15.   delay(350);
  16. }

  17. void loop(){
  18.   if(gprs.available()){
  19.     while(gprs.available()){
  20.       comdata +=char(gprs.read());
  21.     }
  22.     if(comdata.length()>0){
  23. //      if(comdata.indexOf(newmsg)!=-1){
  24. //        Serial.println("AT+CMGR="+comdata.substring(12,comdata.length()));
  25. //        gprs.println("AT+CMGR="+comdata.substring(12,comdata.length()));
  26. //        delay(1000);
  27. //        dodata();
  28. //      }
  29.       dodata();
  30.     }
  31.     Serial.println(comdata);
  32.     comdata = "";
  33.   }
  34.   if(Serial.available()){
  35.     gprs.write(Serial.read());
  36.   }
  37. }

  38. void dodata(){
  39.   if(comdata.indexOf(msg)!=-1 && comdata.indexOf(ope)!=-1){
  40. //    Serial.println("open message");
  41.     Serial.println("Open door!");
  42.   }
  43.   if(comdata.indexOf(msg)!=-1 && comdata.indexOf(cls)!=-1){
  44. //    Serial.println("open message");
  45.     Serial.println("Close door!");
  46.   }
  47. }
复制代码


可以收到消息,但是不能对消息进行处理!
回复

使用道具 举报

发表于 2014-7-4 17:46:58 | 显示全部楼层
你好,我最近也在做一个和你一样的项目,arduino通过接收短信控制继电器。 网上找资料的时候发现了你的帖子,也遇到和你一样的问题。 请问你的问题解决了么? 能不能和我交流交流
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 07:56 , Processed in 0.058085 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表