|
|
最近得到一块 GSM/GPRS shield sim900无线通讯开发板,想通过收到短消息进行判断控制继电器进行工作,下面是代码:
- #include <SoftwareSerial.h>
- SoftwareSerial gprs(7,8);
- String comdata="";
- String ope="open";
- String cls="close";
- String cmgr="AT+CMGR=";
- String newmsg="+CMTI: "sm"";
- String msg="+CMI:";
- void setup(){
- gprs.begin(19200);
- Serial.begin(19200);
- gprs.println("AT+CMGF=1");
- delay(350);
- gprs.println("AT+CNMI=2,2");
- delay(350);
- }
- void loop(){
- if(gprs.available()){
- while(gprs.available()){
- comdata +=char(gprs.read());
- }
- if(comdata.length()>0){
- // if(comdata.indexOf(newmsg)!=-1){
- // Serial.println("AT+CMGR="+comdata.substring(12,comdata.length()));
- // gprs.println("AT+CMGR="+comdata.substring(12,comdata.length()));
- // delay(1000);
- // dodata();
- // }
- dodata();
- }
- Serial.println(comdata);
- comdata = "";
- }
- if(Serial.available()){
- gprs.write(Serial.read());
- }
- }
- void dodata(){
- if(comdata.indexOf(msg)!=-1 && comdata.indexOf(ope)!=-1){
- // Serial.println("open message");
- Serial.println("Open door!");
- }
- if(comdata.indexOf(msg)!=-1 && comdata.indexOf(cls)!=-1){
- // Serial.println("open message");
- Serial.println("Close door!");
- }
- }
复制代码
可以收到消息,但是不能对消息进行处理!
|
|