Рейтинг статьи: 4.750/5 (4 голосов).
Данное решение по созданию умного дома, в котором устройства общаются друг с другом без центрального сервера.Спонсор этой страницы:
Предыстория
При увеличении количества умных устройств, а так же множества разных гирлянд был создан Модуль управления несколькими Gyver лампами, который перерос в модульный проект, названный мной Умный сетевой хаос дом (Smart Network Сhaos Home - SNСH).Принцип построения
Есть множество разрозненных элементов дома на базе ESP01,ESP8266... к которым подключены разные элементы, как принимающие сигналы (кнопки, датчики движения, датчики температуры и т.д.), так и реагирующие на сигналы (реле, светодиодная подсветка).И это множество ESP общаются друг с другом.
Для примера одна ESP может снять сигнал с датчика движения, передать его другим ESP по IP а другие ESP включат подсветку по ходу движения или выберут эффект на гирлянде...
Причем в условиях можно учитывать время и день недели.
Для этого в модуле принимающим решения пишется команда, и указывается на какой IP, или модуль ее передавать.
Управление со смартфона и компьютера
Для управления используются библиотека Алекса Гайвера GyverHubНа компьютере управление через сайт http://hub.gyver.ru/
Модули
Модули, принимающие решения
module_Alarm.ino Будильник, он же планировщикmodule_SR501.ino Датчик движения, он же выключатель постоянного действия
module_IR.ino Прием сигнала с ИК пульта
module_DHT22.ino Датчик температуры и влажности
Модули, выполняющие решения
module_G220.ino Управление релеmodule_PWM.ino Управления ШИМ сигналом
module_WS2812
module_WS2812_1D.ino Управление адресной светодиодной лентой
module_WS2812_2D.ino Управление адресной светодиодной матрицей
module_DFPlayer.ino Управление MP3 DFPlayer
Модули, изменяющие решения
module_Timer.ino Таймерmodule_GyverLamp.ino Синхронизация Gyver ламп
Подключение/отключение модулей
Подключение / настройка в файле define.hСценарии
Сценарий с включением реле ESP-01S в зависимости от яркости подсветки ESP8266Сценарий с включением подсветки от датчика движения с учетом времени дня и с возможностью включить ее с пульта
Сценарий включения матрицы WS2812 на одной ESP с помощью ИК пульта на другой ESP
Прошивка Download
Текущая прошивка 21.04.2024
network_smart_chaos_home_v2.zip
Прошивка для предыдущей версии GyberHub со старым APK
network_smart_chaos_home.zip
Обновление прошивки по сети
Компилируем прошивку в BIN файл и в меню устройства выбираем OTA FILE / FLASHp.s. Для ESP-01 может не хватить места.
Добавление HTTP
в файле _chous_home_.ino перед подключением библиотеки GyverHub.h
//#define GH_INCLUDE_PORTAL // включить сайт в память программы, ~50кБ (не нужно загружать файлы в память) (для esp)
#define GH_FILE_PORTAL // включить сайт c flash памяти папка /hub/
#include <GyverHub.h>
p.s. Для ESP-01 может не хватить места на flash. Укажите при компиляции Flash size: хотя бы 256
Переменные и простые выражения
При передаче параметров пожно использовать переменные и простые математические выражения.Встроенные переменные
HH - ЧасыMM - Минуты
DY - День недели
RND,0,10 - Случайное число от 0 до 10
RND,10,50 - Случайное число от 10 до 50
RND не поддерживает матемтические выражения
Модульные переменные
H - ВлажностьT - Температура
EFF - Текущий эффект
BRI, SPD, SCA - Яркость, скорость, масштаб
CLR - Текущий цвет по vhs
VOL - Текущая громкость
SR501 - состояние дотчика движения (0/1)
PWM - Текущее значение первого в списке ШИМ сигнала
Порядок действий в выражениях
1) Подставляются значения переменных2) Считается RND
3) Расчитывются условия >, < , = (результат 0 или 1)
4) Считается % - остаток от деления
5) Выполняются умножение и деление
6) Выполняются сложение и вычитание
Примеры
Для кнопок ИК пульта для изменения яркости можно использоватьBRI BRI+BRI>50*5+1 для увеличения яркости
BRI BRI-BRI>50*5-1 для уменьшения яркости
Задать цвет от синего до красного в зависимости от температуры от 10 до 60
CLR 135+T*2
при температуре 60 цвет будет 255 - красный, а при температуре 80 - 295 - или 40 уже получится оранжевый.
Изменения в прошивке
04.02.2024
Стартовая версия.05.02.2024
в модули rele,шим,sr501 добавлен дополнительный ответ на GETPWM 0 IS 1023
SR501 IS ON
RELE 0 IS OFF
для использования в модуле Timer
10.02.2024
в модуле module_WS2812_1D.ino добавлено количество эффектов.17.02.2024
Добавлен модуль матрицы module_WS2812_2D.ino. В модуле Таймера добавлено условие периода времени выполнения команд.19.02.2024
В модуле module_WS2812_1D.ino добавлено количество эффектов.24.02.2024
Добавление модуля управления MP3 DFPlayer.16.03.2024
Переход на новую версию GyverGub.Обновите ядро esp2866 и все используемые модули до последней версии.
Добавлена возможность использовать переменные времени и текущего состояния.
Для примера можно задать яркость в зависимости от времени.
BRI MM*4+10
BRI BRI-5
Добавился доступ по HTTP.
14.04.2024
Исправлены ошибкиДобавил возможность перевода формулы в значение до отсылки команды (для совместимости с GyverLamp)
например
команда EFF RND,2,30 отсылает EFF RND,2,30 и модуль сам распознает, что ему прислали.
команда EFF %d@RND,2,30 высчитывает значение RND,2,30, (например получилось 15) и отсылает EFF 15
знак @ - это разделитель. перед ним команда. Вместо %d подставится значение формулы после знака @
Яркость утром в зависимости от минут, чем позже, тем ярче:
для устройств chaos_home
BRI ММ*4
BRI %d@ММ*4
для устройств Gyver Lamp
BRI %d@ММ*4
Яркость вечером в зависимости от минут, чем позже, тем темнее:
для устройств chaos_home
BRI 250-ММ*4
BRI %d@250-ММ*4
для устройств Gyver Lamp
BRI %d@250-ММ*4
20.04.2024
Добавлена передача состояния основных переключателей, слайдеров, температуры, влажности, движения на mqtt сервер.21.04.2024
Оптимизорован алгоритм общения модулей с mqtt серверомОбсуждение на форуме
https://community.alexgyver.ruДополнительные материалы
Умный сетевой хаос дом аппаратура Android Arduino Программирование
Пожалуйста, оцените и ВЫ эту статью:
Комментариев нет. Станьте первым!