Управление светодиодом с помощью SIM900A и Arduino
Как включить и выключить светодиод с помощью полученного текстового сообщения?
Сим-карта может получить сообщение, но я не могу изменить статус PIN-кода. Я также ничего не вижу на последовательном мониторе после получения сообщения.
Ниже мой код.
#include <SoftwareSerial.h>
SoftwareSerial gsm(2,3);
String msg;
const int LED = 13;
void setup() {
gsm.begin(9600);
Serial.begin(9600);
Serial.println("PUMP CONTROL");
Serial.println("t : to receive text");
delay(1000);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
}
void loop() {
if (Serial.available()>0)
switch(Serial.read())
{
case 't':
showSMS();
break;
}
if (gsm.available()>0)
Serial.write(gsm.read());
if ( msg == "ON")
{
digitalWrite(LED, HIGH);
delay(1000);
}
if (msg == "OFF")
{
digitalWrite(LED, LOW);
delay(1000);
}
}
void showSMS()
{
gsm.print("AT+CMGF=1\r");
gsm.print("AT+CNMI=2,2,0,0,0\r");
delay(1000);
if (gsm.available()>0)
{
msg=gsm.read();
Serial.print(msg);
}
}
@Shadrick Katawa, 👍4
Обсуждение1 ответ
▲ 1
Попробуйте этот код.
#include <SoftwareSerial.h>
SoftwareSerial gsm(2,3);
String msg;
const int LED = 13;
void setup() {
gsm.begin(9600);
Serial.begin(9600);
Serial.println("PUMP CONTROL");
Serial.println("t : to receive text");
delay(1000);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
}
void loop() {
if (Serial.available()>0)
switch(Serial.read())
{
case 't':
showSMS();
break;
}
while(gsm.available() > 0)
{
Serial.write(gsm.read());
}
if ( msg == "ON")
{
digitalWrite(LED, HIGH);
delay(1000);
} else if (msg == "OFF")
{
digitalWrite(LED, LOW);
delay(1000);
}
if(msg != "") msg = "";
}
void showSMS()
{
gsm.print("AT+CMGF=1\r");
gsm.print("AT+CNMI=2,2,0,0,0\r");
delay(1000);
msg = "";
while(gsm.available() > 0)
{
msg += gsm.read();
}
Serial.println(msg);
}
,
@jdwolf
Этот код работает как шарм., @opu 웃
Смотрите также:
- avrdude ser_open() can't set com-state
- Float печатается только 2 десятичных знака после запятой
- ошибка: espcomm_upload_mem failed при загрузке скетча
- Печать массива байтов на экране последовательного монитора Arduino IDE
- Разные и самые быстрые способы вычисления синусов и косинусов в Arduino
- Arduino IDE Отказано В Разрешении На Загрузку, Ubuntu
- Нет заголовочных файлов (.h) в Documents\Arduino\libraries\arduino_144469 с демонстрационным кодом
- Связь Arduino master/slave с использованием RS485
gsm.read()
возвращает один символ, а не строку., @gre_gor