Введение
В данной статье мы рассмотрим тему автоматизации работы приточного воздушного клапана с использованием платформы esp8266 и интеграции его в систему умного дома с помощью голосового помощника Яндекс Алиса.
Приточный воздушный клапан является важным элементом системы вентиляции, обеспечивая подачу свежего воздуха в помещение для комфортных условий проживания. Однако, с использованием современных технологий и IoT-решений, мы можем взять управление этим процессом на себя, делая его более эффективным и удобным.
С помощью небольшой модификации механизма клапана, путем установки в него сервопривода и микроконтроллера ESP8266, мы сможем дистанционно управлять положением его заслонки по WiFi. А с помощью голосового помощника Яндекс Алиса мы сможем делать это голосом, используя простые и понятные команды.
Идея данной модификации принадлежит одному из моих подписчиков, который обратился ко за помощью в написании прошивки для ESP8266. После недели работы по написанию кода и отладки, с его разрешения публикую результат наших усилий.
Техническая часть
В основе проекта лежит воздушный клапан Vakio Kiv Pro. Он представляет собой вентиляционное устройство, используемое для непрерывного поступления в помещение свежего воздуха. С его помощью нет необходимости постоянно открывать окна для проветривания.
Конструкция воздушного клапана
Конструкция клапана представлена на рисунке ниже:
Принцип работы очень простой. Воздух с улицы, поступая через вентиляционную решетку, проходит через трубу с теплоизоляцией и фильтром и через клапан заходит в помещение. Количество воздуха, поступающего в дом, регулируется крышкой клапана. Её положение изменяется с помощью зубчатой передачи рычажком нак корпусе вращающим приводную шестерню. Фото конструкции ниже:
Модификация воздушного клапана
Для реализации удаленного управления нам необходимо немного изменить конструкцию клапана. Приводить заслонку в движение теперь будет серво-привод. Можно использовать как SG90, так и MG90. Управлять же движением серво мы будем через ESP8266. Ну и наконец питать все будем через компактный AС-DC блок питания 220В-5В. Итак, приступаем.
Рассверливаем центральное отверстие приводной шестерни клапана сверлом на 7. С помощью кусачек откусываем все лишнее у одного из комплектных рычажков серво-привода и вклеиваем его суперклеем в приводную шестерню.
Ставим шестерню на место и с другой стороны клапана насаживаем на неё серво-привод.
Для надежности можно закрепить серво термоклеем.
Для питания можно использовать вот такой небольшой блок питания с aliexpress.
Размеры его всего 35*25*15 мм, а свободного места в корпусе клапана вполне достаточно. Хотя возможны и другие варианты.
Варианты управления
Далее необходимо определится с размещением модуля ESP8266. Рекомендую использовать Wemos D1 Mini, как самый компактный. И тут имеются 2 варианта:
- Если клапан всего один, то можно просто размещаем ESP8266 внутри корпуса клапана. Свободного места предостаточно.
- Если их несколько, то для экономии финансов можно использовать один ESP8266 для управления сразу несколькими клапанами.
В первом случае подключение будет выглядеть следующим образом:
Во втором случаем подключение будет таким:
В целом, оба варианта имеют свои преимущества и недостатки, но при большом удалении клапанов друг от друга я все же склоняюсь ко первому варианту.
Вариант сборки
После окончательной сборки по первому варианту клапан будет выглядеть как на фото ниже:
Прошивка
Исходя из разных вариантов подключения, написал 2 версии прошивки для ESP8266. Обе доступны в моем github репозитории. В целом между собой они очень похожи, но есть некоторые нюансы в настройке и использовании, которые мы рассмотрим немного позже.
Общие настройки для всех версий прошивки
Здесь мы рассмотрим общие настройки для двух версий прошивки. Прежде всего это настройки для подключения к вашей сети WiFi.
#define ssid "ssid" //точка доступа wifi
#define password "pass" //пароль wifi
Указываем название точки доступа и пароль к ней.
Далее идут настройки подключения к MQTT серверу для удаленного управления.
const char* mqtt_server = "192.168.1.1"; //ip или http адрес
int mqtt_port = 1883; //порт
const char* mqtt_login="login"; //логин
const char* mqtt_pass="pass"; //пароль
Здесь указываем параметры подключения к вашему MQTT брокеру или к одному из доступных бесплатных облачных решений.
На этом настройки общие для двух прошивок закончены. Переходим к рассмотрению и настройке её вариаций.
Вариант 1. Каждому клапану свой ESP8266.
Данный вариант прошивки доступен по этой ссылке. Из настроек здесь доступны пин подключения серво привода к ESP8266 и скорость движения:
int8_t speed=1; //скорость движения
servo.attach(D3,540,2400);
При старте устройства поднимается веб интерфейс на 80 порту. Для доступа к нему, просто введите IP ESP8266 в адресную строку вашего браузера. С помощью перемещения ползунка можете протестировать работу вашего серво-привода.
Также осуществляется подключение к MQTT брокеру и подписка на топик CmdTopic для получения управляющих команд.
формат команд: %%%. Где %%% - угол поворота (0-180)
То есть для поворота серво на 100 градусов вам нужно отправить в CmdTopic команду: 100.
На этом настройка закончена. Пример интеграции устройства в Умный дом Яндекс подробно рассмотрен в документации к проекту в Github репозитории.
Вариант 2. ESP8266 управляет несколькими клапанами.
Этот вариант похож на предыдущий, но несколько отличается способом реализации.
Он доступен по этой ссылке. В настройках дополнительно указываются количество подключенных сервоприводов и максимальный угол поворота:
#define AMOUNT 2 //количество сервоприводов
#define MAXANGLE 90 //максимальный угол поворота
Пины для подключения серво указываются следующим образом:
servos[0].attach(D3);
servos[0].smoothStart();
servos[1].attach(D4);
servos[1].smoothStart();
//servos[2].attach(D5);
//servos[2].smoothStart();
//servos[3].attach(D6);
//servos[3].smoothStart();
Функция smoothStart() при старте устройства осуществляет плавное передвижение вала в нулевую позицию.
Далее идет настройка скорости передвижения и ускорений для всех серво:
for (byte i = 0; i < AMOUNT; i++) {
servos[i].setSpeed(90); // скорость градусов в секунду
servos[i].setAccel(0.1); //ускорение (от 0 до 1)
}
Формат команд для управления по MQTT тоже несколько иной:
N %%%. Где N - номер сервопривода от 0 до AMOUNT-1, а %%% - процент поворота При N=AMOUNT команда выполняется для всех серво одновременно
Обратите внимание! В команде указывается не угол поворота, а процент открытия задвижки от 0 до 100.
Пример интеграции в умный дом Яндекс также на странице проекта.
Более подробно про интеграцию устройств в Умный дом Яндекс вы сможете узнать в этой статье.
Тест работы
Несколько видео с тестом работы устройства:
Заключение
Домашняя автоматизация, также известная как умный дом, представляет собой систему устройств, способных автоматически выполнять задачи и управлять различными аспектами жилого пространства без прямого вмешательства человека. Управление воздушным клапаном с использованием контроллера ESP8266 и голосового помощника Яндекс.Алиса относится к одной из возможных реализаций домашней автоматизации.
Использование ESP8266 и Яндекс.Алисы для управления воздушным клапаном позволяет автоматизировать процесс регулировки вентиляции и поддержания комфортных условий в помещении. С помощью голосовых команд можно изменять температуру или режим работы клапана, что обеспечивает удобство и экономию времени.
Однако, важно отметить, что реализация данной системы требует знаний и опыта в программировании микроконтроллеров и интеграции с голосовыми помощниками. Также необходимо правильно настроить интеграцию ESP8266 и Яндекс.Алисы, а также протестировать систему на работоспособность и надежность.
Использование ESP8266 и Яндекс.Алисы для управления воздушным клапаном представляет собой интересное и инновационное решение в области домашней автоматизации.