Не могу программно заставить работать SIM800L

vgk_com
Offline
Зарегистрирован: 02.03.2017

Пересмотел много форумов и испробовал кучу вариатнтов. Не могу понять, если задавать программы через 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() // пустой цикл
{

}

 

vgk_com
Offline
Зарегистрирован: 02.03.2017

Еще хотел сипросить у кого какая прошивка SIM800L стоит. У меня 1418B02SIM800L24-115200, на  официальном сайте я такой проишиви не увидел, там 1308B04SIM800L16

V-max VL
Offline
Зарегистрирован: 22.04.2016

Я конечно не такой гуру програмирования как тут некоторые, но уже больше года ковыряя SIM800L научился оправлять и принимать смс. И чисто для себя хочу понять, зачем в первом коде существование 2-х Сериалов со своими библиотеками, при условии, что в конфигурации требуется подключить только один модем? Достаточно просто 

#include <SoftwareSerial.h>
05 SoftwareSerial mySerial(50, 51); // RX, TX

Порты  с прерываниями, так что пойдет.

Этот кусок вообще не вкуриваю, зачем??? HardwareSerial & mySerial = Serial1;

Упрости и должно заработать

vgk_com
Offline
Зарегистрирован: 02.03.2017

Спасибо за совет, я так пробовал. при чем прием смс проходит, а вот отправка нет. Уже все мозги себе промыл. подключаю sim900 на этот же код работает. Буду дальше пробовать.