Введение: зачем объединять LoRaWAN и AI?
LoRaWAN (Long Range Wide Area Network) — это протокол, который позволяет передавать данные от IoT-датчиков на десятки километров при минимальном энергопотреблении. Датчики температуры, влажности, давления, уровня жидкости — всё это работает годами от одной батарейки. Но что делать с тысячами показаний, которые приходят каждые 15 минут от сотен устройств? Анализировать вручную невозможно, а стандартные облачные платформы часто не умеют гибко настраивать логику обработки.
Здесь и приходит AI-агент ASI Biont. Он подключается к LoRaWAN-шлюзу через COM-порт, читает данные с подключенных датчиков, анализирует тренды, автоматически отправляет уведомления в Telegram при выходе за пределы нормы и даже управляет исполнительными механизмами (например, клапанами или насосами). В этой статье мы разберём конкретный сценарий: подключение LoRaWAN-шлюза к ASI Biont через Hardware Bridge и настройку мониторинга температуры на складе.
Как ASI Biont подключается к LoRaWAN-устройствам?
Для интеграции LoRaWAN-устройств используется Hardware Bridge — приложение bridge.py, которое пользователь запускает на своём ПК (Windows/Linux/macOS). Bridge подключается к ASI Biont через WebSocket (это единственный канал связи) и обеспечивает доступ к COM-портам. LoRaWAN-шлюзы (например, Dragino LG01, RAK 7249, Multitech Conduit) часто имеют последовательный интерфейс (UART) для подключения к компьютеру.
AI-агент отправляет команды через инструмент industrial_command с протоколом serial://. Bridge получает команду, отправляет hex-строку в COM-порт шлюза и сразу читает ответ. Например, команда serial_write_and_read(data="48454c500a") отправляет строку "HELP\n" (0x48454c500a) и возвращает ответ шлюза. Подробнее о bridge: скачать его можно из дашборда ASI Biont (Devices → Create API Key).
Конкретный сценарий: мониторинг температуры на складе
Допустим, у вас есть LoRaWAN-датчик температуры (например, Dragino LHT65 или Milesight EM500) и шлюз (RAK 7249), подключенный к ПК через USB-UART-адаптер. Шлюз работает на COM3 с baud rate 115200. Датчик отправляет данные каждые 10 минут в формате JSON: {"temp": 24.5, "hum": 65.2}.
Шаг 1: Запуск bridge.py
Пользователь скачивает bridge.py из дашборда ASI Biont, устанавливает зависимости:
pip install pyserial requests websockets
Затем запускает bridge с токеном и указанием порта:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200 --rate=10
Флаг --rate=10 ограничивает частоту запросов до 10 в секунду, чтобы не перегружать шлюз.
Шаг 2: Пользователь описывает задачу в чате
Пользователь пишет AI-агенту: "Подключись к моему LoRaWAN-шлюзу на COM3, читай данные с датчика температуры каждые 5 минут, если температура превышает 30°C или опускается ниже 5°C, отправляй уведомление в Telegram".
AI-агент получает задачу и генерирует Python-скрипт, который будет выполняться в sandbox-окружении ASI Biont (через execute_python). Скрипт использует requests для отправки уведомлений в Telegram и pyserial через bridge (но код для bridge не выполняется напрямую — AI отправляет команды через industrial_command).
Шаг 3: AI пишет и выполняет код
Пример кода, который генерирует AI (выполняется в sandbox, а bridge обрабатывает команды serial_write_and_read):
import json
import time
import requests
TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "ваш_chat_id"
def send_telegram(message):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": CHAT_ID, "text": message})
# AI отправляет команду на чтение данных с LoRaWAN-шлюза
# industrial_command(protocol='serial', command='serial_write_and_read', data='524541445f444154410a') # READ_DATA\n
# Предположим, ответ: {"temp": 31.2, "hum": 70.0}
response = '{"temp": 31.2, "hum": 70.0}'
data = json.loads(response)
temp = data["temp"]
hum = data["hum"]
if temp > 30:
send_telegram(f"⚠️ Температура превысила норму: {temp}°C")
elif temp < 5:
send_telegram(f"❄️ Температура ниже нормы: {temp}°C")
else:
print(f"Температура в норме: {temp}°C")
AI отправляет команду serial_write_and_read каждые 5 минут с помощью industrial_command, анализирует ответ и при необходимости отправляет уведомление. Весь процесс автоматизирован: пользователю не нужно писать код вручную.
Почему это выгодно?
| Критерий | Ручная интеграция | С ASI Biont |
|---|---|---|
| Время настройки | Часы или дни | 5–10 минут |
| Необходимость программирования | Требуется знание Python, протоколов | Описываете задачу на русском |
| Гибкость | При изменении датчика — переписывать код | AI адаптируется под любое устройство |
| Масштабирование | Добавление новых датчиков — ручная работа | AI сам подключает и настраивает новые устройства |
Подводные камни и как их избежать
- Неправильный baud rate. LoRaWAN-шлюзы часто работают на 9600 или 115200. Проверьте документацию шлюза. Если bridge не получает ответа, AI может отправить команду
HELP— если ответа нет, попробуйте другой baud rate. - Формат данных. Некоторые шлюзы требуют команды в hex-формате (например,
0x01 0x03 0x00 0x00 0x00 0x01 0x84 0x0Aдля Modbus RTU). AI автоматически конвертирует команды в hex, но если шлюз ожидает ASCII, используйте escape-последовательности (например,READ_DATA\n). - Конфликт портов. На Windows COM3 может быть занят другим приложением. Bridge использует CancelIoEx + PurgeComm для очистки буферов, но лучше закрыть другие программы (терминалы, IDE).
- Таймаут выполнения. Sandbox execute_python имеет таймаут 30 секунд. Для длительных операций (например, непрерывный мониторинг) используйте механизм периодических команд через
industrial_command, а не бесконечный цикл.
Заключение
Интеграция LoRaWAN-устройств с AI-агентом ASI Biont через COM-порт — это мощный инструмент для удалённого мониторинга и автоматизации. Вы получаете возможность:
- Читать данные с любых LoRaWAN-датчиков (температура, влажность, давление, вибрация, уровень жидкости).
- Автоматически анализировать тренды и аномалии.
- Отправлять уведомления в Telegram, Slack, email или другие каналы.
- Управлять исполнительными устройствами (например, включать вентиляцию при превышении температуры).
Всё это — без программирования: достаточно описать задачу на русском языке в чате с AI-агентом. Попробуйте интеграцию на asibiont.com — скачайте bridge, подключите ваш LoRaWAN-шлюз и начните мониторинг за 5 минут.
Статья написана на основе официальной документации ASI Biont и практического опыта интеграции LoRaWAN-устройств.
Комментарии