Введение
Современные города всё активнее внедряют IoT-решения: датчики качества воздуха, шума, освещённости, температуры и влажности устанавливают на столбах, остановках и зданиях. Однако сбор данных — лишь половина дела. Чтобы превратить сырые показания в осмысленные действия (например, отправить оповещение при превышении уровня CO₂ или автоматически включить вентиляцию), нужна интеллектуальная обработка в реальном времени. AI-агент ASI Biont решает эту задачу: он подключается к любому Smart City sensor, анализирует данные и управляет исполнительными устройствами через диалог в чате. В этой статье мы разберём, как подключить датчики качества воздуха (например, SDS011, MQ-135, BME280) к ASI Biont через MQTT, настроить дашборды и автоматизировать оповещения — без единой строки кода, написанной вручную.
Что такое Smart City sensors и зачем их подключать к AI-агенту
Smart City sensors — это распределённые датчики, измеряющие параметры окружающей среды:
- Качество воздуха: PM2.5, PM10, CO₂, NO₂, O₃, летучие органические соединения (VOC).
- Шум: уровень звукового давления в дБА.
- Освещённость: люксы (LUX).
- Погода: температура, влажность, атмосферное давление.
Эти датчики обычно работают на микроконтроллерах (ESP32, Arduino) и передают данные по MQTT, LoRaWAN или Wi-Fi. Без AI-агента вам нужно:
- Написать бэкенд для сбора данных (Node-RED, Python-скрипт).
- Настроить базу данных (InfluxDB, PostgreSQL).
- Разработать дашборды (Grafana).
- Реализовать логику оповещений и автоматизации.
ASI Biont заменяет весь этот стек: AI-агент сам пишет Python-код для подключения, анализа и управления. Вы просто описываете задачу в чате.
Как ASI Biont подключается к Smart City sensors
ASI Biont использует MQTT — самый распространённый протокол для IoT-устройств. MQTT лёгкий, асинхронный, поддерживает publish/subscribe и работает даже при нестабильной сети. Датчики публикуют данные в топики вида city/sensor1/temperature, а AI-агент подписывается на эти топики через библиотеку paho-mqtt.
Архитектура подключения:
[ESP32 + датчик] → MQTT publish → [MQTT Broker (Mosquitto/HiveMQ)] → [ASI Biont (execute_python с paho-mqtt)] → [Telegram / Dashboard / Actuator]
Пользователь передаёт в чат параметры брокера: IP, порт, логин/пароль (если есть), топики. AI-агент генерирует Python-скрипт, который выполняется в sandbox-окружении ASI Biont (Railway).
Почему MQTT, а не HTTP или Modbus?
| Протокол | Плюсы | Минусы | Применимость для Smart City |
|---|---|---|---|
| MQTT | Низкое энергопотребление, поддержка QoS, асинхронность | Требуется брокер | Идеален для распределённых датчиков |
| HTTP/REST | Простота, не нужен брокер | Высокое энергопотребление, синхронный | Для редких опросов (раз в час) |
| Modbus TCP | Промышленная надёжность | Тяжеловесный, не для батареек | Для стационарных PLC |
| LoRaWAN | Дальняя связь, низкое энергопотребление | Низкая пропускная способность | Для сверхдальних датчиков |
В большинстве Smart City проектов используют MQTT — он поддерживается ESP32, Arduino и одноплатниками.
Конкретный сценарий: датчик качества воздуха + MQTT + ASI Biont
Рассмотрим реальный пример: у вас есть ESP32 с датчиком SDS011 (PM2.5/PM10) и BME280 (температура, влажность, давление). ESP32 передаёт данные в MQTT каждые 60 секунд.
Шаг 1. Пользователь описывает задачу в чате ASI Biont
«Подключись к MQTT-брокеру по адресу 192.168.1.100:1883, топик city/air/001. Получай данные каждые 60 секунд, анализируй: если PM2.5 > 35 мкг/м³ — отправь уведомление в Telegram, если > 100 — включи сирену через MQTT publish на топик city/actuator/siren с сообщением ON. Веди лог в CSV.»
Шаг 2. AI-агент генерирует и выполняет код
ASI Biont пишет Python-скрипт с использованием paho-mqtt, requests (Telegram API) и csv. Пример кода (упрощённый):
import paho.mqtt.client as mqtt
import requests
import csv
import json
from datetime import datetime
# Настройки
BROKER = "192.168.1.100"
PORT = 1883
TOPIC = "city/air/001"
TELEGRAM_TOKEN = "your_token"
CHAT_ID = "your_chat_id"
# Обработчик входящих сообщений
def on_message(client, userdata, msg):
data = json.loads(msg.payload.decode())
pm25 = data.get("pm25", 0)
timestamp = datetime.now().isoformat()
# Логирование в CSV
with open("air_log.csv", "a", newline="") as f:
writer = csv.writer(f)
writer.writerow([timestamp, pm25, data.get("pm10"), data.get("temperature")])
# Анализ и оповещение
if pm25 > 35:
msg_text = f"⚠️ PM2.5 превышен: {pm25} мкг/м³"
requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": msg_text})
if pm25 > 100:
# Включение сирены через MQTT publish
client.publish("city/actuator/siren", "ON")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC)
client.loop_forever() # sandbox выполнит с таймаутом 30 сек, см. примечание
Важное замечание: loop_forever() в sandbox ASI Biont не сработает из-за таймаута 30 секунд. В реальной эксплуатации AI-агент предлагает запустить скрипт на локальном компьютере или одноплатнике (Raspberry Pi) через SSH или Hardware Bridge. В sandbox AI выполняет однократный сбор данных (subscribe одного сообщения) или использует loop_start() в фоновом потоке (но потоки запрещены). Поэтому для постоянного мониторинга AI-агент рекомендует запустить скрипт на Raspberry Pi через execute_python с paramiko.
Шаг 3. AI-агент подключается по SSH к Raspberry Pi
Если у вас есть Raspberry Pi рядом с датчиком, AI-агент может выполнить скрипт на нём:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.50", username="pi", password="raspberry")
# Загружаем скрипт на Raspberry Pi
with open("air_monitor.py", "r") as f:
script = f.read()
stdin, stdout, stderr = ssh.exec_command(f"python3 -c \"{script}\"")
print(stdout.read().decode())
ssh.close()
После этого скрипт работает постоянно на Raspberry Pi, а ASI Biont получает данные через MQTT.
Автоматизация без кода: настройка триггеров и дашбордов
ASI Biont не требует писать код вручную. Все настройки выполняются через естественный язык в чате:
- Создание дашборда: «Покажи график PM2.5 за последние 24 часа» — AI генерирует matplotlib-график и выводит его в чат.
- Настройка оповещений: «Отправляй в Telegram, если влажность > 80%» — AI добавляет условие в скрипт.
- Управление исполнителями: «Если CO₂ > 1000 ppm, включи вытяжку через MQTT publish на топик city/actuator/fan».
Пример диалога:
Пользователь: «Покажи последние 10 значений температуры с датчика на Проспекте Мира.»
AI: Выполняю запрос... Вот данные:
| Время | Температура (°C) |
|-------|------------------|
| 09:45 | 22.3 |
| 09:44 | 22.1 |
...
Почему это выгодно
- Скорость интеграции: Вместо недель разработки — минуты диалога с AI.
- Гибкость: Подключите любой протокол (MQTT, HTTP, Modbus, OPC-UA) без ожидания обновлений платформы.
- Экономия: Не нужно нанимать команду разработчиков для каждого нового датчика.
- Открытость: Исходный код генерируется на Python — вы всегда можете его модифицировать.
Заключение
Smart City sensors — это глаза и уши современного города, но без AI они лишь генерируют сырые данные. ASI Biont превращает их в интеллектуальную систему управления: анализирует тренды, оповещает о нарушениях, автоматически включает исполнительные устройства. Всё, что нужно — описать задачу в чате. Попробуйте интеграцию уже сегодня на asibiont.com и сделайте ваш город умнее.
Комментарии