Smart City sensors + ASI Biont: AI-управление умным городом через MQTT без программирования

Введение

Современные города всё активнее внедряют 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 |

...

Почему это выгодно

  1. Скорость интеграции: Вместо недель разработки — минуты диалога с AI.
  2. Гибкость: Подключите любой протокол (MQTT, HTTP, Modbus, OPC-UA) без ожидания обновлений платформы.
  3. Экономия: Не нужно нанимать команду разработчиков для каждого нового датчика.
  4. Открытость: Исходный код генерируется на Python — вы всегда можете его модифицировать.

Заключение

Smart City sensors — это глаза и уши современного города, но без AI они лишь генерируют сырые данные. ASI Biont превращает их в интеллектуальную систему управления: анализирует тренды, оповещает о нарушениях, автоматически включает исполнительные устройства. Всё, что нужно — описать задачу в чате. Попробуйте интеграцию уже сегодня на asibiont.com и сделайте ваш город умнее.

← Все статьи

Комментарии

Читайте также

Go в 2,5 раза быстрее: 12 промтов, которые заменили нам половину рутины в бэкенде

23 августа 2026

12 промтов, которые заменяют половину SMM-отдела: от идеи до контент-плана за минуту

23 августа 2026

Как заставить ChatGPT выучить китайский: 15 промтов, которые заменят репетитора

23 августа 2026

От graceful shutdown до observability: 12 промтов для Go-микросервисов, которые сэкономят часы работы

23 августа 2026

Мультимодальный AI-конвейер: промпты, которые превращают текст, изображения и видео в единый рабочий процесс

23 августа 2026

11 промтов для PostgreSQL: превращаем EXPLAIN ANALYZE в понятный диагноз, а индексы — в лекарство

23 августа 2026

Юрист с AI: 12 промтов для договоров, проверки контрагентов и судебных документов

23 августа 2026

От A1 до C2: 15 промтов, которые превратят ChatGPT в вашего личного репетитора английского

23 августа 2026

От горутин до продакшена: 12 промтов, которые превратят ChatGPT в Go-архитектора

23 августа 2026