Human Presence Radar Module Kit LD2410: различия между версиями
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
= Подключение и настройка датчика присутствия людей LD2410C = | |||
{{Wbincludes:Community}} | {{Wbincludes:Community}} | ||
Строка 8: | Строка 6: | ||
Здесь будет рассмотрен весь процесс подключения, настройки и интеграции с Wiren Board / Home Assistant китайского датчика HLK-LD2410C от компании Hi-link, работающего по принципу радара. | Здесь будет рассмотрен весь процесс подключения, настройки и интеграции с Wiren Board / Home Assistant китайского датчика HLK-LD2410C от компании Hi-link, работающего по принципу радара. | ||
= Что это за датчик = | |||
Цитирую из [https://mysku.club/blog/aliexpress/ блока aliexpress]: | Цитирую из [https://mysku.club/blog/aliexpress/ блока aliexpress]: | ||
<blockquote> | <blockquote> | ||
Строка 19: | Строка 17: | ||
</blockquote> | </blockquote> | ||
= Материалы для изучения = | |||
В процессе изучения темы я подглядывал в "чужие" посты, должен сослаться на них. | В процессе изучения темы я подглядывал в "чужие" посты, должен сослаться на них. | ||
* https://mysku.club/blog/aliexpress/94494.html | * https://mysku.club/blog/aliexpress/94494.html | ||
Строка 25: | Строка 23: | ||
* http://psenyukov.ru/%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA-%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D1%80%D0%B8%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D0%B8%D1%8F-hi-link-ld2410b/ | * http://psenyukov.ru/%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA-%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D1%80%D0%B8%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D0%B8%D1%8F-hi-link-ld2410b/ | ||
= Подключение к PC = | |||
<gallery mode="traditional" widths ="260px" heights="200px"> | <gallery mode="traditional" widths ="260px" heights="200px"> | ||
Строка 36: | Строка 35: | ||
# Подключаем GND и VCC соответственно | # Подключаем GND и VCC соответственно | ||
Далее нам нужна софтина '''LD2410 Tool''' на английском языке (к сожалению, есть версия '''только для Windows'''), '''качнуть можно тут - https://drive.google.com/drive/folders/1p4dhbEJA3YubyIjIIC7wwVsSo8x29Fq-''' | |||
После подключения в диспетчере устройств должен появиться '''новый COM-порт'''. | После подключения в диспетчере устройств должен появиться '''новый COM-порт'''. | ||
Строка 100: | Строка 99: | ||
У датчика есть также тонкие настройки чувствительности во всех 8ми зонах, но я не вникал в это очень глубоко, настроек по умолчанию мне хватило чтобы решить свою задачу. | У датчика есть также тонкие настройки чувствительности во всех 8ми зонах, но я не вникал в это очень глубоко, настроек по умолчанию мне хватило чтобы решить свою задачу. | ||
= | = Пользователям Linux = | ||
Есть вот такая хорошая страничка - https://ld2410.albert.nz/ - вместо софта можно пользоваться этим сайтом для настройки датчика. | Есть вот такая хорошая страничка - https://ld2410.albert.nz/ - вместо софта можно пользоваться этим сайтом для настройки датчика. | ||
= Подключение к ESP32 = | |||
Далее будет рассмотрен процесс прошивки контроллера ESP32, для этих целей у меня всегда есть полноценная dev-плата ESP32 WROOM32 Devkit 38P. | Далее будет рассмотрен процесс прошивки контроллера ESP32, для этих целей у меня всегда есть полноценная dev-плата ESP32 WROOM32 Devkit 38P. | ||
Строка 186: | Строка 178: | ||
[[Image:Снимок экрана 2024-01-29 210041.jpg]] | [[Image:Снимок экрана 2024-01-29 210041.jpg]] | ||
== Интеграция с Wiren Board | = Настройка через bluetooth = | ||
Вобще-то я рассчитывал получить модуль с синим зубом, но не то заказал. Есть хочется без ноута на месте через мобилу расстояние поднастроить, то надо брать такое: | |||
[[Image:Снимок экрана 2024-01-29 210801.jpg|300px]] | |||
Далее нужно использовать мобильное приложение '''HLKRadarTool''' для подключения к датчику. | |||
= Интеграция с Wiren Board = | |||
Для трансляции значений в контроллер Wiren Board нам понадобится виртуальное устройство, чтобы мы могли в его топики передавать значения через MQTT. | Для трансляции значений в контроллер Wiren Board нам понадобится виртуальное устройство, чтобы мы могли в его топики передавать значения через MQTT. | ||
Строка 203: | Строка 202: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Получаем имя топика == | |||
В веб-интерфейсе Wiren Board в разделе "Настройки -> MQTT топики" ищем наше виртуальное устройство и копируем значение топика (например, /devices/virtual-garderob/controls/presence_sensor) | В веб-интерфейсе Wiren Board в разделе "Настройки -> MQTT топики" ищем наше виртуальное устройство и копируем значение топика (например, /devices/virtual-garderob/controls/presence_sensor) | ||
== Добавляем в конфиг esphome == | |||
ранее мы описывали бинарный сенсор - его нужно дополнить полем id (это нужно чтобы в lambda-функции можно было получение значение сенсора): | ранее мы описывали бинарный сенсор - его нужно дополнить полем id (это нужно чтобы в lambda-функции можно было получение значение сенсора): | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
Строка 240: | Строка 239: | ||
Таким образом, можно использовать wb-rules для автоматизации, или какой-то другой софт. | Таким образом, можно использовать wb-rules для автоматизации, или какой-то другой софт. | ||
= Автоматизация освещения = | |||
Совсем коротко про автоматизацию (как это сделал я): | Совсем коротко про автоматизацию (как это сделал я): | ||
* всё освещение у меня уже прокинуто в Home Assistant при помощи wb-engine (https://github.com/4mr/wb-engine) | * всё освещение у меня уже прокинуто в Home Assistant при помощи wb-engine (https://github.com/4mr/wb-engine) | ||
Строка 275: | Строка 274: | ||
Далее жмём "Deploy". Теперь при обнаружении присутствия человека в гардеробе будет зажигаться соответствующая группа освещения. | Далее жмём "Deploy". Теперь при обнаружении присутствия человека в гардеробе будет зажигаться соответствующая группа освещения. | ||
= Автономное подключение = | |||
У датчика есть OUT-пин, на котором появляется напряжение 3V в случае обнаружения объекта, таким образом, можно приколхозить какое-то реле и управлять освещением автономно, без контроллера УД, мне это было не нужно - поэтому особо не изучал, но эта задача кажется сильно проще чем подключение к HA/WB. | У датчика есть OUT-пин, на котором появляется напряжение 3V в случае обнаружения объекта, таким образом, можно приколхозить какое-то реле и управлять освещением автономно, без контроллера УД, мне это было не нужно - поэтому особо не изучал, но эта задача кажется сильно проще чем подключение к HA/WB. | ||
Строка 284: | Строка 283: | ||
</gallery> | </gallery> | ||
= Печать корпуса = | |||
В конечном счёте я решил свою задачу - как датчик работает мне очень нравится, всё точно, никаких ложных срабатываний по сравнению с PIR датчиком, поэтому я решил финализировать решение, заказал себе ESP32C3 (на свой страх и риск, т.к. разработчики ESPHOME не гарантируют корректную работу на C3, но вроде пишут что всё норм встаёт) и нашёл на просторах сети пару халявных схем для 3D-принтера, отдал другу, и вот какой результат получился: | В конечном счёте я решил свою задачу - как датчик работает мне очень нравится, всё точно, никаких ложных срабатываний по сравнению с PIR датчиком, поэтому я решил финализировать решение, заказал себе ESP32C3 (на свой страх и риск, т.к. разработчики ESPHOME не гарантируют корректную работу на C3, но вроде пишут что всё норм встаёт) и нашёл на просторах сети пару халявных схем для 3D-принтера, отдал другу, и вот какой результат получился: | ||
Версия 21:10, 29 января 2024
Подключение и настройка датчика присутствия людей LD2410C
Статья создана членом сообщества и может не совпадать с позицией компании Wiren Board. Используйте приведённые инструкции на свой страх и риск.
Автор статьи: Paul Strong
Здесь будет рассмотрен весь процесс подключения, настройки и интеграции с Wiren Board / Home Assistant китайского датчика HLK-LD2410C от компании Hi-link, работающего по принципу радара.
Что это за датчик
Цитирую из блока aliexpress:
HLK-LD2410 – радарный датчик присутствия человека с возможностью измерения расстояния и детектирования как движущихся, так и неподвижных объектов.
HLK-LD2410 работает по принципу FMCW радара и способен обнаруживать движущиеся и неподвижные объекты. HLK-LD2410 способен рассчитывать расстояние до объекта, максимальное заявленное расстояние обнаружения составляет 5 метров. Он имеет интерфейс UART для конфигурации и вывод GPIO, состояние которого меняется при обнаружении цели в соответствии с настройками чувствительности. Логический уровень UART и GPIO 3.3 в.
Угол обнаружения объекта по горизонтали и вертикали составляет 120 градусов. Размер модуля всего 35*7 мм. Интерфейс UART и пин GPIO выведен на 5 контактную колодку с шагом 1,27 мм, разъемы с таким шагом распространены не широко, поэтому для отладки имеет смысл сразу заказать интерфейсную плату. Она содержит USB-Uart конвертер CH340 и стабилизатор напряжения AMS1117. Для подключения к компьютеру предусмотрен разъем micro-usb. Интерфейсная плата универсальна и подходит для разных радарных модулей, выпускаемых Hi-Link.
Материалы для изучения
В процессе изучения темы я подглядывал в "чужие" посты, должен сослаться на них.
- https://mysku.club/blog/aliexpress/94494.html
- https://mysku.club/blog/aliexpress/98704.html
- http://psenyukov.ru/%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA-%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D1%80%D0%B8%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D0%B8%D1%8F-hi-link-ld2410b/
Подключение к PC
- Подключаем TX датчика к RX конвертера
- Подключаем RX датчика к TX конвертера
- Подключаем GND и VCC соответственно
Далее нам нужна софтина LD2410 Tool на английском языке (к сожалению, есть версия только для Windows), качнуть можно тут - https://drive.google.com/drive/folders/1p4dhbEJA3YubyIjIIC7wwVsSo8x29Fq-
После подключения в диспетчере устройств должен появиться новый COM-порт.
Теперь открываем софтину, выбираем нужный COM-порт и жмём "Connect", если ошибок не вылезло - значит Serial-подключение установлено успешно.
Если подключение установить не удалось - нужно разбираться с COM-портом, возможно поможет рестарт софтины, или возможно вы уже открыли этот COM-порт в другой софтине, ошибка подключения будет выглядеть примерно так:
Теперь нам нужно отрегулировать расстояние, в пределах которого будет работать датчик. По умолчанию датчик работает диапазонами по 0.75м, всего есть 8 диапазонов:
№ | нижняя граница, м | верхняя граница, м |
---|---|---|
1 | 0 | 0.75 |
2 | 0.75 | 1.5 |
3 | 1.5 | 2.25 |
4 | 2.25 | 3 |
5 | 3 | 3.75 |
6 | 3.75 | 4.5 |
7 | 4.5 | 5.25 |
8 | 5.25 | 6 |
Мы можем настраивать расстояние между 2 и 8 включительно, то есть отключить сканирование расстояния меньше 1.5m невозможно чисто технически, оно всегда сканируется.
Например, если мы хотим "мониторить" расстояние не более 3м, тогда записываем значения:
настройка | значение |
---|---|
Moving Max. RG | 4 |
Motionless Max. RG | 4 |
Теперь можем жать кнопку Start и сможем наблюдать за изменениями на графиках - по ним можно понять как датчик реагирует на ваше присутствие:
если круг зеленого цвета - значит датчик вас не видит
если пурпурный - значит датчик видит ваше присутствие
если красный - значит датчик видит ваше движение
- в верхней части есть также расстояние до вас, вы можете постепенно удаляться от датчика и в какой-то момент отсчёт расстояния прекратится, спустя несколько секунд круг станет зеленым, т.к. датчик больше вас не видит (ранее мы настроили датчик на максимальное расстояние 3м)
У датчика есть также тонкие настройки чувствительности во всех 8ми зонах, но я не вникал в это очень глубоко, настроек по умолчанию мне хватило чтобы решить свою задачу.
Пользователям Linux
Есть вот такая хорошая страничка - https://ld2410.albert.nz/ - вместо софта можно пользоваться этим сайтом для настройки датчика.
Подключение к ESP32
Далее будет рассмотрен процесс прошивки контроллера ESP32, для этих целей у меня всегда есть полноценная dev-плата ESP32 WROOM32 Devkit 38P.
Подключаем пины датчика к esp32 (да, я использовать не стандартные RX/TX пины, мне так надо было, вы можете использовать другие пины по своему усмотрению):
- 5V контроллера к VCC датчика
- GND
- GPIO27 - RX датчика
- GPIO26 - TX датчика
Далее подразумевается, что у вас уже есть система Home Assistant с подключенным ESPHOME.
Создаём новое устройство с базовым конфигом (адрес 192.168.0.100 указан с учетом IP-адреса, закрепленного на роутере за MAC-адресом WiFi интерфейса платы с ESP32):
esphome:
name: esp-garderob
friendly_name: esp-garderob
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "ylD7gSnCct8R2g+Ff2nlYZJCOesBngFNln0ulJGOnwM="
ota:
password: "2d292b8425334046760b741090ee1c3f"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
use_address: 192.168.0.100
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp-Garderob Fallback Hotspot"
password: "FKaeqKHsRMdF"
captive_portal:
Далее открываем и изучаем документацию https://esphome.io/components/sensor/ld2410.html
Я перепробовал там все вариации конфигов, лично у меня так и не взлетело редактирование настроек из Home Assistant, а точней, там даже текущие значения не считываются после рестарта esp32, в итоге я выкинул всё лишнее - оставил только бинарный сенсор присутствия:
uart:
tx_pin: 27
rx_pin: 26
baud_rate: 256000
parity: NONE
stop_bits: 1
ld2410:
throttle: 300ms
binary_sensor:
- platform: ld2410
has_target:
name: Presence
что здесь можно увидеть:
- мы указали настройки UART, соответствующие тем пинам, на которые мы подключили наш датчик
- создаём платформу ld2410 и указываем таймаут для цикла, который опрашивает датчик
- на базе платформы ld2410 создаём бинарный сенсор с датчиком присутствия
после заливки прошивки появится новое устройство с соответствующим сенсором, его можно найти тут "Настройки > Устройства и службы > Устройства"
Настройка через bluetooth
Вобще-то я рассчитывал получить модуль с синим зубом, но не то заказал. Есть хочется без ноута на месте через мобилу расстояние поднастроить, то надо брать такое:
Далее нужно использовать мобильное приложение HLKRadarTool для подключения к датчику.
Интеграция с Wiren Board
Для трансляции значений в контроллер Wiren Board нам понадобится виртуальное устройство, чтобы мы могли в его топики передавать значения через MQTT.
Создаём виртуальное устройство
defineVirtualDevice('virtual-garderob', {
title: 'virtual-garderob' ,
cells: {
presence_sensor: {
title: "датчик присутствия",
type: "alarm",
value: false,
},
}
})
Получаем имя топика
В веб-интерфейсе Wiren Board в разделе "Настройки -> MQTT топики" ищем наше виртуальное устройство и копируем значение топика (например, /devices/virtual-garderob/controls/presence_sensor)
Добавляем в конфиг esphome
ранее мы описывали бинарный сенсор - его нужно дополнить полем id (это нужно чтобы в lambda-функции можно было получение значение сенсора):
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
что мы сделали:
- добавили id к сенсору
- описали mqtt-брокера
- создали триггер on_state, срабатывающий при изменении значения сенсора, используем функцию mqtt.publish для отправки данных в Wiren Board
Теперь можно пойти в раздел устройств в интерфейсе Wiren Board и увидеть такое:
Когда датчик сработает, то будет выглядеть так:
Таким образом, можно использовать wb-rules для автоматизации, или какой-то другой софт.
Автоматизация освещения
Совсем коротко про автоматизацию (как это сделал я):
- всё освещение у меня уже прокинуто в Home Assistant при помощи wb-engine (https://github.com/4mr/wb-engine)
- установлен node red с модулем node-red-contrib-home-assistant-websocket и node-red-contrib-wirenboard
Добавляем компонент (отлавливает изменение состояния выбранного объекта)
если вы используете компонент первый раз - нужно добавить сервер home assistant (если NR крутится внутри HA, тогда, по идее, это можно пропустить)
указываем объект сенсора
если вы используете компонент первый раз - нужно добавить сервер wiren board
указываем "светильник"
соединяем компоненты:
Далее жмём "Deploy". Теперь при обнаружении присутствия человека в гардеробе будет зажигаться соответствующая группа освещения.
Автономное подключение
У датчика есть OUT-пин, на котором появляется напряжение 3V в случае обнаружения объекта, таким образом, можно приколхозить какое-то реле и управлять освещением автономно, без контроллера УД, мне это было не нужно - поэтому особо не изучал, но эта задача кажется сильно проще чем подключение к HA/WB.
Например, может подойти один из модулей реле (тут надо смотреть, что в действительности выдаёт датчик на пине OUT):
Печать корпуса
В конечном счёте я решил свою задачу - как датчик работает мне очень нравится, всё точно, никаких ложных срабатываний по сравнению с PIR датчиком, поэтому я решил финализировать решение, заказал себе ESP32C3 (на свой страх и риск, т.к. разработчики ESPHOME не гарантируют корректную работу на C3, но вроде пишут что всё норм встаёт) и нашёл на просторах сети пару халявных схем для 3D-принтера, отдал другу, и вот какой результат получился:
ссылки на схемы: