SMS через SIM800L

Тема в разделе "Arduino & Shields", создана пользователем stasych, 21 сен 2016.

  1. stasych

    stasych Нерд

    Имеется модуль
    https://ru.aliexpress.com/item/SIM8...467842817.html?spm=2114.13010608.0.134.2Icd8O
    и mega 2560.

    Код (C++):
    #include <SoftwareSerial.h>

    SoftwareSerial gprsSerial(15,16);

    void setup() {
      // put your setup code here, to run once:
    gprsSerial.begin(19200); // Cкорость передачи данных модуля
    Serial.begin(19200);
    delay(500);

        gprsSerial.print("AT+CMGF=1\r");
        delay(100); // даём время на усваивание команды
        // Устанавливаем адресата: телефонный номер в международном формате
        gprsSerial.println("AT + CMGS = \"+79001110011\"");
        delay(100);
        // Пишем текст сообщения
        gprsSerial.println("ALARM!");
        delay(100);
        // Отправляем Ctrl+Z, обозначая, что сообщение готово
        gprsSerial.println((char)26);gprsSerial.print("AT+CMGF=1\r");
       
    }

    void loop() {

    }
    к 15 ноге Меги подключаю TX шилда, к 16 ноге Меги подключаю RX.
    СМС пока не приходит. Симка в порядке, питание в порядке. Подскажите где проблема.
    Заранее спасибо.
     
  2. obuhanoe

    obuhanoe Гик

    На AT команды отвечает модуль?
    на китайской меге перепутаны наименования 14 и 15 ног и 16,17 и 18,19 - попробуйте переключить местами.
    и инициализирую так
    Код (C++):
    Serial3.begin(9600);
    /*вместо */
    SoftwareSerial gprsSerial(15,16);
     
  3. stasych

    stasych Нерд

    Победил!
    Зацепил GSM на 16 и 17 ноги а это у нас получается Serial2. Соответственно минимальный скетч получается такой:
    Код (C++):
    void setup() {
      Serial.begin(19200);  //Скорость порта для связи Arduino с компьютером
      Serial.println("Goodnight moon!");
      Serial2.begin(19200);  //Скорость порта для связи Arduino с GSM модулем
      Serial2.println("AT");
    }
    void loop() {
      if (Serial2.available())
        Serial.write(Serial2.read());
      if (Serial.available())
        Serial2.write(Serial.read());
    }
    Плата реагирует на команды. Не нужны никакие SoftwareSerialы. Лишняя библиотека это лишняя занятая память. Теперь буду двигаться дальше..
     
    obuhanoe нравится это.