Репозиторий с набором LoRa-устройств для локального мониторинга погоды и электросети с интеграцией в Home Assistant.
wemos-meteo — метеодатчик на ESP8266 (AHT20 + BMP280 + SX1278).
esp32-s3-pzem — датчик электросети на ESP32-S3 (PZEM-004T x3 + SX1278).
lora-hub — основной хаб на Heltec Wireless Stick V3 (LoRa + Wi-Fi + MQTT + Web).
temp_lora_hub — упрощенный тестовый хаб для диагностики LoRa пакетов.
Датчики собирают данные и отправляют бинарные пакеты по LoRa.
Хаб принимает пакеты, проверяет CRC, отправляет ACK и при необходимости команду датчику.
Основной хаб публикует данные в MQTT и отдает их через веб-API.
Форматы пакетов (актуально)
Поле
Тип
Описание
header
uint8
0xAA
deviceId
uint16
ID устройства
sensorType
uint8
0x01 метео, 0x02 электросеть
timestamp
uint32
Unix-time датчика
Поле
Тип
header
PacketHeader
temperature1
float
temperature2
float
humidity
float
pressure
float
battery
uint8
flags
uint8
crc
uint16
footer
uint8 (0x55)
Поле
Тип
header
PacketHeader
voltage[3]
float[3]
current[3]
float[3]
power[3]
float[3]
energy[3]
float[3]
frequency
float
powerFactor[3]
float[3]
battery
uint8
flags
uint8
crc
uint16
footer
uint8 (0x55)
Поле
Тип
header
uint8 (0xBB)
deviceId
uint16
hubTimestamp
uint32
ackCode
uint8
cmdCode
uint8
cmdParam
uint32
crc
uint16
footer
uint8 (0xCC)
Код
Команда
0x00
нет команды
0x01
clear_queue
0x02
set_interval
0x10
reset_energy
0x11
set_phases_config
Выберите нужный подпроект и откройте соответствующий .ino в Arduino IDE.
В папке проекта создайте config.h из config.example.h.
Настройте пины и параметры устройства.
Для lora-hub укажите Wi-Fi, MQTT и NTP параметры.
Прошейте устройства и проверьте обмен пакетами.
wemos-meteo: LoRa, Adafruit AHTX0, Adafruit BMP280, ESP8266 core.
esp32-s3-pzem: LoRa, PZEM004Tv30, ArduinoJson, ESP32 core.
lora-hub: Heltec ESP32 framework, PubSubClient, ArduinoJson.
Безопасность конфигурации
Файлы config.h содержат локальные параметры и должны оставаться вне git.
Перед публикацией убедитесь, что в коммитах нет SSID, паролей Wi-Fi и MQTT токенов.
Если секреты уже попали в историю, замените их и перепишите историю перед публичным push.
Подготовка к публикации на GitHub
Проверьте, что в git не попали локальные config.h.
Проверьте README каждого подпроекта и актуальность инструкций.
Добавьте LICENSE и описание политики безопасности.
Сделайте финальный просмотр изменений через git diff.
MIT, см. файл LICENSE .