139
правок
(не показана 1 промежуточная версия этого же участника) | |||
Строка 284: | Строка 284: | ||
</gallery> | </gallery> | ||
== Печать корпуса == | == Подключение по RS-485 / Modbus RTU == | ||
Для этого понадобится модуль MAX485 | |||
[[Image:Max485.jpg]] | |||
Подключение делаем так: | |||
{| border="1" class="wikitable" | |||
! '''ld2410''' || '''esp32''' || '''описание''' | |||
|- | |||
| VCC || 3V || max485 питается от 3V | |||
|- | |||
| GND || GND || земля | |||
|- | |||
| DI || IO32 || передача по uart от esp32 в сторону max485 | |||
|- | |||
| RO || IO33 || передача по uart от max485 в сторону esp32 | |||
|- | |||
| DE/RE || IO25 || пин контроля направления приёма/передачи | |||
|- | |||
|} | |||
моя breadbort плата в момент разработки выглядела так: | |||
[[Image:Ld2410c-modbus-rtu МП.png|600px]] | |||
Прошивка в этом случае будет уже не от ESP32, будем делать свой скетч (весь код загружен сюда https://github.com/goosecrew/ld2410-modbus-slave.git) | |||
Использовал три разных Serial: | |||
* Serial - uart на microUSB (можно смотреть логи и посылать команды для просмотра показаний датчика в консоли, настраивать датчик, перезапускать, делать сброс и т.д.) | |||
* Serial1 - uart max485 | |||
* Serial2 - uart ld2410 | |||
Описание input-регистров (показания датчика): | |||
{| border="1" class="wikitable" | |||
! '''№ регистра''' || '''тип регистра''' || '''описание''' | |||
|- | |||
| 0 || input || метрика "присутствие" | |||
|- | |||
| 1 || input || метрика "неподвижность" | |||
|- | |||
| 2 || input || метрика "движение" | |||
|- | |||
| 3 || input || расстояние до неподвижного объекта | |||
|- | |||
| 4 || input || энергия неподвижного объекта | |||
|- | |||
| 5 || input || расстояние до движущегося объекта | |||
|- | |||
| 6 || input || энергия движущегося объекта | |||
|- | |||
|} | |||
Описание holding-регистров (чтение и изменение настроек): | |||
{| border="1" class="wikitable" | |||
! '''№ регистра''' || '''тип регистра''' || '''описание''' | |||
|- | |||
| 100 || holding || modbus serial slave id | |||
|- | |||
| 101 || holding || modbus serial stop bits | |||
|- | |||
| 102 || holding || modbus serial baudrate | |||
|- | |||
| 103 || holding || максимальное расстояние до движущегося объекта | |||
|- | |||
| 104 || holding || максимальное расстояние до неподвижного объекта | |||
|- | |||
| 105 || holding || idle time | |||
|- | |||
|} | |||
'''ВАЖНО! После изменения настроек modbus необходимо перезапустить esp32!''' | |||
== Шаблон для Wiren Board == | |||
Шаблон для контроллера Wiren Board лежит на гитхабе в папке wirenboard (https://github.com/goosecrew/ld2410-modbus-slave/blob/main/wirenboard/LD-2410.json). | |||
Вот что получилось на выходе: | |||
<gallery mode="traditional" widths ="260px" heights="200px"> | |||
Image: Снимок экрана 2024-02-01 003946.jpg| | |||
Image: Снимок экрана 2024-02-01 004047.jpg| | |||
</gallery> | |||
<gallery mode="traditional" widths ="260px" heights="200px"> | |||
Image: Снимок экрана 2024-02-01 003507.jpg| | |||
Image: Снимок экрана 2024-02-01 003637.jpg| | |||
</gallery> | |||
== Изменение параметров подключения к Modbus == | |||
Изменять параметры можно как с помощью веб-интерфейса Wiren Board (настройка Serial-устройств), так и с помощью modbus_client. | |||
'''Изменение адреса - регистр 100, значение по умолчанию 1''' - https://wirenboard.com/wiki/Wiren_Board_Device_Modbus_Address#Изменение_адреса_устройству_с_известным_адресом. | |||
'''Изменение количества стоповых бит - регистр 101, значение по умолчанию 2'''. | |||
'''Изменение скорости - регистр 102, значение по умолчанию 96''' (значение скорости делим на 100 перед записью, то есть 9600 посылать как 96, а 115200 посылать как 1152 и т.д). | |||
== Питание от 12/24V == | |||
С учётом того, что в Wiren Board обычно используется напряжение 12/24V, чтобы запитать ESP32 - нужно будет еще добавить модуль для понижения постоянного напряжения до 5V, здесь я это не рассматриваю, но нужно обязательно помнить: | |||
'''!!! ESP32 работает от 5V, датчик работает от 5V, MAX485 работает от 3.3/5V !!! Не подавайте на ESP32 12/24V - сожжёте! :)''' | |||
== Печать корпуса для беспроводной версии == | |||
В конечном счёте я решил свою задачу - как датчик работает мне очень нравится, всё точно, никаких ложных срабатываний по сравнению с PIR датчиком, поэтому я решил финализировать решение, заказал себе ESP32C3 (на свой страх и риск, т.к. разработчики ESPHOME не гарантируют корректную работу на C3, но вроде пишут что всё норм встаёт) и нашёл на просторах сети пару халявных схем для 3D-принтера, отдал другу, и вот какой результат получился: | В конечном счёте я решил свою задачу - как датчик работает мне очень нравится, всё точно, никаких ложных срабатываний по сравнению с PIR датчиком, поэтому я решил финализировать решение, заказал себе ESP32C3 (на свой страх и риск, т.к. разработчики ESPHOME не гарантируют корректную работу на C3, но вроде пишут что всё норм встаёт) и нашёл на просторах сети пару халявных схем для 3D-принтера, отдал другу, и вот какой результат получился: | ||
правок