8-900-374-94-44
[email protected]
Slide Image
Меню

Esp8266 умный дом – Проект умного модуля на базе ESP8266

MQTT, умный дом, ESP-8266 и Plug&Play / Habr

Создание умного дома подразумевает массу разных датчиков, контролирующих обстановку в доме — датчики движения, освещения, температурные и прочие. Если «умный дом» небольшой, то все выглядит просто даже с самодельными системами на базе открытых решений (MQTT, OpenHAB и т.д.) — подключили датчик, прописали его в программе OpenHAB или HomeAssistant и начали работать. Но если датчиков много, то появляется много рутинной и неблагодарной работы по прописыванию каждого из них в системе управления.

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

Конкретно эта прошивка работает на модулях с ESP-8266 (в том числе и на Sonoff Basic Switch и Sonoff Touch Wallswitch) с P&P скриптами для OpenHAB и HomeAssistant, но сам способ выдачи plug&play информации можно использовать и в других проектах.


При подключении устройства к MQTT-брокеру создаются топики вида (в данном случае — для кнопки FLASH на ESP-8266 с серийным номером 0023CB541):

  • /myhome/PNP/ESPX-0023CB541/BUTTON/name — название/описание («FLASH button» — так будет оно отображаться в веб-интерфейсе)
  • /myhome/PNP/ESPX-0023CB541/BUTTON/type — тип переменной и направление потока данных для нее, «O:Switch» обозначает датчик, который выдает информацию, а, например, «I:Dimmer» — входящий канал диммера
  • /myhome/PNP/ESPX-0023CB541/BUTTON/groups — группы, в которых эта переменная будет фигурировать по умолчанию («Switches Builtin Buttons»)
  • /myhome/PNP/ESPX-0023CB541/BUTTON/min — минимальное значение (для числовых переменных, для кнопки оно будет пустым)
  • /myhome/PNP/ESPX-0023CB541/BUTTON/max — максимальное значение (аналогично)

Скрипт, запускающийся на сервере (по крону или вручную, после подключения устройства) — скачивает список топиков из /myhome/PNP, ищет отсутствующие в OpenHAB девайсы и создает для них конфигурационные файлы. Если файл конфигурации для такого устройства уже есть, то P&P-информация полностью игнорируется, но можно этот файл удалить, при необходимости заново создать файл для устройства с изменившимся набором датчиков.

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

Немного поподробнее расскажу про собственно прошивку для ESP-8266. Ее исходные коды (и скрипты поддержки для OpenHAB и HomeAssistant) можно найти на Github (конкретно скрипты поддержки лежат здесь).

Она работает на стандартных модулях ESP-8266 (а также на Sonoff Basic Switch и Sonoff Touch Wallswitch), поддерживает обновление прошивки на лету (ArduinoOTA), а также имеет простейший веб-сервер для первоначального конфигурирования параметров WiFi-сети и задания IP-адреса MQTT-брокера.

Структура прошивки модульная и можно довольно легко добавлять свои датчики/устройства. Текущий список включает в себя:

  • Инфракрасные датчики движения и радио-датчик движения Parallax X-band motion detector (до 3 штук на модуль)
  • Датчик температуры/влажности DHT22 или аналогичный
  • Мой 4-канальный диммер, управляемый по Modbus/RS-485
  • Сонары HC-SR04 и сонары MaxBotix с последовательным выводом
  • Реле на Sonoff Basic Switch и Sonoff Touch (последний можно переключить как в режим контроля реле по кнопке, так и только через OpenHAB/HomeAssistant)
  • Встроенные ADC, светодиод и кнопка Flash (для Sonoff Touch — это сенсорная кнопка)
  • Простой термостат с двумя реле для управления вентилятором (indoor unit) и компрессором (outdoor unit)

Следует заметить, что из-за нехватки пинов на ESP-8266 модули могут конфликтовать друг с другом (например, диммер с сонаром одновременно не получится подключить, если не перераспределить пины самостоятельно).

После выбора необходимых устройств в esp-sensors.h, компиляции и прошивки — модуль переключится в режим конфигурирования — поднимет свою WiFi-сеть с именем типа «espx-0023cb541», к которой нужно подключиться (можно любым смартфоном) с паролем из того же файла, затем зайти на 192.168.4.1 и задать логин и пароль сети, а также IP-адрес брокера. Эти параметры сохранятся во флеше, так что второй раз не понадобиться этого делать. При невозможности подключиться к заданной сети в течении одной минуты — оно снова переключится в режим конфигурирования на три минуты, а потом будет повторять этот цикл до успешного подключения.

Для тех кто соберется править эту прошивку, упомяну, что каждый модуль датчиков/устройств разбит на шесть функций:

  • setup_*() — конфигурирование пинов
  • loop_*() — опрос датчика на каждом цикле программы
  • refresh_*(forceSend) — обновление информации о состоянии датчика на MQTT (200 мс по умолчанию, а каждые две секунды — принудительное обновление)
  • pnp_*() — отсылка P&P-информации
  • subscribe_*() — подписка на необходимые входящие топики
  • mqtt_*() — обработка входящих mqtt-сообщений

Эти функции нужно определить в файле своего модуля, затем добавить их вызов в соответствующие места esp-sensors.ino.

habr.com

Умный дом, как я до такого докатился. Часть 4-я / Habr

В первых трех частях я рассказал как у меня возникла идея (необходимость) построения “умного дома” и как я ее воплотил в жизнь.

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

Ну и небольшой спойлер: под катом будет краткое описание “очередной поделки на esp8266 с преферансом и куртизанками”.

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

Первый — централизованность. Да, это плохо, да, об этом я знал, но опыта производства конечных автономных устройств не было, да и выбранный в качестве основного протокол 1-Wire такой возможности не предоставлял.

Соответственно, центральный сервер стал узким местом. Пять раз по вине выхода из строя “железа” вся система не работала больше суток (а то и двух-трех) и приходилось пользоваться резервной (включать освещение рубильниками в щитке, обходиться без теплого пола, вентиляции, производить повторную калибровку водяных счетчиков и т. д.).

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

Второй — ограничение на топологию шины 1-Wire + моя неопытность.

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

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

Вся система размещается в стандартной телефонной розетке.

Разводка четырехжильным телефонным проводом.

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

Теперь папа смотрит температуру на компьютере.

Вот так:

Ну и с графиками:

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

Итак, вашему вниманию представляется “esp07_4PIO_6S v2”.

Вид сверху:

Вид снизу:

В прошлый раз большой проблемой было подбор корпуса, так что в этот раз я плясал именно от корпуса. Поскольку в наличии были корпуса от старых моделей медиаплеера Dune, выбор пал на них. После доработки напильником (отверстия под входы и выходы у медиаплеера немного другие, завести 220v на разъем HDMI не удалось 🙂 ) подошло идеально. Только датчик температуры пришлось снаружи делать, так как внутри начинка нагревает воздух.

Входы и выходы на 220v

Входы и выходы на 5v и 12v

Что может данный модуль и почему он лучше чем старая система?

  • Для монтажа не требуется никаких дополнительных проводов. Питается он от той же сети, что и управляет.
  • При отключении или недоступности центрального сервера или Wi-Fi он переходит в offline режим и осуществляет управление по автономному сценарию (сценарий под каждую зону может быть свой)
  • Снимает данные о температуре/влажности/освещенности в комнате.
  • Управляет 4-мя устройствами 220, считывает данные с 6 датчиков типа “сухой контакт”.
  • Способен самостоятельно отправлять данные на thingspeak.com и аналогичные системы.
  • Реагирует быстрее чем старая система (не то чтобы это было проблемой, но раньше каждый датчик опрашивался два раза в секунду, что могло дать суммарный лаг более чем в секунду). Эта система работает по прерыванию.
  • Умеет обновлять прошивку “по воздуху”.

Схема
Такую плату развести в один слой не удалось, так что пришлось осваивать двусторонний ЛУТ:Плата
Опыт эксплуатации уже более полугода, в планах заменить на данный модуль все управляющие части системы, на 1-Wire оставить только мониторинг.

Учитывая пожелания к прошлым статьям, схемы и код доступны на github. Старые тоже там есть, вдруг кому пригодятся.

Как-то так. Ставьте лайки и подписывайтесь на новые видео 🙂 Шутка, все равно новая статья если будет, то через пару лет, чукча не писатель 😛

Хотя, если появятся вопросы по прошивке и архитектуре esp07_4PIO_6S, напишу детальную статью об этой поделке, есть там, на мой взгляд, несколько интересных решений.

habr.com

Умный дом проекты своими руками

 В канун Рождества дети во всю ожидают подарков от Санты. Некоторые могут…

  Вы узнаете как подключить последовательный I2C 16×2 ЖК-дисплей к модулю…

Итак, вы создали потрясающий проект, используя аппаратное обеспечение ESP8266,…

В этой статье Вы узнаете как сделать счетчик электроэнергии своими руками,…

В этой статье вы узнаете как управлять модулем реле с помощью приложения BLYNK…

В настоящее время вы можете управлять чем угодно с помощью вашего телефона. В…

Давайте начнем с установки драйверов ESP8266 для Arduino и сделаем проект…

Итак, я решил построить свой собственный переключатель термостата с помощью…

ESP8266-01 имеет лишь ограниченное количество контактов ввода / вывода (только…

  ESP8266-01: Если у Вас ее нет, покупайте ESP8266-12.  она не…

Интернет вещей ( IoT ) имеет много возможностей для подключения устройств к…

В этой статье вы узнаете как сделать ваш дом еще лучше, еще умнее и еще…

Quickbird представляет собой автоматизированную систему мониторинга и…

ngin.pro

Умный дом на ESP8266+MajorDoMo. Часть 1. Прошивка модуля ESP8266 — My-DIY

Всем привет!

Тема умного дома (да и вообще всего умного) меня интересовала давно, но сделать хоть что-нибудь автоматизированное вечно что-то мешало. Примерно год назад, просматривая сайты-хвасты покупок из Китая, наткнулся на WiFi-модули ESP8266. Не удержался, заказал себе парочку (ESP-07 и ESP-12E). С тех пор лежали они у меня, ждали своей очереди, которая наконец до них дошла.

Вкратце, ESP8266 — революция в мире интернета-вещей (IoT). Приведу выдержку с сообщества разработчиков:

Этот чип, esp8266, не делает ничего нового, он просто позволяет подключиться к доступной WiFi сети или другому WiFi устройству.Такие решения были доступны и раньше. Но дело в том, что цена готовых модулей на чипе esp8266 , даже в розницу, составляет менее 5$. Кроме низкой цены этот чип имеет малые размеры, сравнительно низкое энергопотребление. Модули на базе esp8266 имеют минимальное количество дополнительных компонентов обвязки. Что всё это означает для людей, далеких от электроники? Буквально через несколько месяцев практически каждое электрическое устройство будет подключаться к Вашей домашней сети WiFi. И наступит, наконец, эра интернета вещей (IoT, Internet of Things). Чайники, микроволновки и холодильники будут подключены к интернету, начнут стучаться к Вам в социальных сетях, будут посылать письма по электронной почте и много всего еще.

Идея разговора с чайником в социальной сети показалась мне заманчивой, тем более на данный момент цена на чипы упала еще ниже, и составляет 2-3$.

Но так бы и остались эти модули в Китае, если бы не одно обстоятельство — сообщество любителей ESP8266 написало несколько альтернативных прошивок для модуля, помимо официальной. Чем же они так хороши, что кардинально изменили мое мнение о модулях?

Официальная прошивка ESP8266 Espressif SDK работает на АТ-командах, что подразумевает наличие дополнительного микроконтроллера в системе управления. На каждый модуль — свой микроконтроллер для общения по UART. В моем понятии конечное устройство должно иметь маленькие габариты, чтобы умещаться например в подрозетнике, в разводной коробке, или еще где — но не быть на виду у всех. Дом должен быть умным, но невидимым. Дополнительный микроконтроллер увеличивает габариты устройства, влечет за собой дополнительную обвязку.

Альтернативные прошивки модуля ESP8266 позволяют обойтись без дополнительного контроллера, программируя непосредственно сам чип. Благо у того на борту имеются вкусняшки вроде GPIO, SPI, I2C, ADC, и прочее. Только использовать их надо с умом 🙂 У разных исполнений модулей выведено разное количество ног процессора, но самые ходовые ESP-07 и ESP-12E. У последнего на борту 4 мб флеш-памяти, хотя как говорят, у последних версий 07 тоже (сам еще не подключал, начал с 12E).

Разработано несколько альтернативных прошивок, но самые популярные среди них NodeMCU и Arduino IDE. Последнюю я даже не рассматривал из-за своей ненависти ко всему, что имеет в своем название «Arduino». Привык я писать программы для микроконтроллеров своими ручками, а не чужими, которые уже разработали для разных ардуин готового кода чуть менее, чем до}{`/@. Не хочу никого обидеть, но как-то так сложилось исторически ))).

В общем выбор пал на NodeMCU. В сети про эту прошивку ходит куча мнений, от плохих до хороших. У каждого своя правда ))) У кого-то получилось, у кого-то не срослось.

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

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

Собирать прошивку можно как самому ручками, так и пользоваться конструктором. Я не люблю готовое, но усложнять себе жизнь не стал.

Конструкторов я нашел два:

Отечественным я не пользовался, хотя советую. Парни подошли к вопросу грамотно, в конструктор включено много дополнительных расширений, как платных, так и бесплатных, и продолжают развиваться. В прошивку можно интегрировать много чего интересного, например готовый модуль для MajorDoMo, к которому я собираюсь подключать все устройства. Платные возможности стоят всего 2$, что я считаю копейки. И обязательно бы воспользовался данным сервисом, если бы не хотел разобраться сам, как что работает. Не исключаю, что в конечно итоге я все же вернусь к ним, но пока что буду пользоваться бесплатным сервисом от https://nodemcu-build.com/

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

Собирается прошивка легко — в форму вписывается свой email (2 раза), на который потом придет уведомление. Выбираются необходимые расширения, которые будут включены в прошивку, одобряется нажатием кнопки «Start your build». Когда прошивка будет скомпилирована, на указанную почту придет уведомление с ссылкой, перейдя по которой можно скачать прошивку.

По-умолчанию включены модули file, gpio, net, node, timer, UART, WiFi. Не советую их отключать, это минимальный функционал. Я оставил себе следующий функционал:

  • bme280 — модуль для работы с преобразователями давления BME280/BMP280
  • cjson — поддержка CJSON. Не знаю, пригодится ли мне в будущем, но решил оставить
  • dht — поддержка преобразователей давления DHT11, 21, 22, 33, 44
  • enduser_setup — модуль обеспечивает простой способ конфигурирования ESP8266 чипов без использования последовательного интерфейса. По-сути представляет собой веб-сервер.
  • file — поддержка файловой системы. Позволяет создавать/открывать/читать/изменять файлы и др.
  • gpio — работа с портами ввода-вывода
  • http — базовый HTTP-клиент, который обеспечивает интерфейс, чтобы сделать GET/POST/PUT/DELETE-запросы через HTTP (S)
  • i2c — поддержка шины I2C
  • net — модуль создания и поддержки веб-серверов
  • node — доступ к функциям системного уровня, такие как сон, перезагрузка чипа, и др.
  • ow — поддержка шины 1-Wire
  • spi — поддержка SPI
  • tmr — модуль работы с простыми таймерами, системными счетчиками и др.
  • uart — поддержка UART
  • websocket — пока не разбирался, может пригодится в дальнейшем
  • wifi — модуль для работы с WiFi

Кроме того в следующем блоке можно выбрать дополнительные опции, такие как поддержка SSL, включение режима отладки или поддержки FatFS для чтения с SD-карт.

 

После компилирования прошивки на почту придет письмо, содержащее две версии прошивки: float и integer.

Я оставил себе версию integer, т.к. на данный момент работа с float-числами мне не нужна, а места она занимает больше, и по-слухам медленнее работает.

Прошивать ESP8266 будем утилитой «XTCOM_UTIL». Взять можно с сообщества в разделе «esp8266 Утилиты».

В меню TOOLS выбираем пункт «Config Device»

Выбираем порт, к которому подключен ESP8266, скорость ставим 115200. Нажимаем кнопку «Open»

Выскочит следующее окно. Нажимаем кнопку ОК, после чего в новом окне нажимаем кнопку CONNECT.

 

 При успешном соединении увидим окно «Connect with target OK!»

 Закрываем это окно, после чего в меню API TEST выбираем пункт «Flash Image DownLoad»

Выбираем нашу скомпилированную прошивку (у меня они называется nodemcu-master-16-modules-2016-12-23-13-56-19-integer), нажимаем Download. Прошивка начнет заливаться в чип. В конце выскочит окно об окончании передачи.

Еще один ньюанс — на данном сайте рекомендуют сделать следующее: С учетом того, что последняя версия прошивки NodeMCU ESP8266 реализована на SDK v1.5.4.1, то для корректной работы отладочной платы NodeMCU ESP8266 и для перехода на новую версию SDK нам необходимо дополнительно перезаписать файл esp_init_data_default.bin. Новый esp_init_data_default.bin возьмем из патча расположенного на официальном сайте https://espressif.com/sites/default/files/sdks/esp8266_nonos_sdk_v1.5.4.1_patch_20160704.zip

Кроме того необходимо дополнительно указать адрес куда будет помещен этот файл. Существует несколько фиксированных вариантов адресов в зависимости от размера памяти модуля ESP:

  • 0x7C000 для 512 кБ (модули типа ESP-01, -03, -07 и т.п.)
  • 0xFC000 для 1 МБ (модули типа ESP8285, PSF-A85)
  • 0x1FC000 для 2 МБ
  • 0x3FC000 для 4 МБ (модули типа ESP-12E, NodeMCU, WeMos D1 mini)

Я не знаю, на каком SDK собирается прошивка в конструкторе, но решил все-таки повторить вышеописанные действия, хуже не будет. Примечание от меня — читал где-то, что последние версии ESP-07 имеют на борту 4 Мб памяти, так что перед прошивкой проверяйте.

Выбираем файл «esp_init_data_default.bin». У меня чип ESP-12E, так что начальный адрес будет 0x3FC000. Нажимаем «Download».

Ну в принципе и все. Наш чип ESP8266 залит прошивкой NodeMCU, и готов к созданию и заливке скриптов.

Чтобы проверить его готовность к работе, скачаем утилиту ESPlorer с сайта https://esp8266.ru

ESPlorer — прекрасная утилита для написания скриптов и заливке их в ESP8266.

Открываем ее, устанавливаем параметры порта (не забываем закрыть XTCOM_UTIL, она использует тот же порт). Нажимаем OPEN. Видим в правом окне «PORT OPEN 115200 Communication with MCU..»

Кратковременно замыкаем пин RST модуля ESP8266 на землю.

Программа соединится с чипом, и в последней строчке мы увидим «lua: cannot open init.lua».

Файл init.lua является первичным загружаемым файлом в NodeMCU (автозагрузка), и сейчас он у нас отсутствует. Про написание скриптов и заливку их в контроллер поговорим в следующих статьях.

my-diy.iam.by

Arduino, ESP8266, «умный дом» и все-все-все.

Этим полукреслом мастер Гамбс начинает… В общем, попросили меня описать опыт работы с некоторыми железками, модными нынче в среде DIYселфщиков. Все началось с того что на старой работе мне понадобилось контролировать температуру в серверной. Было это давно и пришлось искать специализированную железяку у которой можно было забирать данные для Заббикса через SNMP. Через некоторое время после этого я узнал что в среде молодой потенциальной интеллигенции стало модно использовать Ардуино в качестве учебного пособия. Оказалось, что на всем известном китайском сайте цена на это изделие и периферию к нему несколько смешна. И понеслось…

Началось все с экспериментов – датчики температуры, давления, влажности, прием и передача IR сигналов, считывание и передача кодов с радиобрелков, вывод разных данных на LCD экраны и т.п.
Затем, как и положено, создание простенькой метеостанции. Правда, здесь пришлось немного поизвращаться, поскольку мне захотелось иметь данные об изменении давления в виде графика. В итоге, получилось вот такое:

Затем, понадобилось проверить пару автомобильных аккумуляторов, доставшихся в наследство. Нагрузочной вилки не было, зато была ардуина с аналоговыми датчиками тока и напряжения. Сделал нагрузку из нихромовой спирали для электроплитки в расчете на 6-7 ампер, нарисовал скетч, который подключает нагрузку, периодически пишет данные на SD карту и в порт в формате LogView и показывает на LCD отданную емкость. А при понижении напряжения ниже определенного значения отключает нагрузку и завершает работу. Как ни странно, заработало :). Теперь своего времени ждут цифровые датчики – с ними работать проще, не нужно учитывать в расчетах опорное напряжение, да и точность должна быть повыше.

Ардуино, конечно, хорошо, но связывать их в сеть по проводу не совсем удобно. Можно, конечно, использовать приемо-передатчики на 433 МГц или что-то типа NRFf24l01, но это как-то не спортивно. Поэтому пришлось взять ESP8266. Как оказалось, в случае ее использования, ардуина вообще не нужна, поскольку внутри этой маленькой хреньки есть все что душа пожелает – процессор, память, входы-выходы и даже совершенно не нужный светодиод. Про разновидности этих модулей я писать не буду, поскольку в инете много инфы, но могу сказать что даже самый простой ESP-01 позволяет полноценно работать с кучей датчиков на I2C шине.
Итак, есть несколько ESP, датчики и всякая мелочь. Что с ними делать? Наверное, что-то типа системы недоумного дома. Недоумного потому что пока будут использоваться только данные с датчиков – управлять особо нечем.
Посмотрел, пощупал разные прошивки, остановился на ESP Easy и WiFi-IoT. После тестовой эксплуатации выбрал ESP Easy – мне она показалась наиболее гибкой. Правда, в ней нет поддержки RF приемопередатчиков, но пока в них необходимости нет.
Теперь о софте. Поскольку без MQTT обойтись трудно, то пришлось сразу использовать полноценный брокер – Mosquitto. В качестве платформы сначала поставил широко распространенный Domoticz, но он мне не понравился – на входе требует данные определенного формата, да и интерфейс особо не вдохновил. А вот ioBroker оказался тем что нужно. Работает он под node.js, поддерживает кучу устройств и позволяет выводить данные в различных видах. Погонял все это на тестовой машине, вычистил косяки, не описанные в документации и перенес все это хозяйство в инет, на выделенный сервак, для дальнейшего тестирования. На текущий момент это выглядит так:

Интерфейс заточен под мобильный телефон.
Кроме этого, система сообщает в Telegram о разных событиях, по запросу может выдавать в тот же Telegram данные с датчиков, моргать IR светодиодом, включая/выключая то что нужно.
А еще, прошивка ESP Easy позволяет через MQTT собирать данные с других датчиков и выводить их на свой LCD.
Тестовый пример:

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

Если есть интерес – пишите, расскажу более подробно 🙂

orktos.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *