Для своего умного дома решил собрать датчик присутствия на доплеровском датчике 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 гр.
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:
objcopy.exe --gap-fill 0xFF --pad-to 0x040000 -I ihex название_сохраненной_прошивки.hex -O binary название_прошивки.bin
Запускаем прошивку cc2530 через ESP8266 (где 9 это номер COM порта, к которому подключен ESP8266):
CCLoader_x86_64.exe 9 название_прошивки.bin 0
После успешной прошивки, должны получить сообщение:
Upload successfully! File closed! Comport closed!
Теперь отключаем ESP8266 от компьютера и заново подключаем, CC2530 переходит в режим сопряжения и если припаивали светодиод, он будет быстро мигать, примерно раз в секунду и будет в таком режиме пока не подключится к координатору Zigbee. Сбросить устройство можно 3 раза подключить к питанию и выждав 2 секунды отключить от питания, прошивка сброситься и опять будет ждать подключению к координатору.
Теперь можно отключать (отпаять) ESP8266 (ранее мы получали питание с него), соединить СС230 и RCWL-0516 с источником питания от 4В до 28В. Соединить выход датчика OUT с P06. И стабилизированный выход 3.3В со входом питания CC2530. В качестве источника может выступать аккумулятор 3.7В, тем более собранное устройство потребляет не более 28мА. Итак конечная схема датчика:
Подключение к Home Assistant
Полученный файл JS на предыдущем шаге, нужно скопировать на устройство с установленным Home Assistant в папку /config/zigbee2mqtt, а потом в Настройках Zigbee2MQTT во Внешних конверторах указать имя файла JS Сохранить, настройки и запустить поиск устройств.
Остается проверить работу устройства:
И спрятать в заранее заказанную коробочку, например, в такую:
ссылка на оригинал статьи https://habr.com/ru/post/719030/
Добавить комментарий