Введение
MQTT (Message Queuing Telemetry Transport) — это лёгкий протокол обмена сообщениями, стандарт в мире IoT. Он используется в умных домах (датчики температуры, влажности, освещения), промышленности (телеметрия станков, контроль климата), логистике (GPS-трекеры) и энергетике (счётчики). Брокеры Mosquitto (Eclipse) и EMQX (Erlang/OTP) — самые популярные реализации MQTT. Mosquitto — лёгкий, open-source, идеален для небольших систем. EMQX — кластеризуемый, поддерживает миллионы соединений, используется в промышленных IoT-платформах.
Подключение MQTT-брокера к AI-агенту ASI Biont превращает обычный канал данных в интеллектуальную систему управления. AI не просто собирает телеметрию — он анализирует тренды, выявляет аномалии, предсказывает отказы и автоматически принимает решения: включить вентиляцию, отправить уведомление в Telegram, изменить уставку регулятора. Всё это без написания кода вручную — достаточно описать задачу в чате.
Как ASI Biont подключается к MQTT-брокеру
ASI Biont использует библиотеку paho-mqtt в sandbox-окружении execute_python. Пользователь указывает в чате параметры подключения: адрес брокера (IP или домен), порт (по умолчанию 1883 для TCP, 8883 для TLS), логин и пароль (если требуется), а также топики для подписки и публикации. AI-агент генерирует Python-скрипт, который выполняет подключение, подписывается на топики, обрабатывает входящие сообщения и при необходимости публикует команды.
Важно: скрипт выполняется в облаке ASI Biont (Railway), поэтому брокер должен быть доступен из интернета. Если брокер работает в локальной сети, используйте Hardware Bridge (bridge.py на ПК пользователя) — он соединяется с облаком через HTTP long polling и передаёт MQTT-сообщения локально.
Пошаговая интеграция
- Пользователь описывает задачу в чате. Например: «Подключись к MQTT-брокеру на 192.168.1.100:1883, логин admin, пароль secret. Подпишись на топик sensors/temperature, публикуй команды в топик actuators/relay. Если температура выше 30°C, включи реле.»
- AI-агент генерирует Python-код, используя paho-mqtt, и выполняет его в sandbox.
- Скрипт подключается к брокеру, подписывается на топик, слушает сообщения, анализирует данные и публикует команды.
- Результат: AI управляет IoT-устройствами в реальном времени.
Пример: Мониторинг температуры и управление реле через MQTT
Рассмотрим конкретный сценарий: ESP32 с датчиком DHT22 передаёт температуру и влажность по MQTT на брокер Mosquitto. ASI Biont подписывается на топик sensors/dht22, анализирует данные и при превышении порога (например, 30°C) публикует команду ON в топик actuators/relay — реле включает вентилятор.
Код на стороне ESP32 (MicroPython)
import network
import time
import dht
from machine import Pin
from umqtt.simple import MQTTClient
# Настройки Wi-Fi
SSID = "your_wifi"
PASSWORD = "your_password"
# Настройки MQTT
BROKER = "192.168.1.100"
CLIENT_ID = "esp32_dht22"
TOPIC_TEMP = "sensors/dht22"
# Инициализация датчика
dht_pin = Pin(4, Pin.IN)
sensor = dht.DHT22(dht_pin)
# Подключение к Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
time.sleep(0.5)
print("Connected to Wi-Fi")
# Подключение к MQTT
client = MQTTClient(CLIENT_ID, BROKER)
client.connect()
print("Connected to MQTT broker")
while True:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
payload = '{"temperature": %0.1f, "humidity": %0.1f}' % (temp, hum)
client.publish(TOPIC_TEMP, payload)
print("Published:", payload)
time.sleep(10)
Код, который генерирует AI-агент ASI Biont (выполняется в sandbox)
import paho.mqtt.client as mqtt
import json
import time
# Параметры подключения (указывает пользователь)
BROKER = "192.168.1.100"
PORT = 1883
USERNAME = "admin"
PASSWORD = "secret"
TOPIC_SUB = "sensors/dht22"
TOPIC_PUB = "actuators/relay"
THRESHOLD_TEMP = 30.0
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe(TOPIC_SUB)
def on_message(client, userdata, msg):
try:
data = json.loads(msg.payload.decode())
temp = data.get("temperature")
if temp is not None:
print(f"Temperature: {temp}°C")
if temp > THRESHOLD_TEMP:
client.publish(TOPIC_PUB, "ON")
print("Published: ON")
else:
client.publish(TOPIC_PUB, "OFF")
print("Published: OFF")
except Exception as e:
print("Error:", e)
client = mqtt.Client()
client.username_pw_set(USERNAME, PASSWORD)
client.on_connect = on_connect
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.loop_start()
# Держим соединение 30 секунд (таймаут sandbox)
time.sleep(30)
client.loop_stop()
client.disconnect()
Результат
- ESP32 публикует температуру каждые 10 секунд.
- ASI Biont анализирует данные в реальном времени.
- При превышении 30°C AI публикует команду
ONв топикactuators/relay— ESP32 (или другое устройство) включает реле. - Все уведомления и логи доступны в чате.
Почему это выгодно
- Не нужно писать код вручную. AI-агент генерирует скрипт за секунды, под любые параметры.
- Любой брокер. Mosquitto, EMQX, HiveMQ, AWS IoT Core — поддержка через paho-mqtt.
- Гибкие сценарии. AI может не только сравнивать с порогом, но и анализировать тренды, предсказывать отказы, отправлять данные в Telegram, логировать в базу данных.
- Масштабируемость. Подключите сотни устройств — AI обработает все потоки.
Заключение
Интеграция MQTT-брокера с ASI Biont — это готовое решение для умного дома, промышленного IoT и телеметрии. Вам не нужно устанавливать панели управления или писать сложные сценарии. Просто опишите задачу в чате, и AI-агент подключится к вашему брокеру, начнёт сбор данных и автоматическое управление.
Попробуйте интеграцию прямо сейчас на asibiont.com. Подключите свой Mosquitto или EMQX и убедитесь, насколько просто автоматизировать IoT с AI.
Комментарии