Для своего умного дома решил собрать датчик присутствия на доплеровском датчике rcwl-0516 и микроконтроллере Zigbee — cc2530, работающий на протоколе Zigbee, отличающийся низким энергопотреблением.  Для своего умного дома, для включения света в коридоре решил сделать сам датчик присутствия, все рыночные решения показались мне громоздкими (обычно работают в инфракрасном диапазоне), плюс, я не хотел чтобы его было видно и поэтому хотел установить за картину. Все элементы были куплены на AliExpress и стоили очень дешево.  Доплеровский датчик движения RCWL-0516 — способен определять движение объектов, которые полностью или частично отражают радиоволны (люди, животные, металл и т. д.), в том числе когда движущиеся объекты находятся за тонкой перегородкой. На определение движения не влияет освещение, в отличие от инфракрасных датчиков.  Входное напряжение питания (VIN): 4 … 28 В постоянного тока. Потребляемый ток: до 3 мА (номинально 2,8 мА). Дальность обнаружения: до 9 м (номинально до 5 м). Мощность передатчика: до 30 мВт (номинально до 20 мВт). Частота передатчика: 5,8 ГГц. Время задержки до сброса триггера: 2 сек ±30%. Выходное напряжение питания (3V3): 3,2 … 3,4 В (номинально 3,3 В). Максимальный ток на выходе «3V3»: до 100 мА. Рабочая температура: -20 … +80 °С. Температура хранения: -40 … +100 °С. Габариты: 17,3х35,9 мм Вес: 4 гр. На плате есть нераспаенные элементы: R‑GN — чтобы уменьшит диапазон срабатывания с 9 до 5 метров, необходимо припаять резистор на 1 мОм. C‑TM — время повторного запуска, по умолчанию 2 секунды, чтобы увеличить время срабатывания, необходимо припаять конденсатор. R‑CDS — место для установки резистора, необходимый для регулировки срабатывания фоторезистора CDS — место для установки светозависимого резистора или фоторезистора, модуль будет работать только в темноте.  CC2530 — модуль поддерживает стандарт IEEE 802.15.4, предназначен для организации сетей стандарта ZigBee, а также средств дистанционного управления на базе ZigBee RF4CE и оборудования стандарта Smart Energy. ИС CC2530 объединяет в одном кристалле РЧ‑трансивер и микроконтроллер. ИС выпускается в четырех исполнениях CC2530F32/64/128/256, различающиеся объемом флэш‑памяти — 32/64/128/256 Кбайт, соответственно. В остальном все ИС идентичны: они поставляются в миниатюрном RoHS‑совместимом корпусе QFN40 размерами 6×6 мм и обладают одинаковыми рабочими характеристиками.  Размеры: 17×28 мм Рабочая частота: 2394-2507 МГц Напряжение: 2-3.6 В Мощность передатчика: 4 (2.5мВт) Расстояние: до 150 м Скорость: 250 кбит/с Чувствительность приемника: -97dBm Рабочая температура: -45…+85 С  Для начала необходимо прошить сам Zigbee модуль универсальной прошивкой от @ptvo   Закачать прошивку на него можно тремя способами: используя CCLoader ESP8266 (например Wemos D1 mini) используя Raspberry Pi используя CC Debugger Так как у меня был в наличии ESP, решил делать через него, но не все так быстро, сначала сам ESP8266 нужно прошить специальной прошивкой. Готовая прошивка находится тут (там же можно скачать исходники и собрать свою прошивку с нужными вам пинами). Ее нужно прошить на ESP8266, например, через Tasmotizer.  После прошивки 8266 нужно соединить модули в соответствии со схемой (это временная схема для прошивки и отладки):  PIN CC2530 NodeMCU/Wemos GPIO# P21 (DEBUG_DATA) D5 GPIO14 P22 (DEBUG_CLOCK) D2 GPIO4 RST (RESET_N) D1 GPIO5 VCC 3.3V   GND GND   После этого приступаем к программной части модуля cc2530.  Программа PTVO генерит универсальную прошивку для Zigbee устройств с нужным вам функционалом, например, можно сделать свои датчики температуры и CO2, управлять реле, светодиодной летной и тд. Можно скачать мой готовый файл настроек, его нужно распаковать и открыть в программе PTVO. Или сделать настройку самому в приложении, в соответствии с картинкой: В нашем случае: выбираем тип платы CC2530 тип устройства Конечное устройство опционально выбираем Индикатор статуса на PIN P07 (нужно припаять светодиод на плату к этому пину) Выход2 P30 это виртуальный порт, несуществующий физически, но нужный для отправки данных по Zigbee Вход2 P06 это физический порт, к которому подключаем выход датчика RCWL-0516 и программно подключенный к Выход2 (передает туда данные) на момент написания статьи в конфигураторе прошивки был баг, если выбрать Вход1, то устройство после переподключения переходило снова в режим сопряжения, поэтому нужно выбирать Вход2 Переключаемся на вкладку Эксперт и там называем свое устройство, нажимаем Создать внешний конвертер для Z2M, будет сгенерирован файл с расширением JS, который нужен будет нам в дальнейшем для HomeAssistant и аддона Zigbee2MQTT.  Теперь нажимаем нижнюю кнопку Сохранить, будет сгенерирована прошивка в формате HEX.   Для заливки прошивки на CC2530 нужна прошивка в формате BIN, поэтому скачиваем другую утилиту objcopy и CCLoader. Запускаем конвертацию HEX в BIN: Запускаем прошивку cc2530 через ESP8266 (где 9 это номер COM порта, к которому подключен ESP8266): После успешной прошивки, должны получить сообщение: Теперь отключаем ESP8266 от компьютера и заново подключаем, CC2530 переходит в режим сопряжения и если припаивали светодиод, он будет быстро мигать, примерно раз в секунду и будет в таком режиме пока не подключится к координатору Zigbee. Сбросить устройство можно 3 раза подключить к питанию и выждав 2 секунды отключить от питания, прошивка сбросится и опять будет ждать подключение к координатору.   Теперь можно отключать (отпаять) ESP8266 (ранее мы получали питание с него), соединить СС230 и RCWL-0516 с источником питания от 4В до 28В. Соединить выход датчика OUT с P06. И стабилизированный выход 3.3В со входом питания CC2530. В качестве источника может выступать аккумулятор 3.7В, тем более собранное устройство потребляет не более 28мА. Итак конечная схема датчика: Полученный файл JS на предыдущем шаге, нужно скопировать на устройство с установленным Home Assistant в папку /config/zigbee2mqtt, а потом в Настройках Zigbee2MQTT во Внешних конверторах указать имя файла JS Сохранить, настройки и запустить поиск устройств. Остается проверить работу устройства: И спрятать в заранее заказанную коробочку, например, в такую: