Esp easy настройка wifi

Обновлено: 06.07.2024

В этом уроке мы научимся прошивать модуль ESP программой ESPEasy. Подключим ESP к OPENHAB и будем управлять Умным домом. Прошивать модуль ESP можно по воздуху, используя WIFI соединение.
Напишем код для управления умным домом с помощью правил OPENHAB. И не важно какой модуль вы используете NODEMCU или ESP8266 программа ESPEasy РАБОТАЕТ С ЛЮБОЙ ПРОГРАММОЙ. Я покажу как в OPENHAB создавать вещи, THING, работать с PAPER UI и BASIC UI. Управлять реле будем с помощью планшета и телефона, а также через ХАБ панель. Изучим настройки, и возможности OPENHAB и ESPEasy.

Сегодня мы будем подключать модуль из 2-х реле к плате ESP8266 и прошивать для работы в Умном доме на OPENHAB.
Для этого урока я буду использовать вот такой набор деталей.
модуль ESP8266 ESP07. Мой выбор пал на него только из-за того, что у меня их много и для 2-х реле я считаю, что очень жирно использовать NodeMCU. Чтобы не мучиться с подключением я использую плату на которой уже запаяны все необходимые резисторы и сделаны выводы под обычный шаг 2,54 мм.
Гнездо разъёма под мини usb. Так как питать скорее всего буду от телефонной зарядки.
Модуль DC-DC AMS1117 это преобразователь с 5 на 3,3вольта. Так как все модули ESP8266 работают от 3.3 вольта.
Сдвоенный модуль реле. Он позволит нам управлять большой нагрузкой и работать с напряжением 220 вольт.
Ну и обычно я ставлю какой-нибудь конденсатор по питанию, который защитит от скачков. Но это не обязательно, но желательно так как модуль ESP хоть и маленький на вид, но бывает очень прожорлив. Поэтому его нельзя питать от 3,3 вольта платы Ардуино. Нужен отдельный блок питания.
Ну и сама плата на которой я всё это соберу. Это самая дешёвая коричневая плата, но для сегодняшнего проекта нам хватит и такой.
Как я буду паять я показывать не буду. Вернусь, когда всё спаяю. Не уходите.
Ну вот и готово. Надеюсь что за это время вы успели поставить лайк.

Все детали отлично разместились на макетной плате. Можно было бы конечно и покомпактнее сделать, но не суть важно. Я правда пока не отмыл её от флюса. Вот как я торопился к вам. Хейторы конечно сейчас начнут ругаться, что отстой и всё такое. Но мне нравится. Сделано надёжно, контакты хорошие и связь не пропадает. Так что буду дальше показывать на этой плате.
Подготовимся к прошивке. Надеюсь, что это все умеют делать. Подключим питание. Я использую обычную зарядку от телефона. И запустим ESP flasher. Я это делаю от имени администратора.

На сегодняшний день самой лучшей программой для прошивки модулей ESP8266 является программа ESPEasy. Удобство этой программы в том, что ESP надо прошить всего 1 раз с компьютера, а всё остальное будет уже происходить по воздуху, через ваше WIFI соединение. А ещё там есть прошивки для всевозможных модулей и датчиков, как для Ардуино, так и других контроллеров и просто заводских изделий. Например, Умные лампы, розетки и многое другое.
Надеюсь, что подключать ESP8266 к компьютеру вы уже умеете и я не буду здесь останавливаться. Это я говорю не для обладателей NODEMCU.
Я например подключаюсь через Ардуино. Как это сделать можете посмотреть мои предыдущие видео, там я подробно рассказывал об этом.
Надеюсь за это время вы успели поставить лайк?
Теперь вернёмся к ESPEasy.
Для начала скачаем программу для прошивки ESP и не важно какая у вас плата, ESP 01 или NodeMCU.
Качать будем с гитхаба.
Ищем в поисковике ESPEasy. Самая первая строка это то что нам нужно. Заходим и попадаем на самую свежую прошивку. Прокручиваем вниз и нажимаем скачать
Прошивка весит – 70 мегабайт.
После скачивания устанавливаем программу на компьютер и запускаем ESP.Easy.Flasher.exe
Вам выпадет вот такое вот окно. Вот с ним мы и будем работать. Все функции программы я сегодня рассказывать не буду. Их очень много, а расскажу только то что нам сегодня понадобится, а про остальное узнаете в процессе следующих уроков.
В следующих уроках я буду постоянно ссылаться на это видео. Поэтому я так подробно рассказываю.


Кодирование.
Для написания кода я буду использовать программу Visual Studio Code, но вы можете использовать просто notepad++. Я очень долго писал в нём и это никак не сказывалось на коде. Просто сейчас, когда кода стало очень много я перешёл на студию. Так что решайте сами в чём вам удобнее.
Сначала создадим файл items. Этих файлов может быть много. Я например делаю так. Для каждой вещи, я создаю свой items. Это удобно потом для поиска и редактирования.
У нас сегодня будут 2 реле, поэтому вставим вот такие строчки.
Все примеры вы потом сможете скачать единым архивом с сайта. Ссылка будет в описании.
Код состоит из вот такой строки.
SWITCH, Служебного названия, Описания которое вы увидите в интерфейсе, и ссылке на канал.
Ссылка пока будет пустая. Вы потом вставите сюда код после того как создадите канал.
Пока это может быть непонятно, но скоро всё станет ясно.
Второй файл который сегодня понадобится – это файл sitemap.
Этот файл может быть только один и он отвечает за вывод в интерфейс BASIC UI.
Про него я рассказывал в прошлом уроке.

Запускаем ESP EASY FLASHER.
В открывшемся окне мы будем производить настройки для прошивки нашего модуля.
Для начала установим порт к которому подключен модуль ESP. Если у вас стоит галочка, то вы увидите только активные порты.
Затем выберем прошивку. Как можно увидеть здесь их очень много. Есть прошивки абсолютно для любых версий модуля. Вы также можете просто очистить модуль прошив его прошивкой blank.
Единственное, что вам нужно знать так это объём флэш памяти которое находится на борту вашего модуля. У меня например 1 мегабайт, а если у вас Node MCU, то памяти скорее всего 4 мегабайта. Сегодня я не буду очищать свой модуль, а сразу прошью.
Для моделей есть 4 варианта прошивки.
Тестовая, нормальная, минимальная и кастомная.
Советую прошивать нормальной прошивкой. Так как мой модуль ESP 8266 , то я выбираю вот эту прошивку.
Нормальная, для ESP 8266 объёмом 1 мегабайт.
Можно ещё изменить скорость, но думаю не стоит, так как 115200 это оптимальная скорость работы модуля.
Дальше надо указать имя под которым вы будете использовать его. Имя нужно выбирать так чтобы потом можно было легко вспомнить что это такое и за что отвечает.
в тексте Далее надо указать номер устройства. Номера должны быть уникальными, не повторяющимися.
Ну и пароль. Вы конечно можете его не указывать, но тогда кто-нибудь может подключиться к нему. Так что для безопасности пароль нужно указывать всегда.
Ниже идут настройки ваше WIFI сети. Название и пароль. Я их скрыл. Ну мало ли что.
Здесь также можно указать фиксированный IP адрес устройства. Если вы его не укажете, то он будет присвоен вашим роутером.
Я указал, что он будет 192 168 1 111, и потом буду входить по этому адресу.
Ну и последняя строчка – это для резервной WIFI сети. Если модуль не сможет подключиться к одной сети, то он будет искать вторую.
Теперь нажимаем прошить и ждём. Ждать придётся примерно 3-5 минут. Так что запаситесь терпением.
Во время прошивки на модуле ESP будет мигать светодиод – это показывает, что идёт приём-передача информации. Через какое-то время вы увидите как побегут строчки указывающие что в данный момент происходит. Там будет выводиться информация которую вы указали в полях. Название, номер, пароль. Свойства вашей WIFI сети. Модуль сам перезагрузится и пропингует то адрес что ему был присвоен.
После того как как вы увидите вот такой экран, естественно со своими настройками, то вам надо будет перезагрузить модуль. Желательно отключив его от питания.
После этого ваш модуль будет готов для работы через WIFI, и больше вам не надо будет подключать его к компьютеру, а прошивать можно будет и с телефона.
Это очень удобно.
Следующий этап – это работа модуля с реле.

Настройка модуля реле в программе ESPEasy.
Открываем любой браузер и вводим IP адрес вашего устройства. В моём случае - это 192.168.1.111
Если вы задавали пароль, чего я вам советую делать всегда, то у вас откроется стандартное окно с полями ввода пароля.
Логин всегда будет админ, а пароль, тот, что вы задали. Я в своём примере пароль тоже сделал админ.
Заходим. Перед нами открывается вот такой интерфейс.
Сначала рассмотрим вкладку MAIN
Мы видим номер вашего устройства. В своём примере я указал, что он будет 5
Локальное время – Оно пока у нас не установлено
Время работы модуля в сети.
Загружено в процентах.
Свободно оперативной памяти.
IP адрес устройства.
И уровень принимаемого сигнала.
Если открыть дополнительные свойства, то можно увидеть намного больше информации.
Я не буду рассказывать про них, сами посмотрите.
Из интересного там, настройки вашей сети и полные сведения о модуле ESP. Размер памяти,
скорость, частота и многое другое.
Откроем вкладку Config.
Вы увидите уже заполненные поля данными что мы указывали при прошивке модуля.
Название, номер устройства, админский пароль. Название и пароль вашей WIFI сети. Здесь мы ничего изменять не будем.
Теперь перейдём к вкладке Controllers
ПОКА здесь пусто, но потом мы установим здесь связь с MQTT и нашим OPENHAB и настроим
публикацию
в топик Status.
Посмотрим что в HARDWARE.
Здесь очень много информации, но нам для сегодняшнего урока понадобится только
Установка светодиода
на плате ESP. Точнее сделаем так, что при работе с сетью он будет светится, а при потере
сети, погаснет. Светодиод находится на GPIO2. Также если вам понадобятся дополнительные
контакты, то вы можете отвязать контакты SDA, SCL от I2C установив их в NONE.
Переходим в DEVICE.
Здесь мы будем добавлять наши устройства и указывать к каким контактам они
присоединены. Так же проводить конфигурацию.
В NOTIFICATIONS мы ничего сегодня изменять не будем, а перейдём сразу в TOOLS
Здесь можно перезагрузить модуль, прочитать логи, обновить прошивку, но мы
сегодня только подключим сервер времени и установим наш часовой пояс и подключим работу с правилами..

Теперь давайте выполним настройку нашего модуля и конфигурацию реле.


А здесь мы указываем, что если связь с WIFI установлена, то включить светодиод, а если связь пропала выключить. Светодиод находится на 2 ножке модуля. Про эти контакты я уже говорил. Больше ничего менять не надо. И главное. Не забывайте постоянно нажимать SUBMIT.

Переходим к device. Нажимаем добавить. В выпадающем списке выбираем SWITCH INPUT – SWITCH.
Указываем имя. Не забываем что оно должно быть уникальным и чтобы вы потом вспомнили что это.
У меня это уже 5 реле в системе. Поэтому я так и укажу. Включаем его, а также включаем внутреннюю подтяжку. Указываем к какому GPIO он подключен. В моём случае к GPIO 14. Ставим галочку Отправлять свой статус. Делаем небольшую защиту от дребезга. Ещё здесь можно указать, что срабатывание от двойного клика и или от долгого нажатия на выключатель. И время нажатия. Ставим галку отправлять данные.
Тоже самое проделываем со вторым реле. Только имя и GPIO ставим другие.

Ну вот и осталась последняя вкладка TOOLS. Здесь мы рассмотрим только Advanced.
Для начала устанавливаем галочку, что мы будем использовать правила. Теперь нам нужно указать адрес ntp сервера. Сервера точного времени. В ы можете выбрать свой или указать тот что у меня. Но всё равно посмотрите как найти сервер. В любом поисковике набираете ntp сервер и открываете страницу. Затем выбирает не самый загруженный сервер. Копируете его имя и вставляете в свои настройки.
А здесь устанавливаете, что неделя у нас начинается с понедельника, а не с воскресенья. Как у них там.
Теперь надо указать свою часовую зону, или часовой пояс. Указывается в минутах. Мой часовой пояс + 3. Это значит 180 минут. Вот их я и вставлю.
Теперь установим широту и долготу своего родного города. Это не обязательно, но может потом пригодиться, например для датчика давления. Там будет нужно знать высоту над уровнем море. Ну может ещё где пригодится.
Делается это также просто. В поисковике набираете широта и долгота и вставляете эти данные в настройки.
Больше ничего менять не будем, хотя здесь есть ещё пару значений которые можно поменять. Но сегодня они нам не понадобятся.
На этом мы настройку закончили. Идём снова в MAIN и смотрим, что у нас изменилось.
Мы видим, что у нас установилось локальное время, и что мы находимся в сети уже 14 минут.

Повторяться не буду. Расскажу только про новое.
Frame отвечает, что на экране будет показана кнопка с описание ВКЛЮЧЕНИЕ РЕЛЕ, а сами реле будут показаны только после нажатия на эту кнопки.

Внутренний frame покажет сами реле.

Здесь показано, что
Это SWITCH и он связан с каналом и рядом будет выведена иконка. Позже я покажу как менять иконки.
На этом весь коддинг закончен. Теперь переходим к созданию в OPENHUB.
Заходим в PAPER UI, в INBOX. Нажимаем +. Выбираем MQTT Binding и жмём Добавить в ручную.
Здесь выбираем GENERIC MQTT Thing и создаём новую Вещь. Я буду часто говорить слово вещь, так как THING переводится как вещь. К этому просто надо привыкнуть.
Называем вещь. Название должно состоять из имени что вы назвали ваш ESP когда прошивали его прошивкой ESPEasy и номера который тоже там указали.
При прошивке я неточно выразился сказав, что номер должен быть уникальным. Точнее будет сказать что связка НАЗВАНИЕ-НОМЕР должна быть уникальна.
Например у вас 5 реле. И все они названы реле. И отличить их можно только по номеру. Надеюсь что объяснил.
Я скопировал это название, чтобы не ошибиться при написании его в дальнейшем.
Теперь связываем эту вещь с москито брокером.
Сохраняем. Теперь выбираем её из списка и создаём каналы.
Для начала нам надо выбрать тип канала. Их много, но нам нужен on off Switch. Теперь прописываем его ID
Оно состоит из название вещи и дополнительной цифры. Для первого реле я указал цифру 1.
Теперь пишем статус топика для этого канала и команду для него которая состоит из имени ESP и номера вывода к которому присоединено реле. У меня это 12 ножка для первого реле и 14 для второго.
Теперь пишем значения которые будут отправлены подписчикам топика. При включённом реле это 0, а при выключенном 1. Сохраняем и по аналогии создаём канал для второго реле. Только с постфиксом 2 и gpio 14.
Мы видим, что у нас теперь созданы 2 канала. Теперь надо скопировать адрес топика MQTT брокера и вставить его в файле items.
Вот и всё. Видите как мало всего потребовалось чтобы в OPENHAB создать и вывести в интерфейс наше устройство. Заняло всего минут 5.
Это 1 FRAME в коде файла Items, а это второй.
Теперь понажимаем кнопки. Реле должно весело щёлкать. Всё должно работать.
Теперь давайте поменяем иконки. Это сделать совсем не сложно. В openhab есть набор иконок которые вы можете вставить в сой код простым копирование названия. Но вы можете вставлять и другие картинки. Для этого их надо скачать и положить в папку ICONS.
Изменим иконку на розетку. Видим, что она изменилась. В галереи иконок есть и такие которые содержат 2 состояния. С ними получается очень интересный эффект. В рабочем состоянии один вид, а в не рабочем другой.
Теперь поуправляем с планшета и с телефона. Кстати для телефонов есть отдельное приложение для OPENHAB. Про него я расскажу в следующих уроках.
Переключения происходят практически без задержек. Изменения на планшете и телефоне синхронны и тоже без отставаний.
Вывод на хаб панель я сегодня не делал. И так урок получился очень длинным. Это мой первый такой продолжительный урок. Если количество досмотров будет большое, то я продолжу снимать такие подробные уроки. Если нет, то ограничусь только коддингом и короткой информацией. Не хотелось бы снимать впустую.
На этом я заканчиваю урок. И как говорил, когда будет следующий зависит только от вас.
До встречи.

Прошивать мы будем прошивкой 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. И все работает.

Готовая прошивка "ESP Easy" позволит легко превратить любой модуль на базе ESP в многофункциональный сенсор или модуль для умного дома под управлением таких систем, как OpenHab и Domoticz. ESP Easy является отличным инструментом для изучения протокола MQTT.

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

Прошивка ESP Easy

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

Прошивка ESP Easy может быть установлена практически на любые платы на базе ESP8266. Вы можете прошить как самые простые модули типа ESP-01 или ESP-12, так и устройства типа NodeMCU development board, Wemos D1 и практически все устройства от производителя Sonoff. После прошивки вы сможете работать с GPIO 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, A0. Пин номер 9 не рекумендуется использовать из-за нестабильной работы. На модулях Sonoff будут доступны пины 0 (кнопка), 12 (Реле), 13 (Светодиод) и, возможно, еще несколько в зависимости от конкретной модели устройства.

С чего начать?

В большинстве случаев модули ESP продаются с предустановленными прошивками AT firmware или NodeMCU LUA firmware. Начать делать сенсоры на базе ESPEasy легко: нужно просто заменить стандартную прошивку на ESPEasy, и можно приступать к работе. Это можно сделать с помощью программы flashtool (к сожалению, она доступна только на Windows) или с помощью Arduino IDE. Во время установки мы будем действовать по следующей схеме:

1. С официального сайта скачать стабильную прошивку
В архиве также будет программа flash tool для прошивки

2. Подключить модуль ESP к компьютеру
Используем USB/UART переходник для простых плат типа ESP-01 или просто подключаем Micro-USB к платам типа NodeMCU dev board.

3. Загружаем ESPEasy на плату с помощью flash tool или Arduino IDE
Обратите внимание на то, что GPIO должен быть соединен с GND при включении для запуска режима прошивки на плате.

4. Перезапускаем модуль ESP. Появляется WiFi сеть с названием "ESP_Easy_0". Подключаемся к ней
(в версии прошивки 2.0 точка доступа будет называться ESP_0)
Если страница настройки не открылась автометически, необходимо набрать 192.168.4.1 в вашем браузере

5. В появившемся окне настраиваем подключение к вашей домашей WiFi сети и нажимаем Connect

6. Модуль ESP перезагрузится и подключится к вашей домашней сети

7. Откройте в браузере новый IP адрес платы ESP и начинайте собирать данные с сенсоров

Поздравляем, всё настроено, и вы можете начать работать с ESPEasy!

Скачиваем прошивку

Скачиваем стабильную версию прошивки с официального сайта - ESPEasy R120.

Подключаем модуль ESP к компьютеру

Для всех, кто только начинает разбираться с EPS, MQTT и умными домами, мы рекомендуем обратить внимание на модуль NodeMCU ESP8266 (он же NodeMCU dev board). У него есть ряд плюсов: встроенный преходник USB/UART, большое количество GPIO, аналоговый пин A0, не нужно подключать GPIO к GND для прошивки, наличие питания 5 и 3.3 вольта. Просто подключаете плату к компьютеру с помощью Micro-USB кабеля и начинаете работать. NodeMCU dev board позволит вам сэкономить большое количество времени! При программировании обратите внимание, что номер ножки не соответствует номеру GPIO.

NodeMCU dev board

Также встроенный переходник USB/UART есть на плате Wemos D1 Mini:

Wemos D1 Mini

Если у вас плата без переходника, например, ESP-01 или ESP-12, или вы хотите прошить модули Sonoff, то вам понадобится переходник USB/TTL.

В обоих случаях дополнительно вам понадобится установить на компьютер драйвер для вашего встроенного или внешнего переходника USB/TTL.

Загрузка прошивки ESPEasy с помощью Flash Tool

Данный способ подходит только для компьютеров с Windows, но он самый простой! Сначала необходимо проверить к какому порту компьютера подключен наш ESP помуль. Подключаем модуль к компьютеру по USB. Открываем "Диспетчер устройвств", смотрим вкладку "Порты (COM и LPT)" и видим нашу плату. В моем случае порт COM4. Если ваше устройство не отображается в списке портов - значит вы не поставили драйвер для USB/TTL переходника.

Поиск порта ESP в диспетчере устройств

Обратите нимание, что перед прошивкой модулей с внешнем адаптером USB/TTL их необходимо перевести в режим загрузки программного обеспечения. Для этого необходимо соединить GPIO0 на плате ESP с GND, воткнуть переходник в плату, а потом уже в USB. Если у вас NodeMCU или Wemos, то этого делать не нужно.

Распаковываем скаченный архив ESPEasy_R120.zip в папку ESPEasy_R120 и запускаем файл flash.cmd. Откроется черное окно, в котором необходимо будет ответить на несколько вопросов.

Прошивка EspEasy

1 вопрос: Comport (example 3,4. ) - необходимо ввести номер порта, к которому подключен модуль ESP и нажать Enter. Я ввожу 4. Enter.

2 вопрос: Flash size (example 512, 1024 or 4096) - необходимо ввести количество памяти, которое доступно на нашей плате. Сколько памяти на вашей плате вы можете посмотреть в этой таблице. Для платы NodeMCU dev board вводим 4096. Enter.

3 вопрос: Build - необходимо ввести номер версии прошивки, которую вы загружаете. В нашем случае вводим 120. Enter.

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

Финальный экран при прошивке ESP8266

Нажимаем любую клавишу. Прошивка ESPEasy успешно загружена на ваш модуль! Поздавляю! Переходим к пункту "Подключение и первичная настройка" в этой статье.

Возможные проблемы с Flash Tool

Если вы не видите своё устройство в диспетчере устройств, значит у вас не установлен драйвер переходника USB/TTL.

Если файлы не распаковать в папку, а просто запустить из архива, то после вопросов система выдаст ошибку, т.к. не сможет работать с файлом esptool.exe. Просто распакуйте архив в папку и заново запустите flash.cmd.

Если вам так и не удалось прошить модуль ESP с помощью flash.cmd, но плата видна в системе, то вы можете сделать прошивку программой ESPEasy Flasher. В ней надо будет только выбрать порт и соответствующую прошивку. В скаченной папке с прошивками будет 3 разных файла прошивок для плат с разным размером памяти.

Программа ESP Flasher

Если у вас не получилось сделать загрузку ни одним из этих способов - вы можете попробовать сделать загрузку через Arduino IDE.

Загрузка прошивки ESPEasy с помощью Arduino IDE

Данный способ отлично подходит, если вы уже загружали свои собственные скетчи на плату через Arduino IDE и сейчас хотите попробовать поработать с ESPEasy. Если же вы раньше просто программировали ardunino и ни разу не прошивали esp8266, то предварительно вам необходимо подготовить Arduino IDE. Подробную инструкцию вы можете найти в нашей статье. Через Arduino IDE вы можете сделать загрузку как на Windows, так и на Mac OS.

В папке, которую вы скачали с официального сайта, кроме файлов последней прошивки и программы для загрузки также есть папка Source. В ней находятся два папки: в одной - необходимые библиотеки, во второй - файлы нашей прошивки. Копируете библиотеки из папки librares в папку с библиотеками ArduinoIDE на вашем компьютере.

Установка дополнительных библиотек

На компьютерах Windows эта папка обычно: C:\Users\USERNAME\Documents\Arduino\librares - в папке с вашими документами.

На Mac OS: \Users\USERNAME\Documents\Arduino\librares - в папке с вашими документами.

Дальше заходим во вторую папку из скаченного архива (\Source\ESPEasy) и запускаем оттуда файл ESPEasy.ino. Откроется Arduino IDE.

Прошивка ESP через Arduino IDE

Теперь в меню "Инструменты" необходимо выбрать порт, тип платы, размер памяти. Какие параметры выбирать для разных плат и как настраивать Arduino IDE для работы с ESP вы может прочитать в нашей отдельной статье.

Для NodeMCU dev board выбираем параметры как на картинке + выбираем свой порт.

Настройка подключения для прошивки через Arduino IDE

Заходим в меню "Скетч" и выбираем "Загрузка"

Запуск прошивки EspEasy в Arduino IDE

Прошивка загружена на модуль ESP, теперь мы можем переходить к настройке.

Подключение и первичная настройка

Теперь на своём компьютере откройте список доступных Wi-Fi сетей - в списке должна появиться сеть ESP_0 (В некоторых версиях прошивки возможно будет Esp_Easy_0). Подключитесь к ней (стандартный пароль configesp).

Если ваш браузер не открыл автоматически страницу настройки EspEasy, то в адресной строке браузера наберите 192.168.4.1. В появившемся окне необходимо выбрать вашу домашнюю wi-fi, ввести пароль от нее в поле password и нажать кнопку Connect.

Первое подключение к EspEasy

Первое подключение к EspEasy

После этого ваш компьютер отключится от сети Esp и подключится обратно к вашей домашнией Wi-Fi сети. В браузере покажется ip адрес вашего esp. В адресной строке вашего браузера введите ip esp модуля (например, 192.168.1.65). Откроется окно с основный информацией о модуле esp, на котором вы можете посмотреть: беспрырывное время работы модуля, уровень сигнала, ip адрес модуля и точки доступа, версию прошивки, MAC адреса, информация о свободной памяти и список других esp модулей в сети.

Информационный экран EspEasy

Вверху расположено меню для перехода в разделы системы. Зайдите во вкладку Config. Здесь находятся основные настройки системы, рассмотрим их подробнее.

1. Name - имя вашего ESP модуля. Оно используется как сетевое имя, а также для идентификации каналов при работе по MQTT протоколу.

2. Admin Password используется для установки пароля на настройки. По умолчанию пароля нет, но если его установить, то при открытии ip адреса вашего esp модуля необходимо будет ввести пароль. Только в этом случае вы сможете редактировать настройки. Это очень удобно, если вы используете свои модули в публичных местах.

3. SSID, WPA Key - используется для подключения к вашей домашней Wi-Fi сети.

4. WPA AP Mode Key - данный пароль используется в том случае, если ваш esp модуль работает в режиме точки доступа.

5. Unit nr - это номер машего модуля в сети. Для корректной работы системы он должен быть уникальным для каждого esp модуля.

6. Protocol и следующие за ним поля отвечают за выбор и настройку сетевого протокола, по которому ваш esp модуль взаимодействует с сервером умного дома или облачным сервером сбора данных. Мы можем выбрать OpenHAB MQTT, Domoticz MQTT, PiDome MQTT и ThingSpeak и другие менее популярные варианты.

7. Sensor Delay отвечает за то, как часто данные с модуля ESP отправляются на сервер. Значение необходимо писать в секундах.

8. Sleep Mode используется для перевода устройства в режим глубокого сна. Используйте этот параметр только после полной настройки вашего устройста.

Основные настройки веб интерфейса

В разделе Hardware вы можете выбрать какой светодиод на плате будет отвечать за состояние Wi-Fi подключения, а также выставить дефолтные состояния пинов. Во вкладке Rules можно настроить простые правила автоматизации. Обратите внимание, что по умолчанию данная вкладка не отображается. В разделе Devices происходит добавление и настройка датчиков и управляемых девайсов. В разделе Tools находятся более тонкие настройки, а также есть поле для выполнения команд.

В данной статье мы рассказали вам о том, что из себя представляет готовая прошивка EspEasy, для чего ее можно использовать, как прошить ее ваш ESP модуль, а также как провести первичные настройки. В следующих статьях мы подробно расскажем о том, как использовать EspEasy в ваших проектах. Поключим к плате ESP самые популярные датчики, поробуем передавать данные с них в облачный сервер ThingSpeak и построить по ним графики. Также мы подключить ESP модуль к умному дому на базе OpenHAB по протоколу MQTT - будем собирать данные с датчиков и управлять светодиодами.

IMG_20201202_201130.jpg



В настоящее время программное обеспечение для ESP представлено несколькими вариантами:

1. ПО с исходным кодом. Его много, чаще всего это код, который требуется компилировать в среде Arduino IDE.

Плюсы: потенциально самые гибкие возможности.
Минусы: много мороки - требуется установка IDE, разных библиотек, хотя бы поверхностное понимание кода, говорят что прошивки собранные на ардуине работают не всегда стабильно (ну в этом нет ничего удивительного).

2. Готовые прошивки под ваше "железо" и требуемый функционал, которым требуется только прошить ESPшку.

Плюсы: Быстро, удобно.
Минусы: Как правило такие прошивки-конструкторы платные и без возможности тиражирования - каждая прошивка индивидуальна под каждую ESP. Нет гибкости в настройке, при необходимости подключить дополнительно оборудование или сервис нужно снова покупать и перезаливать прошивку.

И вот теперь самое интересное. Проект ESP Easy - по сути это уже собранная, бесплатная прошивка для вашей платы, которая обладает широкими возможностями работы с различным оборудованием и внешними сервисами. Вся настройка устройства выполняется в веб-браузере подобно тому как вы конфигурируете свой домашний маршрутизатор. Конечно же я не буду долго и нудно рассказывать как все настраивать и прошивать, в инете куча статей на эту тему, просто отмечу некоторые основные моменты:

Поддерживаются следующие протоколы для контроллеров автоматизации и внешних платформ:

controllers.jpg

Благодаря Generic-ам зная API передачи данных можно вещать и в многие другие сервисы, например, я настроил трансляцию на известный отечественный ресурс "Народный мониторинг".

UDP.jpg

Для теста подключил датчик BME280, всё хорошо работает. Из интересных особенностей - есть возможность программной корректировки показаний с помощью самописных формул EasyFormula.

BME280.jpg

Еще я потестил счетчик импульсов, это актуально тем, кто желает мониторить приборы учета с импульсным выходом или подключить, например, счетчик Гейгера. Еще вариант - анемометр, измерение скорости ветра/потока пропорционально количеству импульсов Count в единицу времени, с расчетом значения скорости по формуле.

counter.jpg

watermeter.jpg

Пройдёмся ещё по нескольким вкладкам. "Hardware" - тут настраиваются GPIO, интерфейсы и всё такое.

Hardware01.jpg

Hardware02.jpg

"Devices". Здесь перечислены все подключенные устройства и их показания

Devices.jpg

"Notifications". С уведомлениями не разбирался

Notifications.jpg

"Tools". Тут множество всяких настроек, можно активировать самописные скрипты. Всех возможностей не знаю, к тому же проект быстро развивается.

Tools01.jpg

Можно сохранять/загружать настройки и даже обновлять из файла встроенное ПО.

Tools02.jpg

На всякий случай дам совет - что бы соединение было стабильным, нужно отметить следующие пункты в меню Tools/Advanced: Force WiFi B/G и Force WiFi No Sleep. Иначе браузер не всегда открывает страницы, я даже сперва приуныл когда пробовал настраиваться после свежезалитой прошивки.

Advanced.jpg

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

Помимо Node MCU популярна также плата Wemos D1 mini, у неё меньше выводов, благодаря двухстороннему поверхностному монтажу компонентов она значительно компактней, чем NodeMCU. Цена такой платы около 2$ с бесплатной доставкой.


Накануне нового 2019 года Александр Вайдуров (AlexAW) сделал очень полезный и приятный подарок всем пользователям нашего сайта, написав довольно обширную и интересную статью о том, как самостоятельно разрабатывать прошивки и программировать различные девайсы на базе широко известного чипа ESP8266 даже не имея познаний в программировании. Но, конечно, базовые познания иметь все же желательно - хотя бы для понимая того, что вы делаете. Тем не менее, надеюсь, что после прочтения этой статьи, у многих, кто сомневался в своих возможностях в программировании, появится желание самостоятельно собрать и запрограммировать какое-нибудь полезное устройство на ESP8266. Итак, далее слово предоставляется Александру:

В этой статье я постараюсь рассказать и показать, как без программирования создавать периферийное устройство на ESP8266 c прошивкой ESP_Easy. Эту универсальную прошивку создает команда разработчиков любителей, проект динамично развивается увеличивается его функциональность и объем поддерживаемого оборудования, датчиков и протоколов связи. Что особенно радует, проект не является коммерческим. Более подробно обо всем этом можно почитать на сайте разработчиков. Что касается поддерживаемого оборудования, я так понял, что прошивка будет работать практически, на всем железе, на котором установлена ESP8266.

Я познакомился с этой прошивкой, развернув ее на китайском клоне отладочной платы WeMos D1 mini. Мне понравились возможности этой прошивки. Для пробы, я собрал на ней макет терморегулятора, с цифровым датчиком температуры DS18B20, дисплеем LCD1602 подключенным через интерфейс I2C и исполнительным реле. Мой проект подключался к центральному модулю через WiFi сеть по протоколу MQTT. В качестве центрального модуля, для экспериментов я использовал MQTT клиента на Android планшете. Проект позволяет, удаленно и местно контролировать текущую температуру, состояние реле и значение уставки. Так же есть возможность, местно и удаленно изменять значение уставки.

Для создания из работающего макета реального устройства, была разработана печатная плата в среде проектирования EasyEDA. Схему проекта см. ниже.

esp8266

esp8266

Рис. 2

Запускаем загрузку нажатием кнопки Flash, и прижимаем кратковременно вход reset ESP к общему проводу. Начинается процесс загрузки, о чем в окне монитора загрузчика сообщают увеличивающиеся значения процента загрузки. По окончании загрузки, отключаем от ESP преобразователь интерфейсов и вывод GPIO 0 от общего провода. Больше нам подобную процедуру проделывать не потребуется, т.к последующие обновления мы можем делать по “воздуху”.

Шаг второй прописываем устройство в своей сети. Для этого после сброса ESP с помощью, смартфона, планшета или компьютера с WiFi интерфейсом, отыскиваем в сети точку доступа “ ESP_Easy_0”, и подключаемся к ней. Пароль для подключения ”configesp ”. Это точка доступа нашего устройства, которое генерирует веб страничку по адресу 192.168.4.1. Обычно после подключения к точке доступа, происходит автоматический запуск браузера и открывается страничка настройки подключения. На этой страничке, необходимо указать (выбрать) WiFi сеть к которой должно будет подключаться наше устройство и указать пароль для входа.

esp8266

esp8266

Рис. 4

Также адрес вы можете посмотреть на DHCP сервере своего роутера. Там же потом можете присвоить устройству фиксированный адрес по мак адресу (если нужно).

Дальнейшее общение с устройством будет осуществляться через браузер любого устройства в вашей сети. Нужно просто связаться с веб сервером устройства набрав IP адрес устройства в адресной строке браузера.

Шаг третий – Конфигурирование. Набираем IP адрес устройства в адресной строке браузера. Видим вот такую информационную страничку. Думаю, комментарии тут не требуются.

esp8266

Рис. 5

Откроем вкладку Config

Вводим имя устройства в поле Unit Name, например ESP_Easy_Test, оно в дальнейшем будет идентифицировать устройство в в протоколах связи. Напротив пункта Append Unit Number to hostname , активируем крыж . В поле Unit Number вводим уникальный номер устройства. Также можем определить пароль доступа к интерфейсу конфигурирования устройства.

На этой же страничке можно указать, альтернативную точку доступа к сети, Сменить пароль доступа к устройству, в режиме точки доступа. Ввести сетевые настройки устройства. Установить режимы состояния «сна» После установки настроек необходимо их сохранить нажатием на кнопку Submit.

esp8266

esp8266

Рис. 7

Настроенные протоколы связи мы можем включать и выключать Установкой (снятием) крыжа Enabled. Не забываем его поставить и сохранить нажатием на кнопку Submit.

esp8266

Рис. 8

Открываем следующую закладку Hardware.

esp8266

Рис. 9

Здесь практически все настройки можно оставить по умолчанию. Главное выберем GPIO для организации I2С интерфейса. На плате имеются несколько портов с преобразователями уровня, выберем GPIO4 и GPIO5. Так же установим GPIO2 для индикации статуса соединения WiFi и GPIO10 в состояние низкого выхода при рестарте, для того что бы пищалка наконец замолчала ))). Снова сохраняем нажатием на кнопку Submit.

Идем к следующей закладке Devices. Здесь мы пропишем и настроим все подключаемые нами к ESP8266 устройства. Начнем с подключения дисплея. Жмем первую кнопочку Edit.

esp8266

Рис. 10

В меню выбора устройств находим и выбираем строчку «Display - LCD2004».

esp8266

Рис. 11

esp8266

Рис. 12

В строке Name вводим имя подключаемого устройства. Включим плагин поддержки LCD дисплеев, установив крыж в строке Enabled. Далее важно указать правильный адрес устройства в интерфейсе I2C. Так же выберем правильный размер дисплея - две строки по 16 символов. Что бы проверить работоспособность, для начала, давайте в первую строку выведем значение системной переменной содержащей дату и время. Подробнее о системных переменных читайте в Wiki. Для активации подсветки дисплея выберем GPIO16. Забегая вперед скажу, что это кнопка на плате, которую я планирую использовать для местной установки значения уставки. Время работы подсветки выберем 60 секунд. Режим отображения дисплея установим «отбрасывать все, что не входит в строку» Для того что бы видеть, например время, с точностью до секунд поставим периодичность вывода на экран -ежесекундно. Жмем Submit для сохранения настроек.

Если все подключено правильно и адрес интерфейса дисплея указан, верно, вы увидите системные установки даты и времени устройства. Пока время и дата, скорее всего не верные, позже я покажу, где они устанавливаются. Попробуйте подставить другие системные переменные в строки Line 1, Line 2. Вы увидите, какие еще сведения можно получить от системы ESP_Easy.

esp8266

Рис. 13

Продолжим подключать устройства. Следующим подключим цифровой датчик температуры DS18B20. Этот датчик работает в диапазоне питающих напряжений от 3 до 5 вольт. На плате еще один порт снабжен преобразователем уровней GPIO13, к нему и подключим термодатчик, и запитаем его от 5вольтового питания. Для этого в закладке Devices нажимаем кнопку Edit в следующей, свободной строчке. В меню выбора устройств находим и выбираем строчку «Environment – DS18b20».

esp8266

Рис. 14

Даем уникальное имя датчику, например «ТМ». Это имя будет обозначать устройство в протоколах связи вместо переменной %tskname%. Включаем плагин, выбираем порт. Включаем отправку данных с периодичностью 60 сек. Можно и чаще конечно, особенно пока экспериментируем. Будем быстрее видеть реакцию устройства.

esp8266

Рис. 15

Обратите внимание на раздел Values. В нем одна строка, с именем переменной «Temperature» хранящей температуру, в протоколе связи она будет подставляться вместо %valname%. Так же в этом разделе можно указать количество знаков после запятой. Не пренебрегайте правильной настройкой разрядности, т.к. это влияет на отображение значений переменных и объем памяти необходимый для их хранения. Жмем Submit, и в окне появятся еще несколько новых строк. После начала работы плагина, произойдет опрос шины 1-Wire и если к шине подключено несколько датчиков, в меню выбора Devise Address можно будет выбрать адрес требуемого датчика, а в меню Device Resolution установить количество считываемых бит (этот параметр влияет на выдаваемую точность и время измерения). Понятно, что если на шину навесить несколько датчиков, аналогичным образом их все можно зарегистрировать и использовать. Получим многоканальный термометр. Напомню, имена датчикам следует давать уникальные. Для сохранения, как всегда, жмем submit .

esp8266

Рис. 16

В списке устройств появится новый датчик и текущее значение результата его измерений.

esp8266

esp8266

Рис. 18

В итоге наше устройство превратилось в измеритель температуры.

Забегая вперед скажу, устройство уже периодически сообщает значение температуры MQTT брокеру в топике /ESP_Easy_Test/TM/Temperature

esp8266

Рис. 19

Но наша цель терморегулятор, а для этого нам нужно управлять реле исходя из сравнения измеренной температуры с требуемой. На заре разработки прошивки ESP_Easy, для решения подобных задач был разработан «механизм» написания правил. К нему мы еще вернемся, а текущую задачу решим проще. В современной прошивке в перечне поддерживаемых датчиков, есть плагин такого виртуального устройства, как регулятор -контроль уровня – «Regulator - Level Control Вот его мы и выберем после нажатия кнопки Edit в третьей строке списка подключенных устройств.

esp8266

esp8266

Рис. 21

Регулятор готов. На дисплее мы видим текущую температуру и установленную температуру уставки.

esp8266

Рис. 22

Статья получилась довольно обширная. Но видимо это по тому, что она изобилует картинками. Тем не менее, будем закругляться.

Кратко напишу еще про протокол MQTT, точнее про топики, которые публикует наше устройство. Как вы помните, мы ставили крыжи напротив надписи Send to Controller у двух плагинов, датчика температуры с именем «TM» и параметром «Temperature», и регулятора с именем «LC» и параметром «Output». Напомню имя устройства у нас ESP_Easy_Test.

Итак наше устройство публикует два топика:

Топик со значением температуры /ESP_Easy_Test/TM/Temperature в виде числа с плавающей точкой;

Топик с значением состояния реле /ESP_Easy_Test/LC/ Output, 0 - реле выключено, 1 – включено.

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

Вот собственно и все. Для первого знакомства, пожалуй хватит. В следующей статье я расскажу о дальнейшем развитии терморегулятора. А именно о том, как с помощью правил сделать местное однокнопочное управление значением уставки, а также как менять значение уставки удаленно с центрального устройства через MQTT топик. Для этого мы изучим возможности еще нескольких плагинов, познакомимся с синтаксисом написания правил, узнаем несколько полезных тонких настроек, для улучшения потребительских свойств создаваемого устройства.

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