GSM модуль. не могу принят сообщении
- Войдите на сайт для отправки комментариев
Пнд, 13/10/2014 - 21:07
Здравствуйте. Взял такое код с сайта для приема сообщении.
Но не могу связать действии с получением сообщении. помогите пожалуйста...
#include <SoftwareSerial.h> SoftwareSerial gprsSerial(7, 8); //для зелёного светодиода будем использовать второй цифровой вход, //а для жёлтого - третий int greenPin = 12; int yellowPin = 13; void setup() { Serial.begin(9600); gprsSerial.begin(19200); pinMode(greenPin, OUTPUT); pinMode(yellowPin, OUTPUT); // Настраиваем приём сообщений с других устройств // Между командами даём время на их обработку gprsSerial.print("AT+CMGF=1\r"); delay(300); gprsSerial.print("AT+IFC=1, 1\r"); delay(300); gprsSerial.print("AT+CPBS=\"SM\"\r"); delay(300); gprsSerial.print("AT+CNMI=1,2,2,1,0\r"); delay(500); } String currStr = ""; // Переменная принимает значение True, если текущая строка является сообщением boolean isStringMessage = false; void loop() { if (!gprsSerial.available()) return; char currSymb = gprsSerial.read(); Serial.print(currSymb); delay(10); if ('\r' == currSymb) { if (isStringMessage) { //если текущая строка - SMS-сообщение, //отреагируем на него соответствующим образом if (!currStr.compareTo("Green on")) { digitalWrite(greenPin, HIGH); } else if (!currStr.compareTo("Green off")) { digitalWrite(greenPin, LOW); } else if (!currStr.compareTo("Yellow on")) { digitalWrite(yellowPin, HIGH); } else if (!currStr.compareTo("Yellow off")) { digitalWrite(yellowPin, LOW); } isStringMessage = false; } else { if (currStr.startsWith("+CMT")) { //если текущая строка начинается с "+CMT", //то следующая строка является сообщением isStringMessage = true; } } currStr = ""; } else if ('\n' != currSymb) { currStr += String(currSymb); } }
сделал монитор характера 'currSymbol' он пишет мне следующие сообщение:
AT+CMGF=1
OK
AT+IFC=1, 1
OK
AT+CPBS="SM"
OK
AT+CNMI=1,
+CMT: "+994505873388","","14/10/13,21:55:56+20"
Green on
напишите вопросы на вашем родном языке, авось поймём. Кажется, тут google translate не справляется.
сделайте монитор струны currStr. Проверьте что после \n отсутствует \r
сделайте монитор струны currStr. Проверьте что после \n отсутствует \r
Осваиваешь новый язык? Гыыы
сделайте монитор струны currStr. Проверьте что после \n отсутствует \r
зачет :)
я бы написал
курсорСтруны что после упалНафиг не упалРезко
объясние мне пожалуйста по подробнее о команде CNMI. я что то недопонел о ней в документации.
какая цифра что означает после нее?