Тёмный

SIM800+ESP32 без зависаний скетча. Одновременное использование MQTT, SMS и GSM звонков без библиотек 

Anton Kozlenko (GU Moldova)
Подписаться 76
Просмотров 2,2 тыс.
50% 1

Опубликовано:

 

27 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 35   
@СергейСолодовников-в1п
Погонял Вашу прошивку на старый функционал, с датчиками DHT22 и DS1820, вроде все работает как надо! Проверил IK приемник, тоже работает нормально, правда после исправления известной ошибки. Там надо поменять строчку lastIRValue = results.value; это заменил на lastIRValue = (uint32_t)results.value; Проверил так же работу на платке ESP32-S2, без нареканий. Ну и конечно надо изменить ограничение по ножкам у датчиков вот тут constrain(value.toInt(), -1, 40); я поставил вместо 16 значение 40. Спасибо большое за проделанную Вами работу! Если у кого то не будет собираться прошивка, пишите, выложу старенькие надежные библиотеки для датчиков. И вопрос по размеру EEPROM , почему Вы поменяли 4096 на 1024, я не сильно копался в даташитах ESP32, там какие то ограничения ?
@СергейСолодовников-в1п
Пока тестировал IR порт случайно выловил "первородный" :-) косяк, с потерей данных при записи кода из HTML странички в память.... вот тут (поля данных кодов IR) irOn[id] = value.toInt(); irOff[id] = value.toInt(); надо поменять на value.toDouble(); Так как некоторые пульты дают длинный 32 битный код, а он при конвертации портится, если число больше чем 2147483647 (7FFFFFFF) Ну и ножки контроллера ESP32 лучше брать те, которые только на вход работают.
@szlab2025
@szlab2025 10 месяцев назад
Супер!
@emilmv9089
@emilmv9089 9 месяцев назад
👍🏻
@tree-service
@tree-service 10 месяцев назад
Ат команды, и многопоточность, в одном цикле посылаем команду, вторым потоком читаем ответы, если таймаут вышел, повторяем отправку иди ексепшион
@padalkoalexey216
@padalkoalexey216 3 месяца назад
Добрый день! Спасибо за такую фундаментальную работу с отличными комментариями. Тестировал и заметил проблему. через несколько часов устройство с кодом демонстрационной программы перестает подключаться в серверу. в логах сервера видно. если позвонить, бросает трубку как положено после первого гудка, дергает ли диод не смотрел - еще не подключал , но топик не обновляет на сервере. Посылать обновление топика конфига- никак не реагирует. Если перезагрузить по питанию все нормально опять на некоторое время. не смотрел точно сколько часов... понаблюдаю с COM- портом.
@antonkozlenko6333
@antonkozlenko6333 3 месяца назад
Здравствуйте. Если в целом система ESP + SIM800 не повисла, то могут влиять внешние факторы. Под подозрением GSM оператор, который разрывает соединение. Т.к, GPRS соединение долго отрыто. Я тоже погоняю свою сборку.
@padalkoalexey216
@padalkoalexey216 3 месяца назад
@@antonkozlenko6333 может быть регулярно перезагружать модем, например раз в 10 минут? Его подъем вроде бы не такое долгое действо?
@padalkoalexey216
@padalkoalexey216 3 месяца назад
@@antonkozlenko6333 причем /Status offline. как формируется offline и зачем? если после него он не выходит?
@antonkozlenko6333
@antonkozlenko6333 3 месяца назад
@@padalkoalexey216 У меня уже 11 часов работает без сбоев. В вашем случае надо найти причину отвала MQTT. Если звонки и SMS работают, к ESP + SIM800 вопросов нет. Как радикальное средство можно и перезагружать ESP.
@padalkoalexey216
@padalkoalexey216 3 месяца назад
@@antonkozlenko6333 да спасибо большое! буду пробовать. может особенности брокера или оператора у меня МТС. я попробовал static uint32_t timeout; поменять до 10с. и периоды реконекта до 5-10 сек уменьшил. пробую.
@juliec208
@juliec208 9 месяцев назад
Отлично, лайк, подписка!!
@Владимир-к5з8н
@Владимир-к5з8н 7 месяцев назад
Для новичков очень поучительно и полезно, но сложно разобраться )) Есть ли такой код, но только для СМС без подключения к интернету и MQTT?
@antonkozlenko6333
@antonkozlenko6333 7 месяцев назад
Отправка и прием СМС это самое сложное. Работает все не зависимо. В примере я постарался снабдить код максимальным количеством комментариев и разнести функционал по файлам. В самом видео подробно рассказал, поэтому такое длинное получилось. Пример как основа, это не законченный проект, используйте только нужную часть. Если разберетесь с основным принципом взаимодействия с модемом, с остальным проблем не будет. С другой стороны во втором скетче, для готового устройства, вообще GPRS и MQTT можно не использовать и все будет работать.
@padalkoalexey216
@padalkoalexey216 3 месяца назад
не подскажете куда копать?
@СергейСолодовников-в1п
@СергейСолодовников-в1п 10 месяцев назад
Очень интересно! У меня вопрос по исходному скетчу Морозова, вы его смогли конвертировать для ESP32 ?! Я давно просил Алексея сделать версию для ESP32? но увы у него нет времени, а я не программист и при конвертировании версии 5.4 уперся в SPIFF память :-( Могли бы вы помочь с этой проблемой ? Думаю многим не хватает GPIO на умном реле ESP_Relay5_4 для esp8266...
@antonkozlenko6333
@antonkozlenko6333 10 месяцев назад
Скетч конвертирован под ESP32 на 95%. Оставил как есть (т.к. не использовал) RTC memory, датчик освещенности, модуль часов, ИК-пульт. Это скорее всего работать не будет. Но оригинал оставлен в исходниках.
@СергейСолодовников-в1п
@СергейСолодовников-в1п 10 месяцев назад
Я сравнил код с оригинальной, попробую что в нем работает на есп32, меня больше интересует будет ли Ваша запускаться без SIM800 ? У меня куча устройств на этой прошивке в "умном доме" ну и еще один проект очень нравится - ESPEasy, прошивки даже друг другом управляют по сетке :-)
@antonkozlenko6333
@antonkozlenko6333 10 месяцев назад
Будет работать без Sim800, я в видео об этом говорю. В веб админке можно вообще исключить Sim800.
@СергейСолодовников-в1п
@СергейСолодовников-в1п 10 месяцев назад
Не компилится ни для ESP32 ни ESP8266 :-( Правда версия arduino у меня 1.8.19 но библиотек не просит... И обратил внимание, в примере видео 5 вкладок в проекте, а скачал по ссылке, там два головных файла Sim800_GSM_Contol и ESP32_GSMRelay5_31 и при загрузке проекта в IDE совсем другой комплект на компиляцию, такой же как у Морозова....
@antonkozlenko6333
@antonkozlenko6333 10 месяцев назад
Так я вроде в комментариях все ссылки подписал. Что пример из видео (чему видео и посвящено), а что рабочее устройство (описано вкрадце в конце видео). Платформа ESP32 2.0.6, на arduino 1.8.15 у меня работает.
@emilmv9089
@emilmv9089 9 месяцев назад
Доброго времени! Не подскажите, каким приложением управляете?
@antonkozlenko6333
@antonkozlenko6333 9 месяцев назад
Доброго времени! Приложение "MQTT Dash". В описании под видео есть ссылки на статьи как настраивать это приложение. Спасибо автору этих статей, все очень подробно расписал.
@emilmv9089
@emilmv9089 9 месяцев назад
@@antonkozlenko6333 Благодарствую за информацию!🤝
@Dima_Volkov81
@Dima_Volkov81 9 месяцев назад
День добрый, подскажите как такой код можно отладить? каким отладчикам вы пользуетесь?
@antonkozlenko6333
@antonkozlenko6333 9 месяцев назад
Добрый день. Как показано в видео, это скетч для среды Arduino IDE. Я никаким отладчиком не пользуюсь. Вероятно другие среды имеют отладку, но они под другие МК (STM или еще что то). С этим я не работаю.
@СергейСолодовников-в1п
Скажите пожалуйста, вот эта манипуляция касается только ESP8266 ? /* !!!! При первой загрузе скетча в ESP32 необходимо ОТФОРМАТИРОВАТЬ SPIFFS Для этого установить FORMAT_SPIFFS_IF_FAILED true !!!! Потом исправить в false и загрузить скетч повторно !!!!! */ Почему я это спросил, не понял вот это место : #ifdef ESP8266 if (! readRTCmemory()) { _log->println(F("RTC memory is empty!")); } if (! SPIFFS.begin()) { _log->println(F("Unable to mount SPIFFS!")); } #else if (! SPIFFS.begin(FORMAT_SPIFFS_IF_FAILED)) { _log->println(F("Unable to mount SPIFFS!")); } #endif как бы применяется переменная только для ESP8266 ? Для ESP32 скетч собрался и заработал, а для 8266 почему то не собирается...вроде бы и пакет 2.4.2 пробовал...
@antonkozlenko6333
@antonkozlenko6333 9 месяцев назад
Под ESP8266 это не работает. Скачайте оригинал у автора по ссылке. Видео снято про SIM800 и ESP32
@СергейСолодовников-в1п
Понятно. А исключить вариант с повторной загрузкой не получился ? Типа если spiffs до этого была не отформатирована , чтобы это делала прошивка при первом запуске...
Далее
Исповедь / Мася
2:47:10
Просмотров 183 тыс.
Модуль Crowtail-4G SIM A7670E от elecrow.com
9:31
Ethernet for the microchips W5500 and ENC28J60. MQTT
21:34
Царь-Бомба
11:50
Просмотров 56 тыс.