Теперь мы можем в мобильном приложении IoTmanager получать данные с
беспроводных датчиков Zigbee!
И использовать их в сценариях автоматизации и строить графики.
ESPRESSIF анонсировал скорый выпуск ESP32 со встроенным Zigbee радио-модулем. И уже получил сертификат на использование в США.
https://www.espressif.com/en/news/ESP32_H2 https://youtu.be/bS9Ch7k_GK0
Но в продаже таких пока нет.
Как собрать Zigbee gate (координатор) самому менее чем за тысячу рублей:
Соберем самый простой Zigbee gate (координатор) из ESP32 и радио-модуля
E72-2G4M20S1E (CC2652P)
ESP32 увас уже конечно есть. 😊
Zigbee радио модуль 2G4M20S1E (CC2652P) на Ali стоит меньше 500 рублей.
Если вы купили модуль на Ali. То вам понадобится еще самый простой USB to UART
для прошивки. Ценой примерно 50 р
Я купил радио модуль в телеграмм канале за полторы тысячи уже распаянный на
плате с колодкой для подключения. И уже прошитый координаторной прошивкой.
Выглядит так
Общая схема подключения ESP32 и CC2652P
Как это подключено у меня
Для тестов соединил дюпонами.
После прошивки перезагрузите устройство и в WIFI окружении появится открытая
сеть без пароля в формате zgwABCD
В SLS добавить ссылку на скрипт iotm.lua для каждого датчика.
В моем случае это датчик «0xF247»
Результат
Подключитесь к сети и перейдите по адресу http://192.168.1.1
и через меню Settings -> WiFi заполните поля Подключение к WiFi роутеру
(SSID и пароль).
Нажмите Перезагрузить устройство и оно подключится к вашему роутеру
Передача данных из Zigbee координатора в прошивку IoTmanager
На Zigbee координаторе SLS gate (“settings” -> “link” -> “MQTT”) необходимо
указать те же настройки MQTT, что и на ESP с прошивкой IoTmanager (“Главная” ->
”MQTT”)
Zigbee координаторе SLS gate добавить скрипт который будет отправлять все данные
от беспроводных Zigbee датчиков в MQTT. “Actions” -> “Files”
Создать файл «iotm.lua» . "prefics" необходимо поменять
префикс вашей ESP IoTManager
prefics ="/demo/11558048-1458187/"
local Value;
if (tonumber(Event.State.Value) and tonumber(Event.State.Value) < 103 and
Event.State.Name == "pressure") then
Value = Event.State.Value * 760/101.325;
Value = math.floor(Value * 10 + 0.5) / 10;
else
if (tonumber(State)) then
Value = math.floor(Event.State.Value * 10 + 0.5) / 10 ;
else
Value = Event.State.Value;
if (Value=="true") then
Value=1;
end
if (Value=="false") then
Value=0;
end
end
end
print(Value);
mqtt.pub(prefics .. string.format("%#x", Event.nwkAddr) .. "_" ..
Event.State.Name .. "/control" , Value)
А на ESP с прошивкой IotManager создать виджеты которые будут получать
состояния беспроводных датчиков из MQTT.
Создаем новый виджет «8 Окно вывода любого текста»
Меняем ID виджета на новое значение.
Первая часть значения это ID датчика. “Zigbee” -> “Devices”
Вторая часть: параметр который мы хотим получать в виджете IoTmanager.
Открываем датчик и на 3й закладке смотрим, что он умеет мерять
С которого я хочу получать температуру: «temperature»
В IoTmanedger ID виджета получилось «0xf247_temperature» Все буквы должны быть в
нижнем регистре (маленькие).
Подробнее в телеграм канале https://t.me/live_control