Мобильная версия Форум Arduino Документация Гарантийные условия 0 0
UA RU
График работы магазина:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Вс: выходной
Каталог
Напиши статью и получи скидку!

Универсальный ESP

2021-04-21

Все статьи →

Собрав достаточно самоделок на ESP и Arduino платах (данный проект https://github.com/Polinden/AlmightyEsp и соседи по репозиториям), включая:

  • термостат для террариумов;
  • погодную станцию c бегущей строкой;
  • клон Гайвер-лампы;
  • 4WD робота итд,

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

Для воплощения шаблона мы взяли простой, но столь полезный проект - реле на основе ESP модуля. Оба варианта подойдут:

Мы закупили большой запас таких устройств на Ali (одно устройство по цене хот-дога), и задача состояла в том, чтобы штамповать на их основе проекты (смарт-релешки) с минимальными усилиями.

Под смарт-реле мы понимаем то, что к определенным разъемам плат ESP будут подключены реальные реле для управления нагрузкой

Ваша задача - разъемами или паяльником подключить проводки от реле к правильным ножкам ESP (масса обучалок Вам в помощь) и записать на склеротичке ряд цифр - к какой ножке (GPIO) подключено каждое реле.

Все дальнейшее должно стать простым, как угол дома.

В качестве реле минимальной стоимости подойдет и это:

Плата уже подключена на заводе к GPIO. На наш взгляд, это - самая дешевая, но не самая тупая смарт-розетка (конечно, добавьте корпус и БП на 5В). Но для чего-то покруче, можете взять несколько любых совместимых реле и подключить их ко множеству подходящих GPIO. Вы получите мега-реле без проблем.

С механической частью мы закончили. А что дальше? Возникает вопрос, какие же минимальные функции Вам нужны почти в любом подобном проекте.

Вот они:

  • возможность подключиться к новому Wi-Fi, куда бы Вас не занесло без перепрограммирования
  • предоставление устройством интерфейса для настройки такого беспроводного подключения
  • внутренний WEB сервер (портал устройства), который встречает Вас, если Вы зайдете в браузере на его страничку (введете IP устройства)
  • API для того, чтобы включить или выключить реле вручную или по расписанию из браузера или интернет устройств
  • так как само устройство не является часами, то время оно должно получать с сервера NTP
  • устройство должно быть многопользовательским
  • любой пользователь должен видеть на WEB страничке устройства его актуальное состояние, то есть, какие реле и расписания подключены или выключены
  • устройство способно принимать и отправлять сообщения на сервер MQTT с целью полноценной интеграции в Smart-Home и IoT систему (смотрите Комментарий 1 ниже)
  • устройство может само получать и отправлять информацию, используя API сетевых устройств, например отправлять/получать данные с REST-сервисов, например загружать прогноз погоды для своих целей
  • наконец, устройство должно в последующем обновляться "по воздуху" (смотрите Комментарий 2 ниже).

Комментарии:

1.Мы боремся за минимальную цену и сложность устройства. Если не обвешивать ESP плату, то сама она не может быть мега-мозгом Вашего дома. Поэтому, создавать на ней сложные расписания на неделю (для теплиц, коттеджей итп.) или сложную логику не стоит. Правильный путь - сложные расписания должно храниться в интеграторе, управляющем всем Smart-Home и передающем задачи "своре" устройств через MQTT брокера. В такой системе возможно по взмаху дирижера (интегратора) своей дирижерской палочкой (MQTT) играть на всех устройствах симфонию рассвета: включая чайники, музыку, поднимая шторы и прогревая авто ранним утром...

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

И вот, получился наш небольшой проект (пока-лишь тестовая версия).Благодаря которому Вы сможете собрав устройство:

settings.h index.html.h

#define DEVNAME "MishRelay"

#define OTAPAS "admin"

#define PINS_NUM 2

#define PINS_AR {5,4}

#define NTPSERV "europe.pool.ntp.org"

#define TIMESHIFT 7200

/*

NUMBERS OF RELAYS

*/

var NumRelays=2;

Итог

Собственно и все. Выбирайте в Arduino IDE опции заливки программы (следуя обучалкам, например, от уважаемого А.Гайвера) и загружайте ее по проводам в плату (только в этот раз).

Не отключая проводов проверьте работу. Для этого загляните в доступные сети WiFi с телефона (например). Там появится имя Вашего устройства. Соединившись с ним, как с роутером, Вы "упадете" в страничку конфигурации подключений. В ней Вы настроите Ваше устройство для работы домашней сетью WiFi. Подробности на странице используемой нами библиотеки: https://github.com/khoih-prog/ESPAsync_WiFiManager

После этого устройство должно нормально соединиться с Вашим домашним интернетом и в Arduino IDE (монитор порта) Вам придут строки текста о предоставленном ему IP.

Заходите по этому IP на страничку устройства и видите, что-то подобное:

Это - элементарный собственный WEB-портал устройства и минималистичные функции расписаний. Так как более подвинутые и логически обусловленные действия лучше реализовать в интеграторе, как мы и советовали. Масса зрелых проектов в помощь:

Располагайте Ваше устройство в нужном месте. Функция обновления по воздуху позволит апгрейдить его когда будет нужно, без демонтажа. Подробности на страничке используемой нами библиотеки https://github.com/jandrassy/ArduinoOTA.

При надлежащем опыте новое устройство (приехавшее с Ali) за 15 минут превращается в готовое многофункциональное реле для умного дома. Напомним, что кроме механических функций (вкл/выкл) устройство может доставать и отправлять в интернет информацию, например, путем REST запросов. Мы оставили эту возможность в виде helper-класса ReqestSHelper. Тут уж Вам придется допрограммировать самостоятельно, так как мы не в курсе Ваших желаний. Вы можете, например, получать из сети информацию о времени рассвета и Ваше реле может реагировать в зависимости от этого. Подобные примеры есть других наших проектах.

А вот поддержка MQTT включена сразу без усилий для Вас. Реле после соединения с MQTT сервером начнет информировании другие IoT-устройства о своем состоянии и получать от брокера MQTT (мы пользуемся https://mosquitto.org) команды включения-выключения. Если данная функция Вам не нужна, просто закоментируйте строку #include "MQTT.h" (файл Pattern_ESP.ino). Но если все оставить, как есть, то:

  • при старте нового устройства Вы, одновременно с настройкой пароля к WiFi, можете указать ip адрес MQTT сервера
  • если этого не сделать, то поддержка MQTT будет выключена
  • если соединение с брокером MQTT установится, Ваше реле будет посылать сообщения о включении/выключении в тему "erelay1"
  • устройство подписывается на тему "erelay2" и реагирует на сообщения в формате "n=on" / "n=off" (где n-номер реле) включая и выключая n-ое реле
  • названия тем, как и другие настройки соединения находятся в файле settings.h

ВНИМАНИЕ

Если Вы хотите сбросить настройки и обнулиться, чтобы при старте заново открылся конфигурационный портал, то просто нажмите на reset кнопку на плате ESP два раза с паузой не менее 2 и не более 20секунд. После этого реле снова заработает, как WiFi сеть, подключившись к которой Вы попадете на страничку конфигурации и тд.

ИТАК...

  • мы получили "жирное реле", в котором остались еще ресурсы для прочих задач (типа опроса датчиков)
  • реле синхронизировано с точным временем по сети
  • реле управляется со смартфона (вообще любого браузера)
  • оно может управляется по сети REST запросами (можно натянуть любое web-лицо)
  • устройство само публикует свое состояние в MQTT брокере и подписано на публикацию управляющих команд, то есть реле может управляться другими IoT устройствами
  • настройка соединения с WiFi выполняется интуитивно просто и может быть сброшена кнопкой без перепрошивки
  • если все же нужна перепрошивка ПО, то оно выполняется "по воздуху" без отключения устройства

Желаем нашему реле развиваться и размножаться!

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Общая оценка:

Оценка "Универсальный ESP"
5 из 5
сделана на основе 2 оценок 2 клиентских отзывов.

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Виктор
18.10.2023 08:23:12
Интересно, буду пробовать
Миша
23.04.2021 09:54:35
Повторили, работает отлично
оплата картами Visa и MasterCard