Не работает GSM модуль SIM800L на AT не отвечает

Тема в разделе "Проводная и беспроводная связь", создана пользователем TheVladOs, 28 дек 2017.

  1. TheVladOs

    TheVladOs Нуб

    Здравствуйте! У меня не работает GSM модуль SIM800L. Пробовал переподключать разными способами, мигает нормально, но на AT не отвечает. всякая чушь выходит в виде квадратиков. Что делать?

    Код (C++):
    #include <SoftwareSerial.h>
    SoftwareSerial SIM800(0, 1);        // 0 - RX Arduino (TX SIM800L), 1 - TX Arduino (RX SIM800L)
    void setup() {
      Serial.begin(9600);               // Скорость обмена данными с компьютером
      Serial.println("Start!");
      SIM800.begin(9600);               // Скорость обмена данными с модемом
      SIM800.println("AT");
    }

    void loop() {
      if (SIM800.available());      // Ожидаем прихода данных (ответа) от модема...
      Serial.write(SIM800.read());    // ...и выводим их в Serial
      if (Serial.available());           // Ожидаем команды по Serial...
      SIM800.write(Serial.read());    // ...и отправляем полученную команду модему
    }
     
  2. TheVladOs

    TheVladOs Нуб

  3. rkit

    rkit Гуру

    serial-пины заняты под serial, как не странно. Подключите к другим.
     
  4. TheVladOs

    TheVladOs Нуб

    подключил к 8 и 9 соответственно. все равно не желает upload_2017-12-28_15-56-0.png
     
  5. TheVladOs

    TheVladOs Нуб

  6. SergeiL

    SergeiL Гуру

    Если нечитаемые символы, то предполагаю, что скорость не та. На 115200 пробовали?
     
  7. TheVladOs

    TheVladOs Нуб

    Теперь пробовал, все равно не хочет, точно также. может код не тот? upload_2017-12-28_16-11-13.png
     
  8. SergeiL

    SergeiL Гуру

    Код легко проверить.
    Отключаете модем от Ардуины, а провода RX и TX идущие от Ардуины замыкаете между собой.
    Дальше проверяете: то, что набираете в строке отправить, должно появляться на прием.
     
  9. DIYMan

    DIYMan Guest

    Скоростями играйте, обычно SIM800L по умолчанию на 57600 работают. Ну и проверяйте правильность подключения, конечно. И да - на скоростях выше 9600 надо использовать только аппаратный UART для связи с модемом, SoftwareSerial не прокатит.
     
  10. TheVladOs

    TheVladOs Нуб

    То есть через юарт? как тогда через него?
     
  11. DIYMan

    DIYMan Guest

    Как обычно. В чём проблема-то - подключить модуль к аппаратному UART ардуины и из кода общаться с ним?

    Проверить работоспособность модуля (а также подобрать скорости и т.п.) можно, имея USB-TTL-converter, эта железка обязана быть в наличии, если работаете с модулями, общающимися посредством UART. Подключаете SIM800 через конвертер к компу, открываете любую терминальную программу - и общаетесь с ним, ардуина тут не нужна. Через терминальную программу удобно перешить скорость общения с устройством, с помощью AT-команды, что в дальнейшем даст вам возможность юзать SoftwareSerial на стороне ардуины.
     
  12. Fikret

    Fikret Нуб

    посмотри. может тут есть ответ на твой вопрос. канал не мой, вообще не реклама
     
  13. jeltiiuxa

    jeltiiuxa Нуб

    не решил проблему? у меня такая же фигня, не знаю что делать
     
  14. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Наберитесь терпения и проверьте все стандартные скорости обмена с модулем перекомпилируя скетч. Другого выхода у вас просто нет. Или используйте USB-COM конвертор, чтоб не морочить ардуину. Или ПК с аппаратным СОМ - портом.
    ...исправил.
    На мой взгляд лучше введите строковую переменную, в которую сначала считываете из одного порта, и из которой потом отправляете в другой порт. Код "разложенный на кирпичики" работает медленнее, но артефакты компилятора реже проявляются.
     
    Последнее редактирование: 5 янв 2020
  15. a1000

    a1000 Гик

    Я конечно могу ошибаться, но по моему там уровни совсем не TTL.
     
  16. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Ааах да! Вы правы! + - 12 Вольт. Запамятовал понимашшш.