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-х других устройств в разных местах квартиры.
Система получилась гибкая, позволяющая настроить практически все под свои нужды.

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