Не могу программно заставить работать SIM800L
- Войдите на сайт для отправки комментариев
Пт, 03/03/2017 - 06:31
Пересмотел много форумов и испробовал кучу вариатнтов. Не могу понять, если задавать программы через Serial монитор все работает, а программно нет. Например текстовые смс через Serial монитор отправяются, а через программу нет. Питание sim800 через dc-dc от БП. Пробовал и этот скетч, тишина. Если все задать через порт то смс отпрпвляется. Плата ардуино мега. Мне кажется, что это связано со скоростью передачи c ардуино в SIM800. Как этопроверить и изменить не знаю.
#include <AltSoftSerial.h> AltSoftSerial mySerial; // 46,48 #include <SoftwareSerial.h> SoftwareSerial mySerial(50, 51); // RX, TX HardwareSerial & mySerial = Serial1; void send_sms(String sms_number, String sms_text) { delay(1500); mySerial.print("AT+CMGS="); // send the SMS the number mySerial.print((char)34); // передача в порт символа " mySerial.print((String)sms_number); // передача номера телефона mySerial.print((char)34); // передача в порт символа " mySerial.print((char)13); delay(1500); mySerial.println((String)sms_text); // передача текста сообщения delay(500); mySerial.print((char)26); // передача ^Z mySerial.print((char)13); // передача Enter } void setup() { Serial.begin(9600); mySerial.begin(9600); mySerial.println("AT+CMGF=1"); // выставляем текстовым режим сообщений delay(2000); mySerial.print("AT+CSCS="); mySerial.print((char)34); // передача в порт символа " mySerial.print("IRA"); mySerial.print((char)34); // передача в порт символа " mySerial.print((char)13); // передача в порт Enter send_sms("+7901*****40","test"); //вместо звездочек ставим свой номер мобильного; } void loop() // пустой цикл { }
Еще хотел сипросить у кого какая прошивка SIM800L стоит. У меня 1418B02SIM800L24-115200, на официальном сайте я такой проишиви не увидел, там 1308B04SIM800L16,
Я конечно не такой гуру програмирования как тут некоторые, но уже больше года ковыряя SIM800L научился оправлять и принимать смс. И чисто для себя хочу понять, зачем в первом коде существование 2-х Сериалов со своими библиотеками, при условии, что в конфигурации требуется подключить только один модем? Достаточно просто
#include <SoftwareSerial.h>
05
SoftwareSerial mySerial(50, 51);
// RX, TX
Порты с прерываниями, так что пойдет.
Этот кусок вообще не вкуриваю, зачем??? HardwareSerial & mySerial = Serial1;
Упрости и должно заработать
Спасибо за совет, я так пробовал. при чем прием смс проходит, а вот отправка нет. Уже все мозги себе промыл. подключаю sim900 на этот же код работает. Буду дальше пробовать.