Wemos d1 mini + sim800

Тема в разделе "ESP8266, ESP32", создана пользователем Mikola120, 15 мар 2022.

  1. Mikola120

    Mikola120 Нуб

    Хочу подружить эти две штуки, начинающий от слова совсем.
    В планах штуковина работающая по смс, с информацией о температурах, и извещающая о нештатных вещах, реальное время берем тоже из sim800.
    Мучаю через esplorer softuart'ом
    Код (C++):
    s = softuart.setup(9600, 2, 3)
    s:on("data", "/r", function(data)
      buf =buf .. (data)
      print(data)
    end)
    Тоесть играемся АТ командами и наблюдаем всё в esplorer, пишем всё в переменную, из которой мой нубский код и вытягивет все ответы sim 800.
    Проблема в том что эта строчка то работает то нет. Когда не работает, по моим нубским соображениям теряет место в буфере самого sofuarta откуда начинать или заканчивать строчку и получаются кракозябры вместо букв, и то что отвечает sim800 где то теряется. Даже в команде ' s: write' перед текстом вставляет немного кракозябров видимо с того же буфера. Хотя цифры вроде всеравно улавливает. Взрыв мозга уже заработал.

    Доковырялся до решения что если триггер функции- это длина буфера этак 70 символов то то что выводится на print или в переменную всегда читаемо, кроме строк которые по краям порезало длинной 'триггера'
    Но по длине буфера неудобно мониторить чего там sim 800 шлет, да и всеравно с краев обрезает, и может потеряться посыка от sim800
    Почему по символу '/r' то идеально пашет то начинается фигня? По другим символам тоже самое видимо, Но как только меняю триггер на объем буфера- в распечатанной куче всё отлично, очень редко пара кракозябр, видимо макетка вносит.
    Скорость менял- разницы ненашел
     
  2. serg3295

    serg3295 Гуру

    Выполнение функции setup требует хоть и очень маленького, но все-таки времени. Если вы выполняете представленный код одним куском, то может быть, что softuart не успевает проинициализироваться.
     
    Airbus нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    А можно я задам 1001 раз один и тот же вопрос? А Вы нафига Sofserial используете? Аппаратный есть же?
     
  4. SergeiL

    SergeiL Оракул Модератор

    Пишут, что второй только с передатчиком, я не использовал, ничего сказать не могу:

    upload_2022-3-16_9-45-54.png
     
  5. serg3295

    serg3295 Гуру

    Да, второй COM использует только Tx. Однако, использование softuart не совсем удобное решение проблемы второго COM'a.
    Мне кажется, лучше использовать для отладки кода ESP32 c несколькими UART, а затем перенести отлаженный код на ESP8266, если это требуется по ценовым соображениям, или из-за габаритов разрабатываемого устройства.
     
  6. ИгорьК

    ИгорьК Гуру

    СофтУарт в Lua на ESP8266 работает из рук вон плохо. Выхода два:
    - железный уарт на ESP32
    - кодить ESP8266 на Си и пробовать что там. Но, полагаю, ненамного лучше.
     
  7. Mikola120

    Mikola120 Нуб

    Значит в этом месте голову не ломать, и ковырять всё остальное, всеравно луа только осваиваю- полезно будет. Чтото другое на есп поизображать, применение найдется. Если упираться в сим800 то пользоваться моментами пока softuart пашет, и худо бедно слепить код, потом попробовать перескочить на единственный норм. юарт.

    Есп 32 прям сейчас уже дорого для нулевого человека, ну и луа на нем при беглом просмотре немного посложнее запустить с нулем знаниев
    А есп С3 будет крутить nodemcu?
     
  8. ИгорьК

    ИгорьК Гуру

    C ним можно, но придется работать вслепую.

    Также как и 8266.

    Вопрос...
     
  9. serg3295

    serg3295 Гуру

    Судя по обсуждениям на github'e ветка dev-esp32-idf4 поддерживает ESP32-C3.
    Сам я не проверял, так как у меня этого модуля нет.