Введение
Газовые сенсоры семейства MQ-* (MQ-2, MQ-7, MQ-135 и др.) — одни из самых распространённых датчиков в IoT-проектах. Они позволяют детектировать метан, пропан, угарный газ, дым, аммиак и другие опасные вещества. Однако в одиночку датчик — лишь источник аналогового сигнала. Чтобы превратить его в интеллектуальную систему оповещения и автоматизации, нужна связка с AI-агентом, который сможет анализировать данные в реальном времени, выявлять нештатные ситуации и управлять исполнительными устройствами.
ASI Biont — AI-агент, который подключается к любому оборудованию через диалог в чате. Вам не нужно писать код с нуля — достаточно описать задачу, и AI сам сгенерирует и выполнит код интеграции. Для газовых сенсоров это означает:
- Мгновенное подключение через MQTT, COM-порт или SSH;
- AI-анализ трендов и аномалий;
- Автоматическая отправка команд на вентиляцию, сигнализацию, электромагнитные клапаны.
Какой способ подключения выбрать?
MQ-сенсоры чаще всего используются в паре с микроконтроллерами (ESP32, Arduino) или одноплатниками (Raspberry Pi). Ниже — три типовых сценария с указанием протокола, который поддерживает ASI Biont.
| Сценарий | Устройство | Протокол | Инструмент ASI Biont |
|---|---|---|---|
| ESP32 + датчик | ESP32 с Wi-Fi | MQTT | execute_python (paho-mqtt) |
| Arduino через USB | Arduino Uno | COM-порт (Serial) | Hardware Bridge (bridge.py) + industrial_command |
| Raspberry Pi | Raspberry Pi | SSH | execute_python (paramiko) |
В этой статье подробно разберём ESP32 + MQ-2 по MQTT, как самый гибкий и масштабируемый вариант для умного дома и небольшого производства.
Сценарий: ESP32 с датчиком MQ-2 → ASI Biont по MQTT
Задача
Пользователь хочет:
- Получать показания концентрации горючих газов в реальном времени;
- При превышении порога (например, > 600 по ADC) автоматически включать вытяжку и отправлять уведомление в Telegram;
- Вести лог показаний для анализа;
- Всё без ручного программирования — только диалог с AI.
Что делает ASI Biont
-
Пользователь пишет в чат:
«Подключись к моему ESP32 по MQTT: брокер mqtt://192.168.1.100:1883, топик sensor/gas. Если значение > 600, отправь команду relay/ventilation ON через MQTT и уведомление в Telegram. Используй API-ключ бота: 123456:ABC. Токен bridge: … (из дашборда)»
-
AI-агент формирует два кода:
- Для ESP32 — MicroPython скрипт, который читает ADC и публикует данные в MQTT;
-
Для облака ASI Biont — Python-скрипт в execute_python, который подписывается на топик, анализирует значения и управляет реле.
-
Пользователь загружает скрипт на ESP32 (через Thonny или веб-интерфейс), а ASI Biont запускает свой скрипт в sandbox-окружении.
Пример кода для ESP32 (MicroPython)
from machine import Pin, ADC
import time
import umqtt.simple
WIFI_SSID = "your_ssid"
WIFI_PASS = "your_pass"
MQTT_BROKER = "192.168.1.100"
TOPIC = "sensor/gas"
adc = ADC(Pin(34))
adc.atten(ADC.ATTN_11DB) # 0-3.3V → 0-4095
def connect_wifi():
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
time.sleep(1)
def publish():
client = umqtt.simple.MQTTClient("esp32", MQTT_BROKER)
client.connect()
while True:
value = adc.read()
client.publish(TOPIC, str(value))
time.sleep(2)
connect_wifi()
publish()
Пример кода, который ASI Biont выполняет в sandbox (execute_python)
import paho.mqtt.client as mqtt
import requests
BROKER = "192.168.1.100"
TOPIC = "sensor/gas"
TELEGRAM_TOKEN = "123456:ABC"
CHAT_ID = "123456789"
current_value = 0
def on_message(client, userdata, msg):
global current_value
value = int(msg.payload.decode())
current_value = value
if value > 600:
# Включить вытяжку через MQTT
relay_client = mqtt.Client()
relay_client.connect(BROKER)
relay_client.publish("relay/ventilation", "ON")
relay_client.disconnect()
# Уведомление в Telegram
text = f"⚠️ Опасная концентрация газа: {value}. Вентиляция включена."
requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": text})
print(f"[ALERT] value={value} — ventilation ON, telegram sent")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC)
client.loop_start()
# Держим скрипт активным 30 секунд (максимум таймаута sandbox)
import time
time.sleep(30)
client.loop_stop()
print(f"Last value: {current_value}")
Важно: В sandbox ASI Biont скрипт выполняется не более 30 секунд. Для долгоживущих процессов используйте MQTT встроенный через
industrial_command(tool="mqtt", ...)или запускайте bridge на своей стороне. В данном примере показан принцип — AI может адаптировать код под нужный таймаут.
Что получает пользователь
- Через 2 минуты после запроса уже работает система мониторинга.
- Все уведомления приходят в Telegram.
- При желании AI может построить график трендов (используя matplotlib в sandbox и отправив изображение).
Альтернативный способ: COM-порт + Hardware Bridge
Если у вас Arduino Uno или ESP32 подключены по USB, используйте Hardware Bridge. Вы скачиваете bridge.py из дашборда ASI Biont (Devices → Create API Key), запускаете на ПК с флагами:
pip install pyserial requests websockets
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200 --rate=10
В чате вы говорите: «Прочитай данные с COM3: отправь HELP и жди ответа». AI использует industrial_command(protocol='serial://', command='serial_write_and_read', data='48454c500a'). Bridge отправляет HELP\n и возвращает ответ устройства. Далее AI может парсить показания газового сенсора, отправляя команды Arduino, который опрашивает MQ-2 и выводит в Serial.
Пример кода для Arduino (C++)
void setup() {
Serial.begin(115200);
pinMode(A0, INPUT);
}
void loop() {
int val = analogRead(A0);
Serial.println(val);
delay(2000);
}
AI может читать эти строки через serial_write_and_read и анализировать.
Преимущества подхода ASI Biont
- Нулевой порог входа: не нужно знать Python, MQTT или протоколы. Пользователь просто описывает задачу на естественном языке.
- Мгновенная генерация кода: AI пишет рабочие скрипты за секунды, адаптируя их под конкретное железо.
- Единый интерфейс: все устройства — от датчика газа до промышленного PLC — управляются через один чат.
- Безопасность: код выполняется в изолированном sandbox; доступ к COM-портам только через Bridge, который контролирует пользователь.
Реальные кейсы
- Умный дом: интеграция MQ-2 с ESP32 и ASI Biont позволила жильцу отслеживать утечку газа в гараже и автоматически перекрывать клапан через сервопривод.
- Промышленный мониторинг: на складе химреактивов MQ-135 + Raspberry Pi передают данные в ASI Biont; AI предсказывает превышение ПДК на основе трендов и включает принудительную вентиляцию.
- Безопасность на кухне: MQ-7 (CO) + Arduino → COM-порт → Bridge → AI → отключение газовой плиты при опасном уровне.
Заключение
Газовые сенсоры MQ-* становятся по-настоящему полезными, когда их данные обрабатывает AI-агент. ASI Biont предоставляет простой и мощный способ интеграции: вы говорите, что нужно сделать, а AI сам пишет код, подключается к устройству и начинает управлять автоматизацией. Никаких дашбордов, кнопок «добавить устройство» — только диалог.
Хотите, чтобы ваш датчик газа начал «думать»? Зайдите на asibiont.com и попробуйте интеграцию прямо сейчас. Опишите в чате своё устройство и задачу — AI сделает всё остальное.
Комментарии