• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 с примерами.
 
Сверху Снизу