GSM модуль не работает после отключения питания
Я делаю проект на gsm-модуле(sim 900a неофициальный шилд), когда я отправлю SMS, светодиод загорится. после загрузки кода модуль работает нормально, а светодиод включается после отправки сообщения. Но когда я выключаю sim900a и Arduino и снова включаю, он не работает, светодиод не включается после отправки сообщения, когда я повторно загружаю скетчи, он работает нормально, это означает, что каждый раз после отключения питания мне нужно снова загрузить код, я изучение c и не имеют много знаний? Мой код правильный? Или какая-то другая неисправность?
#include <SoftwareSerial.h> //программная последовательная библиотека для последовательной связи ч/б arduino & GSM
SoftwareSerial mySerial(8, 9);//подключаем контакт Tx GSM к контакту 8 arduino && Контакт Rx GSM к контакту № 9 Arduino
int led = 7;
String message;
void setup()
{
mySerial.begin(9600); // Установка скорости передачи GSM-модуля
Serial.begin(9600); // Установка скорости передачи Serial Monitor (Arduino)
delay(100);
mySerial.println("AT+CNMI=2,2,0,0,0"); // AT-команда для получения живого SMS
delay(1000);
pinMode(led,OUTPUT);
digitalWrite(led,LOW);
}
void loop()
{
if (mySerial.available()>0){
message = mySerial.readString();
}
if(message.indexOf("ON") > -1){
Serial.println("LED ON");
digitalWrite(led,HIGH);
}
else if(message.indexOf("OFF") > -1){
Serial.println("LED OFF");
digitalWrite(led,LOW);
}
delay(10);
}
Схема
@Devid, 👍0
1 ответ
Для запуска GSM требуется время. Ваша программа должна быть намного сложнее, чем простой метод «Бросьте в нее команды и надейтесь», который вы используете.
Сначала вам нужно несколько раз опрашивать модем, пока он не ответит. Обычно это делается с помощью команды AT
. Последовательность будет выглядеть так:
Send: AT
(Wait for OK response or timeout)
Send: AT
(Wait for OK response or timeout)
Send: AT
(Wait for OK response or timeout)
Send: AT
(Wait for OK response or timeout)
Recv: OK
После того, как модем загрузится и будет готов принимать команды, вы можете начать отправку команд. Вы не должны просто «распечатать и отложить», как сейчас. Вместо этого вы должны отправить команду, а затем проверить ответ, чтобы увидеть, сработала ли команда ("OK") или нет ("ERR").
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
- Мини-модем SIM900a, IMEI 0, помощь с контактами TX RX
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не регистрируется в сети
- Как отправлять сообщения на несколько номеров с помощью модуля Arduino uno и SIM800?
- Клиент MQTT на Arduino + SIM900
- Какие контакты Arduino UNO можно использовать в качестве контактов Tx и Rx для подключения к GSM GPRS SIM 900A
Есть ли какая-нибудь библиотека для него на GitHub, или у вас есть заранее написанный код, который отлично работает, я не очень хорошо разбираюсь в «C», я фермер, и моя ферма находится в 3 км от моего дома, поэтому я хочу сделать воду мотор-автомат, которым я хочу управлять из дома,, @Devid
@Devid Arduino IDE поставляется с библиотекой GSM в комплекте. Я никогда не использовал его, поэтому я не знаю, работает ли он с SIM900A., @Majenko