Начало этой серии статей здесь .
Продолжаю свои исследования в плане создания основы, на основе которой без пайки можно быстро создать умный дом.
Как я уже говорил, эта база данных рассчитана на обычного прикладного программиста, например front-end разработчика, который не хочет копаться в дебрях радиоэлектроники и не хочет паять (ну может как минимум), потому что на это нет времени.
Но он хочет создавать свои устройства, которые можно будет легко подключить к его серверу и все вопросы решать привычным для него способом по его роду деятельности, то есть программированию, и на ПК.
Итак, для первой версии этой базы был выбран чип ESP8266, на базе которого будет построен весь умный дом.
ЭСП8266
Микроконтроллер ESP8266 самодостаточен, легко программируется как Arduino (то есть это C++ и Arduino IDE), имеет на борту Wi-Fi, компактен и имеет множество модификаций под разные нужды.Есть и его развитие, это ESP32, более мощный.
В целом идеальный контроллер.
Единственный недостаток — напряжение питания (не пять вольт, а 3,3 вольта).
К контроллеру ESP8266 можно подключать различные датчики и исполнительные устройства по проводам (причём довольно длинным, в несколько метров) по таким протоколам, как 1-Wire, I2C. Зачем эти протоколы? Потому что они очень простые и популярные (спасибо Arduino).
То есть датчик или устройство подключается по проводу к ESP8266, который, в свою очередь, подключается по Wi-Fi к вашему серверу.
Сервер может быть написан на любом языке, например на платформе NodeJS. Но желательно использовать готовые серверы, о которых я расскажу позже.
Ваш сервер позволит вам настроить любую логику умного дома.
Например, вы можете разместить ESP8266 и реле на электрическом щитке.
Повесьте освещение на это реле.
И повесьте ESP8266 и кнопку на стену.
Используйте кнопку для включения/выключения освещения.
Обработчик нажатия кнопок находится на сервере.
К ESP8266 также можно подключить несколько датчиков температуры (наружного, комнатного) с помощью проводов.
Датчик расхода воды можно разместить на впускной водопроводной трубе и подключить к другому ESP8266. Контроллер стоит от 80 рублей, так что вешать их можно до упора (где эта остановка не понятно, видимо зависит от роутера и помех на частоте 2,4ГГц).
Компоненты умного дома
Теперь хотелось бы подробнее остановиться на компонентной схеме умного дома.
Все компоненты укладываются на следующую схему:
Компоненты умного дома Слева направо: сначала идет ваше устройство на ESP8266, затем это прошивка ESP Easy (устанавливаем ее на ESP8266), подключаем прошивку к MQTT-брокеру (например WQTT.ru или вашему брокеру на вашем сервере), у веб-сервиса WQTT.ru уже есть подключение к Алисе (на вашем брокере вам придется сделать это подключение самостоятельно, что в целом несложно, ведь это наша обычная работа программиста), затем логический сервер Node RED, который подключен к MQTT-брокеру и управляет всем умным домом.
И, наконец, вы можете установить Homebridge, чтобы соединить свой умный дом с Homekit. Как вы, наверное, догадались, домашний мост с голосовыми помощниками не является обязательным компонентом.
Главное — MQTT-брокер и Node RED. Эти два сервера предоставят вам практически полный функционал и доступ к настройке любой логики.
Думаю, общая картина умного дома уже сложилась и можно переходить к самим компонентам по отдельности.
В этой статье мы рассмотрим MQTT-брокер и само устройство.
В следующих статьях мы рассмотрим настройку прошивки ESP Easy и Node RED. Этого будет достаточно для запуска простейшей версии умного дома.
В качестве устройства у нас будет светодиод, который встроен в ESP8266 и сидит на выводе GPIO2. Этот светодиод будет имитировать освещение, например, в гостиной.
Также подключим кнопку, которая будет включать этот светодиод. А еще в нашем устройстве будет два датчика: DHT11 и BMP085 (влажности и барометр с термометром).
Логика (которая будет храниться в Node RED) будет включать в себя управление кнопкой и светодиодом, оповещение через телеграмму о внезапном похолодании в помещении и вывод значений датчиков в Homekit и Алису.
Тестовое устройство
Собрал тестовое устройство из того, что было под рукой.
И это выглядит так:
Тестовое устройство У меня был Wi-Fi модуль Тройка (это модифицированный ESP8266 ESP-12F) из магазина Амперка.
Но вы можете использовать любой вариант ESP8266. Датчик DHT11 подключен к одному из контактов контроллера, а датчик BMP085 — к контактам, которые будут работать в режиме протокола I2C (выбор контактов настраивается в прошивке ESP Easy).
То же устройство, но в виде принципиальной схемы:
Принципиальная схема (на части У3 я показал встроенный светодиод) Схема более удобная.
Во-первых, легко рисовать, во-вторых, все подписано.
В схеме выше на картинках часто бывает, что контакты не маркированы.
Но подписать их оказалось весьма утомительным занятием.
Это устройство легко собрать как Arduino, только вместо Arduino вы будете использовать ESP8266. Он мощнее, но питание 3,3 вольта, о чем не стоит забывать.
Добавьте 5 вольт и сгорите.
Контроллер можно прошить своими скриптами.
Они также очень просты и с них можно подключаться к HTTP-серверам и MQTT-брокерам.
Но этот вариант мы рассмотрим позже; теперь предлагаю рассмотреть вариант готовой прошивки.
Итак, устройство собрано.
Как прошить, рассмотрим в следующей статье.
Теперь перейдем к брокеру MQTT.
MQTT-брокер
Свой MQTT-брокер мы пока заводить не будем, а воспользуемся готовым.Веб-сервис WQTT.ru предоставляет простой MQTT-брокер по цене 200 рублей на полгода (первый месяц бесплатно, нам вполне достаточно для экспериментов).
Заходим на сайт этого сервиса https://www.wqtt.ru/ И зарегистрируйтесь.
После регистрации мы сообщаем вам адрес брокера, номер порта, логин и пароль.
Позже мы запишем их в прошивку микроконтроллера и в Node RED. Вот и все, вы можете сразу использовать брокера.
Но, если вы хотите подключить Алису, то вам нужно описывать датчики и устройства на WQTT. Сделать это несложно, поэтому описывать не буду.
В итоге у вас должна получиться такая таблица:
Таблица приборов и датчиков на wqtt.ru Единственное, что вам нужно сделать, это зарегистрировать так называемые темы.
Сделайте их как на скриншоте, потому что.
Мы будем использовать их дальше.
Думаю, пришло время рассказать вам, что такое MQTT-брокер и какую роль он играет. Во-первых, это программа для обмена сообщениями между устройствами вашего умного дома.
Сообщение представляет собой небольшую текстовую строку.
Он может передавать, например, состояние кнопки или значение датчика.
Вы можете сделать так, чтобы это сообщение (точнее, последнее сообщение) сохранилось на брокере.
Таким образом, состояние вашего умного дома будет храниться в брокере.
Если вы знаете, что такое MVC, то брокер — M, Node RED — C, а ваш смартфон — V. Если вы не знаете, пропустите это.
Во-вторых, помимо отправки сообщений, на них можно подписаться.
Каждый подписавшийся будет гарантированно получать сообщения по определенной теме.
Например, у нас есть тема ESP_Easy/BMP085/Temperature. Наше устройство (которое мы назвали ESP_Easy) регулярно (например, каждые 5 минут) отправляет в эту тему значение температуры с датчика BMP085. А в Node RED мы создадим подписчика на эту тему и будем получать эти сообщения.
В самом подписчике мы опишем, что мы хотим сделать с этой температурой, например, отобразить ее на экране смартфона в Homekit. В результате брокер MQTT — сердце нашего умного дома.
Он подключает все устройства и сохраняет состояние умного дома.
Если вы сделаете его доступным из Интернета, то вашим умным домом можно будет управлять откуда угодно.
Краткое содержание
Мы собрали устройство.Прошивки пока нет. Брокер настроен.
Далее подключим Node RED, прошьём контроллер и соединим всё вместе.
Следующая статья: Мой умный дом на ESP8266, часть 3 Теги: #arduino #Разработка Arduino #ESP8266 #node-red #esp #homebridge
-
Uber Начал Работу В Сочи
19 Oct, 24 -
Google Против Гудже
19 Oct, 24 -
Взломать Администратора
19 Oct, 24 -
Определение Времени Безотказной Работы Сайта
19 Oct, 24