Конструктор прошивки для esp8266

Обновлено: 10.05.2024

В прошлой статье мы рассмотрели первоначальную настройку и работу модуля ESP-01 с базовой AT-прошивкой. Возможности данной прошивки достаточно ограничены и использовать её для каких-то повседневных задач достаточно сложно. Как я писал в первой статье, для ESP8266 можно написать свою прошивку с нужным функционалом и тем самым сделать плату ESP-01 самодостаточным устройством. Всем кому это интересно, прошу под хабракат.

Как известно, SoC ESP8266 построен на базе процессора Xtensa LX106 фирмы Tensilica, если кому-то интересно, то в сети есть статья про конфигурируемые процессоры этой фирмы. Компания Espressif предоставляет полную документацию, а так же компилятор и среду разработки для SoC ESP8266 только после подписания партнерского соглашения и не со всеми подряд, на мое письмо они так и не ответили. Немного погуглив можно найти утекший в сеть официальный компилятор, среду разработки, основанную на Eclipse, множество документации и лицензии, но это не наш путь. Мы будем использовать неофициальный компилятор на основе Crosstool-NG

В этой статье я расскажу как собрать компилятор под Ubuntu Linux, а так же мы попробуем написать простейшую прошивку. Основной упор я сделаю на работу с компилятором под Windows, а так же настройку среды Eclipse для написания прошивок для ESP8266.

Часть 1: Сборка компилятора под Ubuntu Linux, настройка SDK, сборка стандартных примеров и прошивок.

Установка среды сборки

Для 32-разрядной Debian (Linux) выполняем:
Для 64-разрядной Debian (Linux) выполняем:
Далее:
USER меняем на логин текущего пользователя.

После этого можно откинуться на спинку кресла минут на 40-50 и попить кофе. Если все завершится без ошибок, то можно двигаться дальше.


Добавляем библиотеки libc, libhal и заголовочные файлы в SDK


Установка ESP image tool

ESP tool можно собрать из исходников,
для Linux можно скачать здесь
для Debian/Ubuntu здесь
Готовый пакет для Ubuntu качаем отсюда

Установка ESP upload tool


Сборка примеров прошивок

Скачиваем и собираем примеры blinky и basic_example:
Если все шаги были сделаны правильно, то сборка пройдет без ошибок и в каталоге firmware появятся 2 файла прошивки 0x00000.bin и 0x40000.bin

Скачиваем и собираем пример базовой прошивки AT:

Для правильной сборки AT прошивки необходимо отредактировать базовый Makefile в строке
LIBS = c gcc hal pp phy net80211 lwip wpa main
добавить линковку библиотеки upgrade, итоговая строка будет выглядеть так
LIBS = c gcc hal pp phy net80211 lwip wpa upgrade main
после этого прошивку можно собрать командой make

Cобираем пример прошивки IoT:

Так же как и для AT прошивки, для правильной сборки IoT прошивки необходимо отредактировать базовый Makefile в строку
MODULES = driver user
нужно добавить дополнительные модули, итоговая строка будет выглядеть так
MODULES = driver user json ssl upgrade lwip
а в строку
LIBS = c gcc hal pp phy net80211 lwip wpa main
добавить линковку библиотеки json, итоговая строка будет выглядеть так
LIBS = c gcc hal pp phy net80211 lwip wpa main json
после этого прошивку можно собрать командой make

Для того чтобы прошить плату ESP-01 нужно использовать команду make flash
Не забываем, что для переключения в режим обновления прошивки нужно подать низкий уровень на GPIO0 и высокий на CH_PD.
Чтобы понять, что делает make flash стоит открыть любой Makefile и найти строку flash:
после подстановки всех аргументов получаем команду прошивки SoC:

Формат файла прошивки, собственно и как протокол обмена можно почитать тут на русском или здесь на английском языках.
На этом рассмотрение сборки компилятора и SDK под Linux закончено.

Часть 2: Установка компилятора под Windows, настройка SDK, сборка стандартных примеров и прошивок.

Т.к. моя основная ОС под которой я работаю 90% времени это Windows, то разработка в Linux меня не сильно интересовала.
Ниже я расскажу, как установить и настроить компилятор и SDK в Windows, а так же как настроить среду разработки Eclipse для комфортной разработки прошивок в ней.
Рассматривать процесс сборки компилятора под Windows я не буду, т.к. это довольно сложная процедура, она намного сложнее сборки в Linux.
Дабы избавить Вас от всех тонкостей и нюансов, я подготовил рабочий комплект Espressif DevKit, включающий в себя компилятор, последнюю версию SDK, стандартные примеры прошивок, а так же мои собственные примеры прошивок.

Итак приступим:
1. Cкачиваем (148Mb) и устанавливаем мой комплект Espressif-ESP8266-DevKit-v2.2.1-x86.exe (актуален на 15.11.2016)
2. Скачиваем и устанавливаем Java Runtime x86 или x64 (Например: jre-8u111-windows-x64.exe для Windows x64)
3. Скачиваем и устанавливаем Eclipse Neon x86 или Eclipse Neon x64 для разработки на С++. Распаковываем архив в корень диска С.
4. Скачиваем и устанавливаем MinGW. Запускаем mingw-get-setup.exe, в процессе установки выберите режим без GUI, то есть уберите галочку ". also install support for the graphical user interface".
5. Скачиваем набор моих скриптов для автоматизации установки доп.модулей для MinGW. (актуален на 15.10.2016)
6. Запустите из моего набора файл install-mingw-package.bat. Он скачает с моего сайта закэшированые архивы пакетов для mingw, примерно 90 Mb и установит основные модули для MinGW. Скачивание заранее готового набора файлов пакетов для MinGW гарантирует, что все они будут установлены, иногда сервера, где лежат пакеты MinGW становятся недоступными и необходимые пакеты не ставятся и поэтому сборка прошивок может проходить с разного рода фокусами.
7. Запустите Eclipse из каталога c:\eclipse\eclipse.exe
8. В Eclipse выберите меню File -> Import -> General -> Existing Project into Workspace, в строке Select root directory выберите каталог C:\Espressif\examples\ESP8266 и импортируйте рабочие проекты.
Далее справа в Make Target выберите нужный проект, например hello-world и запустите цель all на сборку,
при этом в окне Console должен отобразиться ход сборки, если все сделано правильно, то будет примерно такая картина:


Это значит, что прошивка для ESP8266 собрана и находится в каталоге C:\Espressif\examples\hello-world\firmware
Для прошивки ESP8266 используйте цель flash, предварительно отредактировав файл сборки проекта Makefile, строка
ESPPORT ?= COM2
, где после COM цифра 2 указывает номер COM-порта к которому подключена плата с ESP8266.

Вкладка debug содержит разную полезную информацию, в том числе и реальный размер чипа флеш памяти в строке Flash real size, а так же размер памяти, установленный в прошивающей программе Flash set size, который важен для правильной поддержки OTA.

-Вариант с поддержкой OTA с объемом памяти чипа 1мбайт и выше. Необходимо обязательно выбирать в прошивающей программе размер памяти 1мбайт !! Модули с размером flash памяти 512кб не поддерживаются режимом OTA !!

-Вариант без поддержки OTA.Если размер получаемого файла(одним файлом) более 496кб, то требуется поддержка flash памяти не менее 1 мегабайта !! По сравнению с режимом OTA в этом варианте количество включенных опций можно включить значительно меньше.

Возможность дальнейшего обновления прошивки по OTA доступна только у кого есть активированные ключи !

Если у вас имеются проблемы со стартом прошивки, то обязательно смотрим ниже абзац про решение проблем с прошивкой !

Сборка прошивки в конструкторе

Конструктор позволяет собрать прошивку под свои требования, включив в прошивку только те функции и датчики, которые нужны.

Не имеет смысла включать все опции в прошивке - в этом случае прошивка может не собраться так как не влезет в модуль. Лучше прошивку пересобрать снова, если вы хотите испытать другие опции.

Некоторые опции имеют дополнительные настройки, которые находятся в значке-шестеренке. Там можно выбрать доступное количество например термостатов или других опций.

При первоначальной сборке прошивки рекомендуется воспользоваться опцией OTA , чтобы следующее обновление было возможно через интернет без использования подключения программатора. С опцией OTA количество опций можно включить больше, но требуется чтобы память на модуле была не меньше 1 мегабайта !!

Кроме OTA так же рекомендуется включать опции NVS настройки 2 и Экспорт/Импорт настроек. NVS настройки 2 решает проблему со смещением(повреждением) настроек при изменении списка или настроек опций при обновлении прошивки.

При сборке прошивки можно выбирать разный SDK. Рекомендуемая версия SDK 1.3.0. В новых версиях замечена проблема с режимом точки доступа (Safe Mode)(. ) , но нет проблем с надежностью связи с роутером. SDK - это набор библиотек и функций от производителя чипа для работы устройства.

После нажатия кнопки "скомпилировать" через некоторое время конструктор прошивки выдаст ссылки для скачивания:

В режиме без OTA можно прошить файлы прошивки одним файлом - тогда все настройки модуля, если они были сбросятся. Если вы обновляете прошивку и не хотите чтобы настройки удалились, то необходимо обновлять прошивку двумя файлами по адресам, которые указаны в имени файла.

В режиме OTA достаточно залить прошивку одним файлом. Но 0x81000.bin может потребоваться, если вы хотите обновить прошивку по кабелю после использования OTA, когда загружен файл user2.bin(отображается в debug) - в этом случае обновление прошивки одним файлом не обновит активную прошивку.

Подключение модуля для прошивки

Для прошивки ESP8266 необходим USB-UART переходник или Arduino. ESP8266 необходимо обеспечить напряжение питания 3.3в и током 200..300мА. Питание 3.3в от ARDUINO или от USB-UART подключать не рекомендуется - модуль может работать не стабильно из-за нехватки тока. Рекомендуется использовать стабилизатор вида 1117.

Подключение ESP8266 к USB-UART: Необходимо подключить общие выводы GND(минус). RX у USB-UART на TX ESP, TX у USB-UART на RX ESP. Подключаем так же источник питания 3.3в.

Подключение ESP8266 к Arduino: Необходимо подключить общие выводы GND(минус).RX у Arduino на RX ESP, TX у Arduino на TX ESP. Подключаем так же источник питания 3.3в. RESET у Arduina необходимо подключить к GND.

На модуле ESP8266 вывод CH_EN необходимо подключить к +3.3в для того, чтобы включить чип.

GPIO 0 на время программирования, перед включением питания необходимо подключить к GND(земля). После успешной прошивки GPIO 0 нужно отключить от GND. Если на модуле выведен GPIO 15, то его необходимо подключить на GND через резистор 10кОм на постоянной основе !!

Если у вас модуль esp8266 имеет уже на борту USB-UART (например Wemos, NodeMCU) , то указанные выше действия проводить не требуется.

Прошивка модуля

Для начала необходимо установить драйвера для вашего USB-UART переходника или Arduinы.

Прошивка через Nodemcu Flasher: Устанавливаем на вкладке Advanced Параметр Flash size в соответствии выбранным размером flash памяти (в байтах). Режим работы flash ставим QIO (при использовании GPIO 9/10 - DIO). Остальные параметры не трогаем. Указываем на вкладке Config путь на файл прошивки с адресом 0x0000. На вкладке Operation выбираем COM порт и жмем кнопку FLASH.

Прошивка через Flash download tool: Действия аналогичны.

Для модулей ESP8285 и модулях с памятью PN25F08B требуется установка режима памяти DOUT !!

Прошивка через esptool. Пример команды esptool.py --port /dev/ttyUSB0 write_flash -fs 8m 0x00000 esp8266.bin . где -fs 8m размер flash памяти модуля в мегабитах !

Скорость COM порта рекомендуется ставить не выше 115200.

Перед первой прошивкой рекомендуется залить в модуль blank по адресу 0x0000 , особенно, если в модуле до этого использовалась какая либо другая прошивка.

Прошивка файла ESP INIT DATA

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.

Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.

0xfc000 для 1 MB.

0x3fc000 для 4 MB.

0xffc000 для 16 MB.

Запуск модуля

При первом включении модуль включается в режим safe mode автоматически так как не содержит имени точки доступа. В режиме safe mode в эфире появится точка с именем WiFi-IoT, к которой можно подключится используя смартфон или ноутбук.

В режим safe mode еще можно попасть, замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подрят (с интервалом нажатия около секунды) кнопку RESET на ESP8266.

Далее возможны два варианта подключения к модулю:

Далее настраиваем подключение на свой роутер на вкладке main веб интерфейса. Необходимо вбить в поля WiFi options данные своей точки доступа. Для подключения к роутеру выбираем режим "Station mode". После нажатия кнопки set ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети.

Далее обновляем страницу и видим внизу IP адрес, на который уже можно будет заходить внутри Вашей локальной сети.

Тут же вы можете установить свой логин и пароль на странички настроек веб интерфейса. Длинна логина и пароля не более 8 символов. Пароль затребуется на все вкладки настроек. А при установленной опции "Full Security" и на все GET запросы управления. В режиме safe mode пароль не запрашивается !

На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.

Указанные выше действия выполнять не требуется, если прошивка была собрана с опцией Настройки по умолчанию , где были заранее прописаны параметры роутера и IP адрес. После успешной прошивки и перезагрузки сразу можно заходить на указанный IP адрес модуля внутри своей wi-fi сети.

Решение проблем с прошивкой

Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Далее уже прошиваем саму прошивку снова.

У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266. По некоторым сведениям от пользователей помогает замена чипа памяти.

ВАЖНО !! Если модуль не может получить IP адрес. Висит постоянно статус connect , то рекомендуется вписать IP адрес вручную ниже. Для этого необходимо выбрать режим Static IP и вписать IP модуля и IP шлюза(IP роутера). После этого можно заходить на модуль уже внутри сети по IP адресу, который указали в настройках..

Иногда статус connect может висеть, если тип шифрования на роутере включен, который не поддерживается чипом ESP8266.

Решение проблем с компиляцией.

Ошибка компиляции возможна из-за:

1. Превышен размер IRAM области памяти, прошивка не умещается. Требуется уменьшить количество опции или выбрать другой SDK. Чем новее SDK , тем меньше влазит опций. Проблема нехватки памяти не так заметна при использовании RTOS прошивки.

2. Ошибка в коде - маловероятная причина, но возможна после обновления кода или конфликта опций ранее не замеченный. Сообщить об ошибке можно через обратную связь на сайте или в чате Телеграм, указав код ошибки.

Сохранение настроек в файл

Этот метод является устаревшим, рекомендуется воспользоваться опцией Экспорт/Импорт настроек.

Настройки модуля можно сохранить в файл, исключая настройки WI-FI, состояния GPIO, список датчиков DS18B20. Файл необходимо скачать по адресу ИП_АДРЕС/configsave.bin . Записывается обратно в модуль через программатор по адресу 0x3C000 для 512кб прошивки, 0x7C000 - для 1мб. Настройки можно скачать и через esptool.py используя пример ниже подставив нужный адрес.

Версия прошивки ESP8266 на базе нового SDK RTOS производителя чипа. Прошивка использует исходный код от ESP32 и имеет те же особенности и возможности.

Обновление прошивки со старой версии только по кабелю! Рекомендуется очистка бланком (стирание чипа) перед прошивкой.

Ключ PRO используется тот же.

Недостатки и преимущества RTOS прошивки над NoOS:

+ Большие возможности реализации опций - больше опций.

+ Не сильно критично количество включенных опций - ОЗУ не так сильно уменьшается.

- Могут работать не стабильно датчики, использующие точные тайминги(ds1820, dht11/22)

Рекомендуется включать опции NVS настройки 2 и Экспорт/Импорт настроек.

Идет портирование и адаптация опций из ESP8266 (старой) и ESP32. Не все опции проверены в работе.

НЕ ПРОВЕРЕНЫ: ADC KEY, IR передатчик, MCP3201, MPR121, UART bridge, VirtualWire 433/315, iButton.

В UART на скорости 115200 отображается отладка, если выбран SDK Debug. В этом случае опции использующие UART использовать затруднительно.

Прошивка чипа через программатор

Автоматическая прошивка модуля с загрузкой всех необходимых файлов можно произвести через WiFi-Iot Flasher .

Прошивка через сторонние флешеры:

Конструктор выдает 4 файла с адресами в имени, по которым требуется их прошить.


Одним файлом - можно скачать и прошить только один этот файл.

Или прошить 3 файла по указанным адресам:

0x0000 - Загрузчик прошивки (bootloader)

0x8000 - Таблица разметки разделов. Определяет размер секций и наличие SPIFFS диска.

0x10000 - Сама прошивка. Только этот файл изменяется при компиляции новой прошивки.

Рекомендуется прошить перед прошивкой в зависимости от объема флеш памяти бланк 4mb или бланк 1mb.

Для работы с диском SPIFFS требуется загрузить по адресу 0x8000 файл partitions_two_ota_storage.bin (прошивается по умолчанию).

Работа с модулями ESP8266 с размером flash памяти 1 мегабайт поддерживается только режим без ОТА и со специальным файлом таблицы разметки(ссылка будет позже).


Запуск модуля.

Первоначальная настройка требует запустить режим Safe mode. В эфире должна появится точка доступа WiFi-IoT

Safe mode можно запустить замыканием GPIO rx и tx и перезапуском модуля. Другие способы не поддерживаются, но возможно использовать опцию safe gpio.

После подключения к точке доступа необходимо зайти через браузер по адресу 192.168.4.1 и настроить там параметры доступа к своему роутеру.

Прошивка через OTA или через веб интерфейс.

Функция ОТА сразу включена в прошивку и не выключается.

Обновление прошивки ничем не отличается от других конструкторов проекта.

Требуется зайти на вкладку Firmware update модуля и выбрать варианты обновления:



Start OTA - загрузка текущей прошивки из конструктора

Start AUTO OTA - компиляция прошивки, согласно привязанному профилю и последующая прошивка. Номер профиля в конструкторе соответствует номеру, отображаемому на вкладке Debug модуля

Of file - загрузка прошивки через веб (необходимо скачать и залить файл 0x10000.bin из конструктора). Могут быть проблемы и не удачные попытки загрузки на новом веб сервере



Ошибки обновления по OTA

Если на главной ошибка:

Firmware update ERROR ! (code 3) - это значит не собрана прошивка, например из-за ошибки компиляции.

Firmware update ERROR ! (code 2) - превышен размер файла прошивки. Изучайте вариант переразметки памяти.

Не забываем, что в UART можно посмотреть более точную причину и состояние обновления.

Откат загруженной прошивки

Режим PRO

Режим PRO дает возможность использовать модуль в полную силу. Активация модуля происходит на вкладке лицензий личного кабинета. Ключ тот же, что и на обычной(NoOS) прошивке ESP8266.

Отладочная информация на UART порте

Через UART на скорости 115200 при включенном SDK Debug выводится отладочная информация модуля. Здесь видно все ошибки. При проблемах работы прошивки просьба сообщать эту информацию разработчику.

При включенной отладке использование опций совместно с uart проблематично.

А теперь поговорим о прошивке микропроцессора ESP8266 для получения всех вкусностей.
Это не страшно и не сложно )))

Огромное достоинство этой прошивки - не надо уметь программировать, то есть абсолютно. Собираем из кубиков нужные задачи и все готово. А как это работает уже и не важно )))
Таже отмечу замечательную возможность перепрограммирования системы "по воздуху", то бишь через WiFi/ Первый раз прошиваем по проводу, а потом все легко и просто летает само.

Как писал рядом прошиваемся либо через конвертер usb либо напрямую подключаем плату кабелем.

Для начала скачаем программу прошивальщик.
Их много есть, но как по мне - так это nodemcu-flasher
Скачиваете нужную вам версию (Win32 или Win64) и устанавливаете на компьютер.



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

Теперь я остановлюсь на сложных моментах :

Главное - не пожалейте 100 рублей и купите прошивку официально, упростите себе жизнь на порядок. Даже если вас устраивают все бесплатные опции, через неделю захочется что то добавить и будут танцы с бубнами .

1. Профилей прошивок можно создать много и каждому присвоить собственное имя. Следует понимать, что одну прошивку можно привязать к любому числу модулей ESP8266. но каждому конкретному модулю соответствует только одна конкретная прошивка. Если изменить прошивку в конструкторе и не обновить ее в модуле, то в дальнейшем это будут разные вещи. В самом модуле всегда можно посмотреть имя и номер загруженной прошивки (ip_adr/debug - > OTA Profile name: Бутерброд).
2. Не надо выбирать самое свежее SDK (Software Development Kit или набор программ разработчика самого модуля ESP8266), пользуйтесь рекомендованным. Оно проверенное и надежное, другое можно использовать когда точно знаешь чего хочешь.
3. Ни в коем случае не стремитесь включить все функции - не пройдет. Проблема не в прошивке, а в модуле. У него просто не хватит памяти на всё. На модуле надо прошивать ТОЛЬКО то что будет использоваться.
4. Читайте WiKi ! Там практически все описано и показано, метод научного втыка тут врядли сработает.
5. При первоначальной сборке прошивки прошивайте опцию OTA , чтобы следующее обновление было возможно без использования проводов и подключения программатора.
6. Внимание! При обновлении по воздуху методом ОТА закачивается последняя скомпилированнная в вашем конструкторе прошивка, она может быть и от другого модуля, будьте внимательны. При обновлении по воздуху методом Auto ОТА закачивается обновленная прошивка для данного конкретного модуля.



Вот теперь настало время прочитать основную инструкцию и прошить свой модуль.


"Ё мое, что же я наделал . "















Да вот, как то так, приблизительно.

Про основные настройки в самом модуле можно посмотреть тут.

Практически все данные которые есть в модуле можно передавать в свою базу данных организованную на сервере на Raspberry Pi или другом аналогичном компьютере и смотреть все это в виде красивых картинок.
Подробнее о настройке Raspberry смотрите в тут и тут.
В настройки ESP необходимо добавить опцию TCP/UDP Клиент



Текст запроса содержит только один пробел, после тэга t2=rssi.
Для целых чисел добавляется - i.
Все символы в запросе обязательны.
Если один датчик перестанет работать, не будет данных в запросе, вся отсылка прекратиться.






Пример :
Query text: Name ,t1=rssi rssi=_RSSI_i,adc=_ADC_


Прошивать мы будем прошивкой ESP Easy. Эта прошивка простая. Там интуитивно понятно что и как настраивать. Сразу видно где прописать связь с MQTT-брокером. И видно где размещать подключаемые к микроконтроллеру устройства. В настройках устройств легко найти галочку для связи с MQTT-брокером посылать сигналы.

Как именно прошивать я рассказывать не буду. Этого материала полно в интернете. Тем более что разные модификации ESP8266 можно прошивать по-разному. Найдите гайд по прошивке именно вашего устройства и прошейте ESP Easy.

Релиз ESP Easy

Релиз ESP Easy

В файле есть программа прошивальщик. При ее запуске можно выбрать конкретную прошивку, например normal и COM-порт, на котором находится в вашем устройстве. И после этого нажмите кнопку Прошить. В общем подробности этого процесса вы найдете в интернете. Если не получится, то обращайтесь ко мне.

После прошивки и настройки Wi-Fi на устройстве вы сможете заходить через браузер в интерфейс прошивки прямо набрав адрес устройства в браузере. Начнем с I2C.

Настройка I2C

Для начала настроим протокол I2C. По умолчанию для подключения устройств к контроллеру по этой шине используются пины 4 и 5. Нам же нужны другие пины. Заходим в раздел Hardware и меняем эти настройки:

Указание пинов для I2C-протокола

Указание пинов для I2C-протокола

Настройка связи с MQTT-брокером

В разделе Controllers прошивки ESP Easy можно прописать связь микроконтроллера ESP8266 с тремя серверами. Мы пока добавим связь с одним сервером, а именно с нашим MQTT-брокером. По большому счету одного этого брокера достаточно практически для всех нужд умного дома.

Связь с MQTT-брокером

Связь с MQTT-брокером

Настройка важных флажков

Настройка важных флажков

Настройка кнопки

Переходим в раздел Devices прошивки ESP Easy. И размещаем информацию о кнопке:

Кнопка будет подключена к пину GPIO4

Кнопка будет подключена к пину GPIO4

Состояние кнопки мы не будем использовать. Нам важен лишь факт ее нажатия. А вот включить или выключить лампу будем решать на основании ее текущего состояния, которое хранится в MQTT-брокере. Эта логика будет позже прописана в Node RED.

Датчик атмосферного давления BMP085

В том же разделе добавляем датчик давления:


Напомню, этот датчик связан с микроконтроллером по шине I2C, поэтому пины не нужно указывать. Они выше были указаны. В настройках мы укажем интервал отправки значений датчика 200 сек. И поставим галочку напротив Send to Controller, что заставит микроконтроллер отправлять значения датчиков на контроллер номер 1 (см. черный кружочек с числом).

Для значения Pressure добавим формулу пересчета из гигапаскалей в мм.рт.ст.

Датчик влажности DHT11

Датчик влажности будет размещен на пине GPIO14. Настройки для датчика тривиальные:

Настройки датчика влажности DHT11

Настройки датчика влажности DHT11

Проверка

Итого страница Controllers должна выглядеть так:

Контроллеры

Контроллеры

А страница Devices так:


В колонке Values будут видны считываемые показания датчиков.


В следующей статье настроим последний компонент Node RED.

Ответы на вопросы

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

Вижу метеостанцию на Node-Red. Умный дом не вижу…

Не совсем вопрос, но стоит сделать замечание. Пока нет цели сделать правильно, надежно, профессионально. Пока цель простая - стартовать. Есть простые требования (в первой статье). И данная простая схема (действительно похожа на простую метеостанцию с кнопкой) как раз удовлетворяет всем требованиям и дает возможность стартовать.

Подскажите, а не рассматривали другие прошивки?

Рассматривал. Под требования не подходят. Я не отрицаю их использование, но они более сложные для понимания. ESP Easy в этом плане просто как пенек. Даже достаточно взглянуть на его веб-интерфейс и мне, далекому от МК-темы, сразу понятно что к чему и как настраивать.

датчики DHT11 просто отвратительны

Датчик DHT11 взят для примера. Тут главное что требования выполнены. А уж какие датчики подключать - дело вкуса.

который может начать глючить и отваливаться, если подключать кучу датчиков по WiFi

В комментариях отписался человек, который посадил на свой роутер 11 контроллеров ESP. И все работает.

Читайте также: