- Цена: $4
Хотите реле которое умеет контролировать нагреватели, холодильники, кондиционеры, увлажнители, осушители, включать электроприборы по расписанию и много чего еще? Тогда прошу под cut…
За $4 вы получите:
— ручной режим, включение/выключение
— по времени от чч: мм до чч: мм
— по температуре (охлаждение/обогрев) с регулируемым гистерезисом и приоритетом по времени от чч до чч
— по влажности (увлажнитель/осушитель) с регулируемым гистерезисом и приоритетом по времени от чч до чч
— поддержка нормально разомкнутого/нормально замкнутого реле
— режим эмуляции кнопки без фиксации, с регулируемым временем нажатия от 150 миллисекунд до 500 миллисекунд и шагом 50 миллисекунд
— поддержка сенсоров AHT1x/AHT2x и HTU2xD/SHT2x/Si70xx
— регистратор температуры и влажности на SPI флэш-память с графиками, до 400 КБ (этого достаточно для хранения годового отчета с шагом 30 минут)
— при выходе из строя датчика, реле переходит в выключенное состояние и рабочими остаются только режим по времени и ручной
— если подключены два датчика с разными адресами и один выходит из строя, то во время перезагрузки второй датчик будет использован автоматически
— hostname WiFi клиента используется в качестве ID реле, в сети может находиться не ограниченное количество реле при условии, что все они имеют разные hostname
— web интерфейс (Bootstrap + jQuery)
— автоматическая синхронизация с NTP серверами или в ручную со временем из браузера
— автоматически переход с летнего на зимнее и обратно
Реле предоставляется «КАК ЕСТЬ» без каких-либо гарантий. Не оставляйте без присмотра. Автор, не несет ни какой ответственности если у вас что-то пошло не так.
Для сборки нам понадобятся:
1. Один модуль на ESP8266. Например WeMos Mini D1 за $1.83
2. Реле на 5в с обвязкой, например Single channel relay module 5v, за $0.54
3. Цифровой датчик температуры и влажности AHT1x/AHT2x или HTU2xD/SHT2x/Si70xx, например AHT10 за $0.97
Качаем мой проект с GitHub и соединяем весть зоопарк по схеме.
Чтобы реле не давало помехи при переключении, питать устройство лучше по топологии звезда (не используя USB порт WeMos Mini D1). У ESP8266 только два нормальных пина ведущих себя адекватно во время загрузки — это GPIO4/D2 и GPIO5/D1. Все остальные меняют свое состояние. Подробно об этом тут. Чтобы предотвратить ложные срабатывания реле, во время старта ESP8266, нужно добавить RC фильтр 680Ом/220мкФ с постоянной времени длиннее чем переходные процессы на GPIO.
Прошиваем ESP8266 с помощью Flash Download Tools. Предварительно выставив:
— SPI speed 80MHz
— SPI Mode QIO
— Flash Size 32Mbit
— поставить галку DoNotChgBin
— адрес для fw_latest.bin 0x00000
— адрес для fs_latest.bin 0x200000
Настройка:
Если вы все сделали правильно, то после прошивки и нажатия reset у вас должна появится новая точка доступа tthRelay. Подключитесь к ней введя пароль 12345678. После удачного подключения введите в браузере 192.168.4.1 и в появившемся окне User name: admin и Password: 12345678.
Базовые настройки Access Point Config, Server Config, Station Config и NTP Config аналогичны прошлому проекту — MatrixClock. Повторяться не буду, читаем там. В конце не забываем нажать на Save и Reboot.
После того как реле подключится к вашему роутеру — WiFi точка доступа tthRelay пропадет. Теперь чтобы попасть в вебморду, на машине с Windows 10, в браузере набираем http://tthRelay.local/. На Android и Win7 используйте IP-адрес реле вместо mDNS. Его можно найти в логах UART на скорости 115200 бит/с или в админке вашего роутера.
Идем в Sensor или Settings -> Sensor Config выбираем тип сенсора, порты и скорость обмена согласно схеме. Жмем Save и Reboot. Внимание — чем выше скорость, тем короче должны быть провода от сенсора до ESP8266. Рекомендуемые частоты 100KHz..400KHz, на очень длинных проводах допускается 10KHz. Учтите, что на низких скоростях датчику приходится работать дольше и он начинает разогревать сам себя искажая результаты.
Если вы все сделали правильно на главной странице появится информация о текущей температуре, относительной влажности, точки росы и абсолютной влажности.
Заходим во вкладку Relay или Settings -> Relay Config выбираем режим — ручной, по времени, по температуре или по влажности. Дальше выбираем время и дни недели для Time mode, желаемую температуру, гистерезис, время для Temperature mode и желаемую влажность, гистерезис, время для Humidity mode. В подменю Advance настраиваем порт к которому подключено реле, полярность сигнала для срабатывания реле, выбираем длительность импульса если нужна эмуляции кнопки без фиксации. Жмем Save и Reboot.
Если нужен журнал с графиками изменения температуры и влажности идем в Settings -> Recorder Config выбираем частоту выборки, жмем Save и Reboot. Максимальный размер журнала 400КБ. Этого достаточно для хранения годового отчета с шагом 30 минут. После его заполнения он автоматический стирается и на его место пишется новый. Для тех кто любит все хранить есть кнопка Backup data. Формат записи очень простой и не является секретом, если будет нужно расскажу.
Для просмотра графиков кликаем на Settings -> Recorder Data
Данная прошивка также должна работать на Sonoff Basic R1 (первой ревизии) и Sonoff TH10/TH16 с сенсором Si7021. С небольшой доработкой можно использовать WiFi Relay module на ESP-01S. Нужно заменить флеш с 1МВ на 4МБ и добавить RC фильтр. Как и куда подключать датчик смотри readme на Github.
Внимание: Для ускорения работы сервера, в проекте используются очень агрессивны настройки кеширования HTML и JavaScript. Браузер только первый раз читает эти файлы с tthRelay и сохраняет себе в кеш. Про последующие обновление fs_latest.bin он ничего не знает и вместо новых HTML и JavaScript, с вероятностью 100%, будет тянуть старые из кеша. Обязательно чистите кеш после обновления файловой системы.
UDP: Где исходники? Их не будет. Есть только скомпилированные бинарники. Лицензия arduino (именно в ней написан проект) позволяет не открывать исходный код. То что я сам у себя своровал библиотеки HTU2xD_SHT2x_Si70xx и AHTxx принято к сведению и виновные будут наказаны.
UDP: Полоумное WiFi реле ч.2 — тут.