Это приложение ESP32+LORA, которое получает радиочастотный сигнал от удаленного термометра Thermoworks Smoke X2 или Smoke X4 и публикует информацию для брокера MQTT. Это будет работать вместе с любыми существующими приемниками Smoke X2/X4 (то есть все парные приемники все еще будут функционировать). Этот проект был разработан специально для интеграции с домашним помощником, но также может использоваться с любым другим приложением на основе MQTT. Кроме того, это приложение может работать автономным образом (интерфейс WLAN в режиме AP без MQTT или домашнего помощника) для использования в полевых условиях.
Обратите внимание, что это приложение не совместимо с оригинальными продуктами Thermoworks Smoke или Thermoworks Signals.
Smoke X прочно построен, точный, имеет отличный радиочастотный диапазон и не нуждается в функционировании Интернета. Но предоставленная приемная единица показывает только текущие показания зонда, без каких -либо средств записи или отслеживания тенденций.

Это приложение позволяет пользователям Smoke X собирать данные о температуре от радиочастотного сигнала и визуализировать историю температуры через веб -интерфейс (обслуживаемый ESP32), панель домашней помощники и/или любые другие инструменты визуализации данных.



Все данные получены, обрабатываются и хранятся локально, как показано ниже:
Блок -схема LR
База -> | Lora Rf | ESP32
MQClient -> MQ
MQ -> ха
Web -> Browser (любой веб -браузер)
Подграф дым x2/x4
Зонды -> База (базовая станция) -> | lora rf | Recv (приемник)
Образцы -> База
конец
Подграф ESP32 [Smoke-X-Receiver]
MQClient (клиент MQTT)
Web (HTTP Server)
конец
Подграф MQTTB [MQTT Broker]
MQ (HomeSs Усильническая тема)
конец
Подграф -домашний помощник
mq_int
конец
Subgraph HA_DEV [HA -устройство для x2/x4]
E1 (бинарные датчики)
E2 (датчики)
конец
Подграф MQ_INT [интеграция MQTT]
HA (Auto Discovery) -> ha_dev
ha_dev
конец
Даже если вы не являетесь пользователем домашнего помощника, вы все равно можете использовать встроенный веб-интерфейс этого приложения для мониторинга вашей температуры и следить за тенденциями.
Требуется ESP32 с прикрепленным приемопередатчиком LORA LORA, работающим в диапазоне ISM 915 МГц. Комбинированный совет по разработке ESP32+LORA, такая как Heltec Wi -Fi Lora 32 V2 или V3, является идеальной, но любая плата ESP32 с SPI, подключенным SX1276 или SX1262, должна работать.
$ source /path/to/esp-idf/export.sh$ git clone --recurse-submodules [email protected]:G-Two/smoke-x-receiver.git
$ cd smoke-x-receiverКонфигурация по умолчанию для этого проекта была записана для Heltec Wi -Fi Lora 32 V3 (на основе SX1262). Если вы используете это точное оборудование, вы можете, вероятно, пропустить этот раздел. Если вы работаете на каком -либо другом оборудовании, хотите настроить сборку, или если сборка по умолчанию не работает, вам нужно запустить Menuconfig:
$ idf.py menuconfigПримечание. Если вы используете SX1276 (например, Heltec Wi -Fi Lora 32 V2 ), необходимо выбрать драйвер SX127X в меню «Smoke X Receiver HW/App Config» и настроить задание SX127X SPI
Для поддержки вашего конкретного оборудования или других потребностей могут потребоваться дополнительные изменения конфигурации
$ idf.py set-target esp32s3 # If using a Heltec WiFi LoRa 32 v3, otherwise set target as appropriate to your hardware
$ idf.py flashПриложения и веб -активы будут созданы и записаны на Flash ESP32.
После того, как ESP32 вспыхнут, необходимо настроить несколько элементов и сохранить в NVRAM. Конфигурация этих элементов будет сохраняться после сброса ESP32, а также обновления программного обеспечения приложений.
Устройство будет по умолчанию в режим AP, если информация WLAN не была настроена, или если соединение не удалось. Информация о режиме AP по умолчанию (настраивается в Menuconfig):
Подключитесь к топливо ESP32 и используйте веб-браузер, чтобы перейти на http://192.168.4.1/wlan, вам будет представлен самопроверка веб-интерфейса для настройки устройства в вашу домашнюю сеть. Поддерживаются WPA2-PSK и WPA2-Enterprise (EAP-TTLS). После применения информации о аутентификации сети, устройство сбросит и попытается присоединиться к вашей домашней сети. ESP32 предоставит запрос на имя хоста клиента DHCP для smoke_x . Как только вы найдете ESP32 в своей домашней сети, вы можете продолжить оставшуюся часть процесса настройки. Если ESP32 не может присоединиться к вашей сети, он вернется в режим AP по умолчанию.
Вкладка «Пары» веб -интерфейса укажет, что устройство требует сочетания базового блока дыма X. Если устройство находится в непарном состоянии, оно будет чередовать контроль двух каналов синхронизации (920 МГц для X2, 915 МГц для X4) и будет сочетаться с первой передачей Smoke X Sync, которую он получает. Чтобы соединить, поместите базовый блок Smoke X в режим синхронизации, который заставит его отправлять синхронизационные всплески каждые три секунды. Как только ESP32 получает и анализирует взрыв, он будет передавать реакцию синхронизации на целевой частоте, а базовый блок вернется к нормальной работе. На этом этапе вы можете подтвердить в веб -интерфейсе, что устройство связано с определенным идентификатором и частотой устройства. Это единственный раз, когда ESP32 будет передавать сигнал LORA. Устройство всегда может быть непарным через веб -интерфейс. Сотавание/неосуществление ESP32 не повлияет на состояние спаривания любых других устройств.
После пары на странице состояния будет отображаться график температуры.
Веб -интерфейс также используется для настройки устройства для подключения к брокеру MQTT. MQTT URI является единственным обязательным полем, остальные являются необязательными и будут зависеть от вашей конкретной конфигурации брокера MQTT. Аутентификация сервера MQTTS поддерживается путем ввода доверенного CA PEM через веб -интерфейс. PKI Client Auth в настоящее время не поддерживается.
Если MQTT настроен и включена, приложение опубликует сообщения о состоянии после получения радиочастотной передачи от базовой станции Smoke X. Базовая станция передает каждые тридцать секунд. Опубликованное содержимое сообщения:
{
"probe_1_attached" : " ON " ,
"probe_1_alarm" : " ON " ,
"probe_1_temp" : 70.4 ,
"probe_1_max" : 185 ,
"probe_1_min" : 32 ,
"billows_target" : " offline " ,
"probe_2_attached" : " ON " ,
"probe_2_alarm" : " ON " ,
"probe_2_temp" : 70.4 ,
"probe_2_max" : 91 ,
"probe_2_min" : 50 ,
"billows_attached" : " OFF "
}Примечание. Устройства x4 также будут включать дополнительные данные для зондов 3 и 4
Это приложение поддерживает домашний помощник MQTT Discovery. Если ваш администратор домашнего помощника имеет интеграцию MQTT, настроенную для обнаружения, будут автоматически добавлены следующие датчики Smoke X:
После успешного подключения к брокеру MQTT, устройство будет настроить каждый датчик, опубликовав сообщения обнаружения, аналогичные следующему (одно для каждого объекта):
{
"dev" : {
"name" : " Smoke X Receiver " ,
"identifiers" : " |ABC12 " ,
"sw_version" : " 0.1.0 " ,
"model" : " X2 " ,
"manufacturer" : " ThermoWorks "
},
"exp_aft" : 120 ,
"pl_not_avail" : " offline " ,
"stat_t" : " homeassistant/smoke-x/state " ,
"dev_cla" : " temperature " ,
"unit_of_meas" : " °F " ,
"uniq_id" : " smoke-x_probe_1_temp " ,
"name" : " Smoke X Probe 1 Temp " ,
"val_tpl" : " {{value_json.probe_1_temp}} "
}Кроме того, заявка будет подписаться на тему статуса домашнего помощника для объявлений о рождении. Если домашний помощник перезапускает, объявление о рождении будет сигнализировать заявку на повторное публикацию сообщений об обнаружении. Имена тем тему по умолчанию используются, но могут быть настроены в веб -интерфейсе ESP32.
Приложение предоставляет API HTTP (используемый на графике истории температуры веб -интерфейса), который также может использоваться любым другим клиентом, который может отправлять HTTP -запросы в ESP32.
Ответ:
{
"probe_1" : {
"current_temp" : 95.3 ,
"alarm_max" : 185 ,
"alarm_min" : 32 ,
"history" : [ 95.1 , 95.2 , 95.3 ]
},
"probe_2" : {
"current_temp" : 165.9 ,
"alarm_max" : 91 ,
"alarm_min" : 50 ,
"history" : [ 165.7 , 165.8 , 165.9 ]
},
"billows" : false
}Примечание. Устройства x4 также будут включать дополнительные данные для зондов 3 и 4
PRS для исправления ошибок или улучшения/добавления функциональности приветствуются! Если вы успешно создали приложение, у вас есть все необходимое для его изменения.
Может быть полезно для мониторинга журналов ESP32 во время первоначальной настройки приложения для помощи в отладке. В то время как ESP32 все еще подключен к вашему компьютеру, журналы мониторинга с помощью:
$ idf.py monitor
Это приложение построено с ESP-IDF V4 SDK и имеет внешние зависимости со следующими драйверами Lora Modem:
Веб -интерфейс записан в VUE и загружается в файловую систему Flash ESP32 как сжатые статические веб -активы, которые обслуживаются веб -сервером ESP32. Чтобы помочь в разработке и ручном тестировании, веб -интерфейс может быть предварительно просмотрен:
$ ./mock_web_ui.sh