Введение
Газовые сенсоры серии MQ- (MQ-2, MQ-5, MQ-135, MQ-7) — одни из самых распространённых датчиков в DIY-проектах, умном доме и промышленных системах мониторинга. Они измеряют концентрацию метана, пропана, дыма, CO₂, аммиака и других газов. Проблема в том, что ручной мониторинг показаний требует постоянного внимания, а написание скриптов для автоматизации (уведомления, включение вентиляции, отключение газа) занимает часы и требует знания языков программирования. ASI Biont — AI-агент, который подключается к любым MQ- сенсорам через MQTT, REST API или COM-порт за секунды. В этой статье разберём, как это работает на практике.
Как ASI Biont подключается к газовым сенсорам
ASI Biont поддерживает несколько способов интеграции. Для MQ-* сенсоров оптимальны два:
| Способ | Описание | Когда использовать |
|---|---|---|
| MQTT | Сенсор подключён к ESP32/Arduino, который публикует данные в топик MQTT-брокера (например, Mosquitto). AI подписывается на топик через execute_python с библиотекой paho-mqtt | Если у вас уже развёрнут MQTT-брокер и ESP32 с прошивкой |
| COM-порт (Hardware Bridge) | Сенсор подключён к Arduino/ESP32 через UART, который соединён с ПК. Пользователь запускает bridge.py, AI отправляет команды через industrial_command | Для быстрых экспериментов без настройки сети |
| HTTP API | ESP32 поднимает простой HTTP-сервер с эндпоинтом /sensor. AI опрашивает его через execute_python с aiohttp | Когда сенсор используется как веб-сервер |
Почему MQTT — лучший выбор
MQTT — лёгкий протокол для IoT, идеально подходит для газовых сенсоров, так как: не требует постоянного соединения, поддерживает QoS (гарантия доставки), работает через NAT и фаерволы. Большинство прошивок для ESP32 с MQ-* сенсорами уже включают MQTT-клиент.
Реальный сценарий: умная вентиляция и уведомления в Telegram
Задача: ESP32 с сенсором MQ-135 измеряет качество воздуха (CO₂, NH₃, бензол). При превышении порога CO₂ > 800 ppm AI отправляет уведомление в Telegram и включает вытяжку через реле.
Шаг 1. Подключаем ESP32 к MQTT-брокеру
Пользователь описывает задачу в чате ASI Biont:
«У меня ESP32 с MQ-135 на пине A0. Он публикует данные в топик home/air/quality раз в 5 секунд. MQTT-брокер — test.mosquitto.org, порт 1883. Подпишись и при превышении CO₂ > 800 ppm отправь Telegram-уведомление на мой chat_id: 123456789»
Шаг 2. AI генерирует код интеграции
ASI Biont выполняет Python-скрипт в sandbox-окружении (через execute_python):
import paho.mqtt.client as mqtt
import requests
import json
TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "123456789"
CO2_THRESHOLD = 800
def on_message(client, userdata, msg):
try:
data = json.loads(msg.payload.decode())
co2 = data.get("co2", 0)
if co2 > CO2_THRESHOLD:
text = f"⚠️ Превышение CO₂: {co2} ppm! Включаю вентиляцию."
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": text}
)
# Публикуем команду на включение реле
client.publish("home/actuators/fan", "ON")
except Exception as e:
print(f"Ошибка: {e}")
client = mqtt.Client()
client.on_message = on_message
client.connect("test.mosquitto.org", 1883, 60)
client.subscribe("home/air/quality")
client.loop_start() # не блокирует выполнение
# Скрипт завершится через 30 секунд (таймаут sandbox), но loop_start успеет обработать несколько сообщений
Важно: execute_python имеет таймаут 30 секунд. Для долгоживущих подписок нужно использовать industrial_command с MQTT-протоколом (см. ниже).
Шаг 3. Альтернатива — через industrial_command
AI также может использовать встроенный инструмент industrial_command для MQTT:
industrial_command(
protocol='mqtt',
command='subscribe',
params={
'broker': 'test.mosquitto.org',
'port': 1883,
'topic': 'home/air/quality',
'condition': 'co2 > 800',
'action': 'telegram:chat_id=123456789'
}
)
Этот способ не требует написания кода — AI сам обрабатывает условие и действие.
Подключение через COM-порт (Hardware Bridge)
Если у вас нет сети Wi-Fi на ESP32, используйте Hardware Bridge:
- Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge)
- Запустите:
pip install pyserial requests websockets python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200 - В чате напишите: «Подключись к COM3, baud 115200, прочитай данные с MQ-135 на A0 каждые 10 секунд. Если CO₂ > 800 ppm — включи реле на D2»
AI отправит команду:
industrial_command(
protocol='serial',
command='serial_write_and_read',
params={'data': '524541440a'} # "READ\n" в hex
)
Bridge прочитает ответ от Arduino, AI его распарсит и выполнит действие.
Пример прошивки для ESP32 с MQTT
Для полноты картины — минимальный код для ESP32 (Arduino IDE):
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "ваш_SSID";
const char* password = "ваш_пароль";
const char* mqtt_server = "test.mosquitto.org";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
client.setServer(mqtt_server, 1883);
}
void loop() {
if (!client.connected()) client.connect("ESP32_MQ135");
client.loop();
int sensorValue = analogRead(36); // A0 на ESP32 — GPIO36
float voltage = sensorValue * (3.3 / 4095.0);
// Упрощённая калибровка — для реальной используйте библиотеку
float co2 = voltage * 100;
String payload = "{\"co2\":" + String(co2) + "}";
client.publish("home/air/quality", payload.c_str());
delay(5000);
}
Другие сценарии автоматизации
- MQ-2 (метан/пропан): AI включает газовый клапан и отправляет SMS через Twilio при утечке
- MQ-7 (CO): AI запускает вытяжку и вызывает службу газа через HTTP API
- MQ-135 (качество воздуха): AI строит график показаний через matplotlib и отправляет в Telegram
Почему это выгодно
- Без кода: Пользователь просто описывает задачу — AI пишет и выполняет код
- Универсальность: ASI Biont подключается к любому устройству через execute_python — не нужно ждать поддержки новых сенсоров
- Экономия времени: Интеграция занимает минуты вместо часов
- Гибкость: Можно комбинировать с другими устройствами — например, при утечке газа отключать свет через умную розетку
Заключение
Газовые сенсоры MQ-* — отличный старт для автоматизации безопасности. С ASI Biont вы получаете готового AI-помощника, который сам подключается к вашему оборудованию, анализирует данные и выполняет действия. Никаких сложных скриптов — просто опишите задачу в чате.
Попробуйте интеграцию на asibiont.com — подключите свой MQ-135 за 5 минут.
Комментарии