Human Presence Radar Module Kit LD2410: различия между версиями

м
Нет описания правки
м
Строка 126: Строка 126:


= Интеграция с Wiren Board =
= Интеграция с Wiren Board =
# Создаём виртуальное устройство
Для трансляции значений в контроллер Wiren Board нам понадобится виртуальное устройство, чтобы мы могли в его топики передавать значения через MQTT.
# Получаем имя топика
 
# Добавляем в конфиг esphome
== Создаём виртуальное устройство ==
<syntaxhighlight lang="javascript">
defineVirtualDevice('virtual-garderob', {
    title: 'virtual-garderob' ,
    cells: {   
      presence_sensor: {
        title: "датчик присутствия",
        type: "alarm",
        value: false,
      },       
    }
})
</syntaxhighlight>
 
== Получаем имя топика ==
В веб-интерфейсе Wiren Board в разделе "Настройки -> MQTT топики" ищем наше виртуальное устройство и копируем значение топика (например, /devices/virtual-garderob/controls/presence_sensor)
 
== Добавляем в конфиг esphome ==
ранее мы описывали бинарный сенсор - его нужно дополнить полем id (это нужно чтобы в lambda-функции можно было получение значение сенсора):
<syntaxhighlight lang="yaml">
binary_sensor:
  - platform: ld2410
    has_target:
      name: Presence
      id: esp_garderob_presence
      on_state:
        then:
          - mqtt.publish:
              topic: /devices/virtual-garderob/controls/presence_sensor
              payload: !lambda |-
                return id(esp_garderob_presence).state ? "1" : "0";
 
mqtt:
  broker: 10.50.0.253
</syntaxhighlight>
 
что мы сделали:
#добавили id к сенсору
#описали mqtt-брокера
#создали триггер on_state, срабатывающий при изменении значения сенсора, используем функцию mqtt.publish для отправки данных в Wiren Board
 
Теперь можно пойти в раздел устройств в интерфейсе Wiren Board и увидеть такое:
[[Файл:Screenshot from 2024-01-29 13-17-22.png]]
 
Когда датчик сработает, то будет выглядеть так:
[[Файл:Screenshot from 2024-01-29 13-17-47.png]]
 
Таким образом, можно использовать wb-rules для автоматизации, или какой-то другой софт.
 
= Автоматизация освещения =
Совсем коротко про автоматизацию (как это сделал я):
* всё освещение у меня уже прокинуто в Home Assistant при помощи wb-engine (https://github.com/4mr/wb-engine)
* установлен node red с модулем node-red-contrib-home-assistant-websocket и node-red-contrib-wirenboard
 
Добавляем компонент "events: state" (отлавливает изменение состояния выбранного объекта)
[[Файл:Screenshot from 2024-01-29 13-40-40.png]]
 
если вы используете компонент первый раз - нужно добавить сервер home assistant (если NR крутится внутри HA, тогда, по идее, это можно пропустить)
[[Файл:Screenshot from 2024-01-29 13-32-32.png]]
 
указываем объект сенсора
[[Файл:Screenshot from 2024-01-29 13-42-59.png]]
 
добавляем второй компонент - "wb: out"
[[https://wirenboard.com/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Screenshot_from_2024-01-29_13-40-02.png]]
 
если вы используете компонент первый раз - нужно добавить сервер wiren board
[[Файл:Screenshot from 2024-01-29 13-38-30.png]]
 
 
указываем "светильник"
[[Файл:Screenshot from 2024-01-29 13-44-41.png]]
 
Далее жмём "Deploy". Теперь при обнаружении присутствия человека в гардеробе будет зажигаться соответствующая группа освещения.
 


= Автономное подключение =
= Автономное подключение =
Для подключения нам понадобится модуль реле, срабатывающий от 3V, например, что-то такое:
У датчика есть OUT-пин, на котором появляется напряжение 3V в случае обнаружения объекта, таким образом, можно приколхозить какое-то реле и управлять освещением автономно, без контроллера УД, мне это было не нужно - поэтому особо не изучал, но эта задача кажется сильно проще чем подключение к HA/WB.
 
Например, может подойти один из модулей реле (тут надо смотреть, что в действительности выдаёт датчик на пине OUT):
[[Файл:Screenshot from 2024-01-29 11-41-12.png]]
[[Файл:Screenshot from 2024-01-29 11-41-12.png]]
[[Файл:Odnokanalnoe-rele.jpg]]


= Печать корпуса =
= Печать корпуса =
В конечном счёте я решил свою задачу - как датчик работает мне очень нравится, всё точно, никаких ложных срабатываний по сравнению с PIR датчиком, поэтому я решил финализировать решение, заказал себе ESP32C3 (на свой страх и риск, т.к. разработчики ESPHOME не гарантируют корректную работу на C3, но вроде пишут что всё норм встаёт) и нашёл на просторах сети пару халявных схем для 3D-принтера, отдал другу, и вот какой результат получился:
[[Файл:Ld2410-case-1.jpeg]]
[[Файл:Ld2410-case-2.jpeg]]
ссылки на схемы:
* https://www.printables.com/model/582630-case-for-esp32-c3-super-mini-and-ld2410c/files
* https://www.printables.com/model/582630-case-for-esp32-c3-super-mini-and-ld2410c/files
* https://cults3d.com/en/3d-model/gadget/ld2410-box-proto-type
* https://cults3d.com/en/3d-model/gadget/ld2410-box-proto-type
123

правки