Pull to refresh

Проект умного дома IoT LikNode

Reading time3 min
Views6.9K

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

Данное устройство разрабатывалось на основе микроконтроллера esp32 (ap), esp8266 (node) и смартфона os Android. 

Программа для микроконтроллеров написана на языке Си для андроид на языке Котлин (скачать возможно по ссылке download). 

Каждый из микроконтроллеров подключенный в данном проекте имеет одинаковые функции. Максимальное количество node можно подключить 20 штук.  

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

 

Схема беспроводной связи esp8266--esp32--osAndroid
Схема беспроводной связи esp8266--esp32--osAndroid

 

Схема беспроводной связи протокол MQTT esp8266--esp32--internet broker---clients
Схема беспроводной связи протокол MQTT esp8266--esp32--internet broker---clients

Каждый из портов можно настроить функционалом выбираемым в настройках node.   

Перечислим специальные функции:  

1 порт — регулятор температуры

Задаём среднее значение и гетерезис, выбираем включение порта на повышение или на понижение температуры. Подключаем подогреватель или охладитель. 

2 порт — регулятор влажности

Задаём среднее значение и гетерезис на повышение влажности. Подключаем увлажнитель.   

3 порт — оповещение

Порт включится после превышения температуры (работает как пожарная сигнализация), после появления высокого уровня на INP1 или INP2, если активирована сигнализация (охрана или 24/7). Подключаем сирену. 

4 порт — по событию (возможно совмещать с таймером)

Подключаем любое устройство с отключением или включением при появлении высокого уровня на INP2. 

5 порт — освещение

Имеет функционал для управления освещением и включением порта от INP1. Подключаем led лампу при появлении высокого уровня на INP1, включается порт на заданный промежуток времени (возможно плавное включение).  

Кроме специальных функций с 1 по 4 порт возможно установить: 

  • таймер время с выбором дня недели (2 режима),

  • таймер цикл. 

Функции таймеров возможно устанавливать на каждый из 4 портов в зависимости от потребностей. Это может быть полив растений, включение вентиляции на заданные промежутки времени, наполнение ёмкости совмещая с портом по событию и прочее. 

INP1, INP2 порт — настроен на входные значения т.е. при появлении высокого уровня:

  • INP1 если активирован 5 порт произойдет включение 5 порта (плавный запуск). Включение датчика движения на порт INP1 позволяет производить включение порта 5 на промежуток времени (5-120 сек), при необходимости можно установить отключение в дневной период. 

-  INP1, INP2 если активирована сигнализация (охрана или 24/7), включится оповещение (порт 4) и (или) звуковой сигнал на смартфоне. Возможно изменить статусы контактов (на INP1, INP2), установить контакты нормально-разомкнутые  или нормально-замкнутые.  

На каждый из входных портов возможно назначить функции сигнализации (охрана или датчики 24/7). Датчики 24/7 позволяют мониторить различные датчики к примеру (дыма, утечки воды, пожарные извещатели).

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

Установку времени осуществляем следующим образом: 

-- при каждом новом запуске esp32:  

->обновление через node, если нет

->обновление через смартфон, если нет

->обновление через интернет. 

-- при каждом новом запуске esp8266: 

->обновление через esp32. 

Все данные передаются на смартфон, интерфейс программы выглядит таким образом. 

Каждый node имеет поля со значениями температуры, влажности, статусы портов, текущее время. Каждый порт имеет информацию о настройках порта, поле для изменения статуса. Информацию о изменении температуры, влажности статусы INP1, INP2 в течении часа, в виде графиков.  

Программа позволяет осуществлять настройку параметров в esp32, esp8266 в удобном и интуитивно понятным способом.

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

Пример для быстрого подключения и создания минимальной обвязки к esp32 devboard
Пример для быстрого подключения и создания минимальной обвязки к esp32 devboard
Пример для быстрого подключения  и создания минимальной обвязки к esp8266 devboard mini
Пример для быстрого подключения  и создания минимальной обвязки к esp8266 devboard mini

 

Ссылка по подробному описанию интерфейса программы 

Ссылка на загрузку прошивку, программы, схемы

Ссылка на видео как запрограммировать микроконтроллер, настроить программу подробно показано в видео «первый запуск»

Ссылка на видео описания проекта 

Обсуждения, вопросы

Tags:
Hubs:
+2
Comments59

Articles