SIM800L + Arduino Uno не отправляет SMS
Я пытаюсь настроить Arduino на отправку SMS-сообщений с помощью SIM800L и AT-команд, но по какой-то причине это сообщение никогда не отправляется. Я так долго пробовал различные исходные коды с разных сайтов, что купил и попробовал 3 разных чипа SIM800L и даже попробовал чип SIM808, но проблема всегда одна и та же...
Я могу подтвердить, что у меня есть сетевое соединение с чипом, и он будет получать сообщения.
Я использую приведенный ниже код для отправки сообщения. Я вставил свой номер телефона. Когда появляется сообщение на последовательном мониторе, оно останавливается именно там, что наводит меня на мысль, что это может быть как-то связано с отправкой символа 26 по последовательному каналу для завершения сообщения. Предполагается, что на этом этапе будет возвращен идентификатор сообщения, чтобы показать, что сообщение было отправлено, но оно не отображается.
Я также пытался преобразовать символ 26 следующим образом: (char(26)), но этот символ может быть отвлекающим маневром - я не знаю.
#include <SoftwareSerial.h>
//Создание программного последовательного объекта для связи с SIM800L
SoftwareSerial mySerial(11, 10); //SIM800L Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Начать последовательную связь с Arduino и Arduino IDE (последовательный монитор)
Serial.begin(9600);
//Начните последовательную связь с Arduino и SIM800L
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //После успешного теста рукопожатия он вернется к ОК
updateSerial();
mySerial.println("AT+CMGF=1"); // Настройка ТЕКСТОВОГО режима
updateSerial();
mySerial.println("AT+CMGS=\"+44mynumberwithout0\"");//изменить ZZ с кодом страны и xxxxxxxxxxx с номером телефона на sms
updateSerial();
mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //text content
updateSerial();
mySerial.write(26);
}
void loop()
{
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Переадресация полученных последовательных сообщений на Последовательный порт программного обеспечения
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Переслать то, что Последовательное программное обеспечение получило на последовательный порт
}
}
@connersz, 👍0
Обсуждение0
- Ошибка ftp sim800l после http-запроса
- Можно ли запустить две функции в arduino одновременно?
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
в чем причина отправки 26?, @jsotola
@jsotola "Введенное текстовое сообщение, за которым следует символ "Ctrl+z", рассматривается как SMS. "Ctrl+z’ на самом деле является 26-м непечатаемым символом, описанным как" замена’ в таблице ASCII. Итак, нам нужно отправить 26DEC (1AHEX), как только мы отправим сообщение"., @connersz