• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Arduino Mega + NodeMCU 0.9.6 (ESP8266-12E)

leonid2712

New member
Доброго дня и здравия всем Вам.
Меня привел вопрос вот какой.
Нужно состыковать не стыкуемое. ибо много по этому вопросов в интернете, но ответов полных нет.
Имеем двух пациентов, это Arduino Mega 2560 и ESP8266-12E. Оба хороши в своем классе.
На Меге мы вешаем кучу датчиков, также сенсорный дисплей, и через один из портов UART передаем в ESP8266-12E данные, которые ESP в свою очередь должна передать по протоколу MQTT на брокер-сервер. и от туда же взять данные для выполнения на Мегу. Вопрос вот в чем. На ESP8266 я залил NodeMCU 0.9.6 и она понимает как скриптовый язык LUA так и обычные команды для данной прошивки, но без поддержки АТ команд. Мне нужен кусочек кода реализации данного протокола в котором было бы указано какую прошивку залить в ESP, и пример работы между Mega и ESP. С передачей и приемом данных по MQTT. За ранее благодарен Вам, и всем тем кто поделится или направит в нужное русло.
 

leonid2712

New member
Это я тоже где-то читал, там есть ограничения. Может есть какая-то реализация скажем Сишная либа для Меги и просто передача через Луа или еще че нить (только не АТ командами) я хочу передать одной строкой множество параметров и потом их пересобрать и разобрать. так как в MQTT есть еще одна особенность если у тебя 10 датчиков, и 20 светильников, то обновление данных будет оооооочень долгим. поэтому пришел к выводу что лучше пересобрать в единую строку и передать ее целиком через двоеточие или пробел, или еще какой либо разделитель.
 

Victor

Administrator
Команда форума

leonid2712

New member
Спасибо конечно за примеры, только они изначально сделаны на прямую к ESP, то есть нет калбэков с самой ардуино и обратно. нужно либо дописывать большую функцию либо дополнять существующие. за данные ссылки благодарность. их сейчас изучаю как можно адаптировать с наименьшими исправлениями.
 

Victor

Administrator
Команда форума
сделаны на прямую к ESP, то есть нет калбэков с самой ардуино и обратно
такое вы вряд ли найдете готовое. Да и смысл?
Гораздо удобнее ESP8266+IO Expander, чем ESP8266+Мега, но это кому как нравится.
Хотите туда-сюда гонять данные - пожалуйста :)
 

leonid2712

New member
такое вы вряд ли найдете готовое. Да и смысл?
Гораздо удобнее ESP8266+IO Expander, чем ESP8266+Мега, но это кому как нравится.
Хотите туда-сюда гонять данные - пожалуйста :)
Приветствую Вас.
Данный метод не подходит, так как постоянно не хватает памяти у самой ESP. Данную сборку уже собирал, она работает. Но ограниченна по возможностям.
Я программировал в ESP NodeMCU 0.9.6 и загружал в нее свои библиотеки, для расширения портов выхода. В итоге получил вот такой бутерброд, что влез у меня в стандартный корпус 6DIN. В нем я использовал часы реального времени DS3231 на I2C, затем дисплей LCD1602 на I2C через адаптер и сам расширитель на PCF8574 на той же шине I2C, и к этому расширителю я подключил силовые ключи для управления слаботочными промежуточными реле, Также использовал аналоговый вход на самой ESP, вход ACD для подключения аналоговой клавиатуры на базе резисторной сборки и кнопок с общим минусом. Все бы ничего, но когда я попытался подгрузить библиотеку для работы с 16 канальным шимом PCA9685 то памяти не хватило. Вот и встал вопрос что можно урезать выкинуть, А руководство хочет TFT дисплей, мол LCD1602 это древность, подавай тачскрин. Взял соответственно Мегу и ТФТ дисплей, но встала трудность связать все с ESP. Связывал при помощи эмуляции LUA команд, но вот MQTT из за того что он в NodeMCU не корректный приходится искать, думаю что придется что то свое третье писать. Если кто то все же писал связку. и знает как помочь в данном вопросе, прошу помочь. А то сейчас выход один, прошить ESP в стандартную прошивку модема с поддержкой АТ команд и к нему прикручивать Мегу. За ранее всем спасибо.
 

leonid2712

New member
@leonid2712 посмотрите проект http://esp8266.ru/forum/threads/wiieva-esp8266-stm32-v-formfaktore-arduino.1511/
Там вроде, все исходники есть, а то что второй процессор другой, на мой взгляд не принципиально. Может и Вы передумает :)
Немного не то, там полностью переписанный код, и сделан под АВР студию.
 

leonid2712

New member
В общем связка получается только с ESPuno , в Wi-Fi модуль прошиваем ESPuno и в Ардуино используем как библиотеку. в итоге вроде как работает, есть конечно замечания, но оно касается только стабильности работы. Скажем у меня она проработала два дня, но когда отвалился сервер MQTT она не смогла перезапустить соединение. в итоге установка проработала на тех значениях что были получены ранее, и естественно на любые команды вне ее не принимала.. что не есть хорошо... в остальном все устойчиво. гоняет туда и обратно.. кстати бывает также косяк с CRC но я так понимаю либа должна отрабатывать. но не всегда .. как выход кратковременный. пойдет. Использован ресурс GitHub - tuanpmt/espduino: ESP8266 network client (mqtt, restful) for Arduino с примерами.
 
Сверху Снизу