Учебный end-to-end проект

Первый LoRaWAN проект: от датчика до графика

Система измеряет температуру, влажность и другие параметры, передает данные по LoRaWAN через шлюз или The Things Network, сохраняет их в базе и показывает в Grafana.

Node Датчик + микроконтроллер + LoRa радио

Собирает измерения и отправляет короткие пакеты.

Gateway Шлюз LoRaWAN

Принимает радио-пакеты и пересылает их в интернет.

868МГц EU
1-5мин интервал
Grafanaдашборд

Главная идея

Архитектура проекта

Проект делится на полевую часть, сеть передачи и серверную часть. Это помогает понимать, где измеряются данные, где они маршрутизируются и где становятся полезными графиками.

01

Полевой узел

Датчики подключены к микроконтроллеру. Он считывает значения, формирует payload и передает его через LoRa радио.

02

LoRaWAN сеть

Шлюз принимает радио-сигнал и отправляет пакет на network server, например The Things Network.

03

Backend и база

Backend получает uplink, декодирует поля, проверяет формат и записывает временные ряды в базу данных.

04

Grafana

Grafana подключается к базе и показывает графики, статусы, последние значения и предупреждения.

Путь одного измерения

Поток данных

1 Датчик

Измеряет температуру, влажность, освещенность или CO2.

2 Микроконтроллер

Считывает сигнал, упаковывает данные, экономит батарею.

3 LoRa радио

Передает короткий пакет на большое расстояние.

4 Шлюз

Принимает радиосигнал и отправляет пакет в интернет.

5 TTN

Проверяет устройство, маршрутизирует uplink, вызывает интеграцию.

6 Backend

Декодирует payload и пишет данные в базу.

7 Grafana

Строит графики и делает данные понятными.

Что понадобится

Список железа

Минимальный узел

  • Микроконтроллер: ESP32, STM32 или Arduino-compatible плата.
  • LoRa модуль: RFM95, SX1276/SX1278 или плата с LoRaWAN.
  • Датчик: BME280, SHT31, DS18B20, MH-Z19B или аналог.
  • Питание: USB для отладки, батарея для полевого режима.
  • Антенна подходящей частоты: например 868 МГц для EU.

Сеть и сервер

  • LoRaWAN gateway дома или доступный public gateway.
  • Аккаунт и application в The Things Network.
  • Backend endpoint: HTTP, MQTT consumer или Node-RED.
  • База данных: InfluxDB, TimescaleDB или PostgreSQL.
  • Grafana для дашбордов и базовых alert-правил.

Как соединить

Подключение компонентов

Датчик -> микроконтроллер

I2C, SPI, OneWire или UART. Например BME280 обычно подключается по I2C.

Микроконтроллер -> LoRa радио

Чаще всего SPI: MOSI, MISO, SCK, NSS, DIO0, питание и земля.

LoRa radio -> gateway

Беспроводная передача LoRaWAN. Устройство не подключается к Wi-Fi.

Gateway -> TTN

Шлюз подключен к интернету через Ethernet, Wi-Fi или LTE.

TTN -> backend

HTTP webhook или MQTT integration передает расшифрованные uplink-события.

Database -> Grafana

Grafana читает временные ряды и превращает их в панели мониторинга.

Маршрут сборки

Пошаговый план проекта

  1. Шаг 1

    Выбрать измерение

    Начните с одного датчика: температура и влажность проще всего для первой версии.

  2. Шаг 2

    Собрать узел на столе

    Подключите датчик и LoRa модуль, проверьте чтение значений через serial output.

  3. Шаг 3

    Зарегистрировать устройство

    Создайте application в TTN, добавьте device и сохраните ключи OTAA.

  4. Шаг 4

    Отправить первый uplink

    Прошивка должна подключиться к сети и отправить payload с тестовыми данными.

  5. Шаг 5

    Настроить декодер

    В TTN или backend преобразуйте байты payload в понятные поля: temp, humidity, battery.

  6. Шаг 6

    Сохранить данные

    Backend принимает события и пишет их в базу с timestamp и device_id.

  7. Шаг 7

    Собрать дашборд

    В Grafana создайте панели: последние значения, график за сутки, батарея, RSSI/SNR.

  8. Шаг 8

    Вынести узел в поле

    Проверьте корпус, питание, антенну, интервал передачи и стабильность связи.

Важно различать

Роли компонентов

Датчик

Измеряет физический параметр и отдает цифровое или аналоговое значение.

Микроконтроллер

Управляет логикой: считывает датчики, спит, просыпается, формирует пакет.

LoRa радио

Передатчик на устройстве. Отвечает за дальнюю радиосвязь, но не является интернетом.

Gateway

Мост между LoRa радиоканалом и IP-сетью. Обычно не анализирует смысл данных.

Network server

LoRaWAN-уровень: регистрация устройств, ключи, deduplication, routing, integrations.

Backend

Принимает данные из TTN, проверяет их, декодирует и готовит к хранению.

Database

Хранит измерения как временные ряды, чтобы их можно было быстро читать за период.

Grafana

Визуализирует данные из базы и помогает заметить тренды, сбои и разряд батареи.