ГлавнаяАкадемияCOURSE-16: Основы Интернета Вещей и практическое применение → Беспроводные технологии в IoT

Беспроводные технологии в IoT

Урок · COURSE-16: Основы Интернета Вещей и практическое применение · theory

COURSE-16-M02-L01 — Беспроводные технологии в IoT

Введение в беспроводные технологии для инженера IoT

Беспроводные технологии являются основой для построения гибких и масштабируемых систем Интернета вещей (IoT). Они устраняют необходимость в прокладке физических кабелей к каждому датчику и исполнительному устройству, что критически важно на объектах со сложной архитектурой или завершенной отделкой. Для инженера, работающего с платформой HI, понимание ключевых характеристик беспроводных протоколов определяет успешность проекта.

При выборе технологии необходимо анализировать компромисс между тремя основными параметрами:

  • Дальность (Range): Расстояние, на которое устройство может надежно передавать данные. Варьируется от метров до десятков километров.
  • Пропускная способность (Bandwidth): Объем данных, который можно передать за единицу времени. Определяет возможность передачи видео, аудио или ограничивается отправкой простых телеметрических пакетов.
  • Энергопотребление (Power Consumption): Количество энергии, требуемое для работы радиомодуля. Критично для устройств, работающих от батарей.
  • Контроллер HI поддерживает основные беспроводные технологии через опциональные модули расширения (USB-адаптеры или внутренние платы), что позволяет создавать гибридные системы, сочетающие надежность проводных шин (Modbus, CAN) с гибкостью беспроводных решений.

    Основные беспроводные технологии и их реализация на платформе HI

    1. Wi-Fi

    Wi-Fi (стандарты IEEE 802.11 a/b/g/n/ac) — это стандарт для построения беспроводных локальных сетей (WLAN). В контексте IoT на платформе HI, Wi-Fi используется как транспортный уровень для IP-протоколов, в первую очередь MQTT.

    Преимущества: Недостатки: Практическая реализация на платформе HI:

    Контроллер HI подключается к локальной сети объекта через свой Ethernet-порт или встроенный Wi-Fi модуль. Любое IoT-устройство (например, умная розетка, ESP32 с датчиками), подключенное к той же Wi-Fi сети, может отправлять и получать данные от контроллера через MQTT-брокер, работающий на самом контроллере.

    💡 Пример контракта сообщения от Wi-Fi датчика температуры:

    Устройство публикует данные в топик `telemetry/living_room/wifi_sensor_1`. Node-RED на контроллере HI подписывается на этот топик.

    // msg.payload от Wi-Fi датчика
    

    {

    "value": 24.5,

    "unit": "°C",

    "source": "esp32-sensor-lr-01",

    "ts": 1678886400000,

    "meta": {

    "ip": "192.168.1.105",

    "rssi": -65

    }

    }

    2. Bluetooth Low Energy (BLE)

    Bluetooth Low Energy — протокол персональных сетей (PAN), оптимизированный для крайне низкого энергопотребления. Идеален для носимой электроники и локальных датчиков, взаимодействующих со шлюзом.

    Преимущества: Недостатки: Практическая реализация на платформе HI:

    Контроллер HI оснащается USB BLE-адаптером. С помощью специальной палитры Node-RED (например, `node-red-contrib-ble-central`) контроллер сканирует эфир, обнаруживает BLE-устройства (датчики открытия, термометры, кнопки), подключается к ним и считывает данные из их GATT-характеристик.

    ASCII-схема потока для чтения BLE-датчика:
    [Inject: Scan every 60s] --> [BLE Scan Node] --> [Function: Filter by Name/UUID] --> [BLE Connect & Read Node] --> [Function: Parse & Format] --> [MQTT Out]
    

    3. Zigbee

    Zigbee (стандарт IEEE 802.15.4) — популярный протокол для домашней и промышленной автоматизации, построенный на основе ячеистой (mesh) топологии.

    Преимущества: Недостатки: Практическая реализация на платформе HI:

    Контроллер HI выступает в роли хаба Zigbee-сети. В один из его USB-портов устанавливается Zigbee-координатор (например, Sonoff Zigbee 3.0 USB Dongle Plus, ConBee II). На контроллере разворачивается программное обеспечение `Zigbee2MQTT`, которое:

  • Управляет Zigbee-сетью (сопряжение устройств, маршрутизация).
  • Транслирует все события из Zigbee-сети (нажатие кнопки, срабатывание датчика) в сообщения MQTT.
  • Принимает команды из MQTT и передает их Zigbee-устройствам (включить лампу).
  • Таким образом, для Node-RED все Zigbee-устройства выглядят как обычные MQTT-сущности, что делает интеграцию тривиальной.

    ⚠️ Важно: Zigbee-координатор — это единая точка входа. Его отказ приведет к неработоспособности всей Zigbee-сети.

    4. LoRaWAN

    LoRaWAN (Long Range Wide Area Network) — сетевой протокол, использующий модуляцию LoRa для создания глобальных сетей с огромным радиусом действия и минимальным энергопотреблением.

    Преимущества: Недостатки: Практическая реализация на платформе HI:

    Архитектура LoRaWAN состоит из 4-х компонентов:

  • Конечные узлы (End Nodes): Датчики (протечки, счетчики воды, датчики парковки).
  • Шлюзы (Gateways): Принимают LoRa-пакеты от узлов и пересылают их по IP-сети на сервер.
  • Сетевой сервер (Network Server): Управляет сетью, дедуплицирует и расшифровывает пакеты.
  • Сервер приложений (Application Server): Обрабатывает данные. Роль сервера приложений выполняет контроллер HI.
  • Контроллер HI не подключается к LoRa-датчикам напрямую. Он получает данные от сетевого сервера (например, The Things Stack, ChirpStack) по протоколу MQTT.

    Схема потока данных:

    `Датчик --(LoRa)--> Шлюз --(IP)--> Network Server --(MQTT)--> Контроллер HI (Node-RED)`

    5. Сотовые технологии (GSM, NB-IoT, LTE-M)

    Это технологии, использующие инфраструктуру мобильных операторов.

    Практическая реализация на платформе HI:

    Контроллер оснащается GSM-модемом (опционально). В модем устанавливается SIM-карта. В Node-RED можно отправлять SMS-сообщения или устанавливать MQTT-соединение через мобильный интернет (требует настройки APN). Это идеальное решение для объектов без проводного интернета или для систем безопасности.

    Сравнительная таблица для инженера

    | Технология | Тип сети | Дальность | Энергопотребление | Пропускная способность | Типичная интеграция с HI |

    | :--- | :--- | :--- | :--- | :--- | :--- |

    | Wi-Fi | Звезда | ~50 м | Высокое | Очень высокая | Как транспорт для MQTT-сообщений от IP-устройств. |

    | BLE | Звезда/P2P | ~20 м | Очень низкое | Низкая | Через USB BLE-адаптер и Node-RED для сбора данных с локальных датчиков. |

    | Zigbee | Mesh | ~30 м (узел), до 200м (сеть) | Низкое | Низкая | Через USB Zigbee-координатор и `Zigbee2MQTT` для построения сети умного дома. |

    | LoRaWAN | Звезда из звезд | до 15 км | Сверхнизкое | Очень низкая | Через MQTT-интеграцию с внешним LoRaWAN Network Server. |

    | NB-IoT | Звезда | до 10 км | Очень низкое | Низкая | Через опциональный GSM/NB-IoT модем для связи на удаленных объектах. |

    | 5G | Звезда | Высокая | Среднее/Высокое | Экстремально высокая | Теоретически, как основной канал для промышленных объектов с робототехникой. |

    Фреймворк выбора технологии для проекта

    При проектировании системы на объекте, следуйте этому алгоритму:

  • Анализ требований к узлу:
  • * Нужно ли устройству автономное питание? (Да -> BLE, Zigbee, LoRaWAN, NB-IoT).

    * Какой объем данных нужно передавать и как часто? (Видео -> Wi-Fi/5G. Показания раз в час -> LoRaWAN/NB-IoT. Состояние раз в секунду -> Zigbee/Wi-Fi).

    * Каково расстояние от устройства до ближайшей точки подключения (контроллера/шлюза)? (Метры -> BLE/Zigbee. Десятки метров -> Wi-Fi. Километры -> LoRaWAN/NB-IoT).

    * Требуется ли управление в реальном времени? (Да -> Wi-Fi, Zigbee. Нет -> LoRaWAN).

  • Оценка инфраструктуры объекта:
  • * Есть ли стабильное Wi-Fi покрытие в местах установки устройств?

    * Есть ли покрытие сотовой сети?

    * Планируется ли установка LoRaWAN-шлюзов или можно использовать сеть городского оператора?

  • Планирование архитектуры интеграции:
  • * Определите, какие аппаратные модули (USB-адаптеры, модемы) потребуются для контроллера HI.

    * Выберите программное обеспечение (например, `Zigbee2MQTT`).

    * Спроектируйте MQTT-топики для взаимодействия между беспроводными шлюзами и ядром системы в Node-RED.

    ---

    Практические лаборатории

    COURSE-16-M02-LAB01: Мониторинг состояния Wi-Fi устройства через MQTT

    Задача: Настроить контроллер HI для приема данных от любого Wi-Fi устройства (например, смартфона с MQTT-клиентом или модуля ESP8266) и отображения его статуса в Node-RED. Оборудование:
  • Контроллер HI, подключенный к локальной сети.
  • Смартфон или ПК в той же сети с установленным MQTT-клиентом (например, MQTT Explorer).
  • Порядок выполнения:
  • Убедитесь, что на контроллере HI запущен MQTT-брокер (стандартная конфигурация).
  • В Node-RED создайте новый поток.
  • Добавьте узел `mqtt in`. Настройте его на подключение к локальному брокеру (`localhost:1883`) и подпишите на топик `hi/devices/wifi-test-01/status`.
  • Соедините выход узла `mqtt in` с узлом `debug`.
  • Разверните поток.
  • С помощью MQTT-клиента на смартфоне/ПК подключитесь к IP-адресу контроллера HI (порт 1883).
  • Опубликуйте в топик `hi/devices/wifi-test-01/status` сообщение (в формате JSON) следующего содержания: `{"status": "online", "rssi": -55}`.
  • Убедитесь, что в окне отладки Node-RED появилось полученное сообщение.
  • Усложнение: Добавьте узел `function` для валидации входящего JSON и узел `status` для отображения статуса "online" и уровня сигнала RSSI под узлом `mqtt in`.
  • ASCII-схема потока:
    [mqtt in: hi/devices/wifi-test-01/status] --> [function: Validate & Format] --> [debug: msg.payload]
    

    |

    +--> [status: Set node status]

    Рубрика оценивания (10 баллов):

    COURSE-16-M02-LAB02: Управление реле контроллера с помощью беспроводной Zigbee-кнопки

    Задача: Настроить систему так, чтобы нажатие на беспроводную Zigbee-кнопку переключало состояние одного из реле на контроллере HI. Оборудование:
  • Контроллер HI с установленным Zigbee-координатором и `Zigbee2MQTT`.
  • Беспроводная Zigbee-кнопка (например, Aqara Wireless Mini Switch).
  • Порядок выполнения:
  • Через веб-интерфейс `Zigbee2MQTT` выполните сопряжение (pairing) с кнопкой.
  • В `Zigbee2MQTT` убедитесь, что при нажатии на кнопку приходят сообщения. Запомните MQTT-топик этой кнопки (например, `zigbee2mqtt/My_Button`).
  • В Node-RED добавьте узел `mqtt in` и подпишите его на топик вашей кнопки.
  • Подключите к нему `debug` и посмотрите структуру сообщения. Обычно оно содержит поле `action` со значением `single`, `double` и т.д.
  • Добавьте узел `switch`, который будет фильтровать сообщения, пропуская только те, у которых `msg.payload.action == "single"`.
  • Добавьте узел `function`, который будет реализовывать логику переключения (toggle). Он должен считывать текущее состояние реле из контекста (`flow.relay_state`), инвертировать его и сохранять обратно.
  • Добавьте узел `rpi gpio out` (или другой узел управления реле), настроенный на нужный выход контроллера. Подайте на него результат из узла `function`.
  • Разверните и протестируйте. Каждое нажатие на кнопку должно менять состояние реле (щелчок) и светодиода на панели контроллера.
  • ASCII-схема потока:
    [mqtt in: zigbee2mqtt/My_Button] --> [json] --> [switch: msg.payload.action == 'single'] --> [function: Toggle State] --> [rpi gpio out: Relay 1]
    
    Рубрика оценивания (10 баллов):

    ---

    Тест для самопроверки (COURSE-16-M02-QUIZ)

  • Какая технология лучше всего подходит для мониторинга датчиков протечки в подвале многоквартирного дома, где нет Wi-Fi, а устройства должны работать от батареи 5 лет?
  • a) Wi-Fi

    b) BLE

    c) LoRaWAN

    d) 5G

  • Инженер устанавливает 50 датчиков движения и 30 умных ламп в трехэтажном коттедже. Какая технология обеспечит надежное покрытие и самовосстанавливающуюся сеть?
  • a) BLE

    b) Zigbee

    c) LoRaWAN

    d) Wi-Fi

  • Роль Zigbee-координатора на платформе HI обычно выполняет:
  • a) Сам контроллер HI без дополнительного оборудования.

    b) Специализированный USB-адаптер (стик).

    c) Любая умная лампа в сети.

    d) Облачный сервис.

  • При интеграции LoRaWAN-датчиков контроллер HI подключается напрямую к:
  • a) Датчику по радиоканалу LoRa.

    b) LoRaWAN-шлюзу по IP-сети.

    c) LoRaWAN Network Server'у по протоколу MQTT.

    d) Сотовому оператору.

  • Высокое энергопотребление является главным недостатком технологии:
  • a) BLE

    b) Zigbee

    c) Wi-Fi

    d) LoRaWAN

  • Что такое `Zigbee2MQTT`?
  • a) Аппаратный модуль для контроллера.

    b) Программный мост, транслирующий события Zigbee-сети в MQTT-сообщения.

    c) Стандарт беспроводной связи.

    d) Облачная платформа для управления Zigbee-устройствами.

  • Для отправки SMS-уведомления при аварии на объекте без интернета, контроллер HI должен быть оснащен:
  • a) Zigbee-координатором.

    b) BLE-адаптером.

    c) GSM-модемом.

    d) LoRaWAN-шлюзом.

  • Mesh-топология — это ключевое преимущество технологии:
  • a) Wi-Fi

    b) BLE

    c) Zigbee

    d) LoRaWAN

  • Инженер видит в логах `Zigbee2MQTT` сообщение `LQI: 25`. Что это означает?
  • a) Устройство работает идеально.

    b) Уровень заряда батареи 25%.

    c) Низкое качество сигнала (Link Quality Indicator), возможны проблемы со связью.

    d) Устройству присвоен адрес 25.

  • Какая технология обеспечивает наименьшие задержки (latency), что критично для управления промышленными роботами?
  • a) LoRaWAN

    b) NB-IoT

    c) Zigbee

    d) 5G

    (Ответы: 1-c, 2-b, 3-b, 4-c, 5-c, 6-b, 7-c, 8-c, 9-c, 10-d)

    ---

    Мини-runbook: "Что делать, если не работает?"

    📋 Если не подключается Wi-Fi устройство (ESP, умная розетка):

  • Проверить сеть: Убедитесь, что контроллер и устройство находятся в одной IP-подсети. Попробуйте `ping` IP-адреса устройства с контроллера.
  • Проверить MQTT: Откройте `MQTT Explorer` и проверьте, подключается ли устройство к брокеру. Проверьте правильность IP-адреса брокера, порта (1883), логина/пароля в настройках устройства.
  • Проверить файрвол: Убедитесь, что роутер или файрвол не блокирует порт 1883.
  • 📋 Если не сопрягается или "отваливается" Zigbee-устройство:

  • Проверить `Zigbee2MQTT`: Откройте веб-интерфейс `Zigbee2MQTT`. Убедитесь, что сервис запущен, и координатор определился.
  • Разрешить сопряжение: Нажмите кнопку "Permit join (All)" в интерфейсе `Zigbee2MQTT` перед тем, как переводить устройство в режим сопряжения.
  • Проверить батарею: Если устройство работало и перестало, в первую очередь замените батарейку.
  • Проверить расстояние и LQI: В интерфейсе `Zigbee2MQTT` посмотрите на качество связи (LQI). Если LQI < 50, устройство находится слишком далеко или за массивными препятствиями. Добавьте Zigbee-роутер (умную розетку, лампу) между координатором и проблемным устройством.
  • Проверить USB-порт: Убедитесь, что Zigbee-стик надежно вставлен в USB-порт. Использование короткого USB-удлинителя может помочь уменьшить помехи от самого контроллера.
  • 📋 Если не приходят данные от LoRaWAN-датчика:

  • Проверить шлюз: В консоли вашего Network Server'а (например, The Things Stack) убедитесь, что шлюз находится в статусе "connected".
  • Проверить данные на шлюзе: Посмотрите в логах шлюза (Live data), приходят ли на него пакеты от вашего датчика. Если нет — проблема в датчике или расстоянии.
  • Проверить ключи: Убедитесь, что `DevEUI`, `AppEUI` и `AppKey` в настройках устройства на Network Server'е точно совпадают с теми, что прошиты в датчике. Ошибка в одном символе не позволит устройству пройти активацию (OTAA).
  • Проверить MQTT-интеграцию: В настройках Network Server'а проверьте, что MQTT-интеграция активна и указывает на правильный адрес брокера (контроллера HI) и корректные топики.