Статья

Нативный HomeKit датчик DHT11 и виртуальная кнопка

Лежащий без дела модуль DTH ESP-01S не давал покоя, и все-таки очень хотелось из него сделать нативный датчик температуры/влажности с виртуальным переключателем (ну или WiFi кнопкой) для HomeKit (на спруте уже есть подобная статья, но с той прошивкой, после обрыва питания, датчик не отвечает).


DHT11 подключается к GPIO2 и есть еще свободный GPIO0 для кнопки переключателя. На самом модуле уже есть кнопка (которая "звонится" на GPIO0), но она не работает как обычное замыкание GPIO0 на землю.

Схему подключения к конвертеру выбрал такую:

Прошивался с помощью esptool стандартной RavenCore прошивкой fullhaaboot.bin.

Стираем и прошиваем, не забывая при каждом подключении соединять GPIO0 на землю.

cd c:\esptool esptool.py --port COM13 erase_flash

cd c:\esptool esptool.py --port COM13 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin

Процесс конфигурации устройства

После прошивки, подключаем к модулю и подаем питание.

Перед подключением к ней, необходимо скопировать JSON Config в буфер обмена для вставки его в настройках (я себе его в сообщении телеграм отправил и просто скопировал).

По сути, это просто модифицированный вариант JSON Config для Sonoff Basic. Просто добавлен датчик DHT11 на GPIO2 с опросом каждые 4 секунды и коррекцией температуры на 10 градусов (какой-то кривой попался датчик). Возможно, у вас будет датчик лучшего качества и тогда нужно изменить значение Z.

{ "c":{ "l":13, "b":[ { "g":0, "t":5 } ] }, "a":[ { "0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0}]}, { "t": 24, "b": [], "g": 2, "j": 4, "z": -10}]}

После подачи питания, ждем появления точки доступа (имя сети будет в виде - HAA******) для последующей настройки.

ВНИМАНИЕ! Изначально очень важно правильно все настроить, иначе придется прошивать заново! Как корректно сбросить настройки прошитого, я так и не нашел.

JSON Config.Auto OTA Updates.WiFi conection mode.Затем необходимо указать домашнюю сеть Wi-Fi и ввести пароль от нее, после чего нажимаем на кнопку «Save» и ждем около 10 минут, пока загрузиться OTA обновление с интернета.

После, в приложении "Дом" уже добавляете новый аксессуар, который будет называться так же, как и SSID вашей ESP-01 (HAA******). Код сопряжения стандартный для RavenCore - 021-82-017.

Процесс сопряжения с Apple HomeKit

Виртуальная кнопка

Кнопку прикрутил напрямую на замыкание GPIO0 с землей. При нажатии, отлично переключается в HomeKit. Вообще суть добавления этой кнопки - это дополнительный выключатель света для ребенка, который пока еще не достает до выключателя на стене, а переносить подрозетник ниже не хотелось.

В приложении "Дом" кнопка и выключатель света объединяются четырьмя автоматизациями.




https://sprut.ai/static/media/cache/00/73/59/5/7064915/74134/1000x_image.jpg?1611814246" alt="1000x_image.jpg?1611814246" />https://sprut.ai/static/media/cache/00/73/59/5/7064915/74135/1000x_image.jpg?1611814290" alt="1000x_image.jpg?1611814290" />

DTTH11 ????? Серьезно???? Зачем покупать эту помойку? Он не работает от слова совсем! 


Помойка покупалась года 4 назад и просто лежала без дела. Никто ж не запрещает на 

GPIO2 вместо него поставить 18В20 или DHT22 (просто json потом подправить)

Суть статьи - сам выносной выключатель (ну и доведения до рабочего состояния этого модуля из статьи, которая уже была на сайте)

Да, лучшая прошивка для 8266 под HomeKit. Недавно там появилась поддержка I2C и я даже прикупил MCP2301, но все никак руки не доходят...

некоторый скрины не актуальные - в версии haa 4.9.0 Хосе отказался от каптивы и теперь нужно ручками на страничку девайса заходить



+забываем, что у есп-01 есть еще GPIO 3 и 4 - пины RX/TX. 3 вообще прекрасно работает. 4 не пробовал тк некоторые писали, что он может нестабильно работать с датчиками, как триггер кнопки скорее всего проблем не будет ;)

DHT-11 не рекомендуется каждые 4 сек опрашивать, может повиснуть
ему норм 30 сек будет

"Как корректно сбросить настройки прошитого, я так и не нашел."
Для входа в сетап у вас в начале json в разделе конфигурации прописана кнопка:

"c":{ "l":13, "b":[ { "g":0, "t":5  } ]

Те удержание вашего выключателя (притягивание GPIO 0 к массе) до полной загрузки вводит устройство в сетап - откл\вкл питание и нажимаем кнопку в течение 3х сек после этого, держим пока не моргнет светодиод передачи данных. Теперь на устройство можно зайти через браузер по его адресу и поправить конфиг.
Вроде бы при некорректном конфиге в разделе аксессуаров устройство сами будет уходить в сетап (вы его не увидите при добавлении в ХК, только к ви-фи своему сможете подключить).

Если не прописать такой конфиг, то есть встроенный механизм:
" To enter setup mode, you must quickly toggle any action switch/button 8 times (physical or from Home App). You can secure this method by https://github.com/RavenSystem/esp-homekit-devices/wiki/General-Configuration#Enter-Setup-Mode-Timer">declaring a time after device boot to perform it. 

If the device's configured WiFi network is unavailable when entering setup mode it will switch to AP mode and you will need to connect directly to it via the generated SSID e.g. HAA-XXXXXX (where XXXXXX are the last six characters of its Ethernet MAC address), and then open URL in a web browser:


http://192.168.4.1:4567

Emergency Setup Mode: If a device has its power cut or freezes within 2 seconds of boot, next time it boots it will go directly to setup mode."





Сколько не пытался ввести его в сетап - никак не получалось. Может дребезг контактов на выключателе...

У вас физический выключатель для ребенка кнопкой или нормальным перекидным сделан?

Может стоит его повесить на пин rx (gpio3), а кнопку сброса убрать внутрь и не прописывать ее в аксессуары, оставить только в начальном конфиге для входа в сетап.



Всем привет.

Попробовал перепрошить свой ESP01, прошивается норм, но вафля не появляется, в чем может быть беда?

Подскажите плиз

https://sprut.ai/static/media/cache/00/77/65/5/7437633/75101/1000x_image.jpg?1614008108" alt="1000x_image.jpg?1614008108" />

Вернуться назад

Устройства


Вернуться назад