ESP32 + ASI Biont: пошаговый гайд по интеграции датчика DHT22 для IoT-автоматизации

Введение

ESP32 — один из самых популярных микроконтроллеров для IoT: встроенный Wi-Fi, Bluetooth, низкое энергопотребление и цена около $5 делают его идеальным для умного дома и промышленного мониторинга. Но настройка интеграции с AI-агентами традиционно требует написания кода вручную, настройки MQTT-брокера и написания скриптов обработки данных. ASI Biont решает эту проблему: AI-агент сам пишет код интеграции, подключается к ESP32 и управляет им через диалог в чате. Никаких панелей управления — просто опишите задачу, и AI сделает всё за секунды.

В этой статье мы разберём конкретный сценарий: подключение датчика температуры и влажности DHT22 к ESP32, передача данных через MQTT в ASI Biont, автоматическая отправка алертов в Telegram при выходе за пределы нормы и включение вентилятора через реле. Всё — без серверного кода.

Как ASI Biont подключается к ESP32

ESP32 поддерживает несколько протоколов связи. Для нашего сценария мы используем MQTT — лёгкий протокол pub/sub, идеальный для IoT-устройств с ограниченными ресурсами. ASI Biont подключается к MQTT-брокеру (например, Mosquitto или HiveMQ Cloud) через библиотеку paho-mqtt, которая доступна в sandbox-окружении. AI сам пишет Python-скрипт, который подписывается на нужный топик (например, sensor/temperature), получает данные, анализирует их и при необходимости публикует команды (например, actuator/fan).

Пользователь описывает в чате: «Подключись к ESP32 через MQTT, брокер — test.mosquitto.org, порт 1883, топик sensor/temperature». AI генерирует код и выполняет его. Всё подключение — за один диалог.

Сценарий: мониторинг микроклимата с алертами и автоматизацией

Шаг 1. Прошивка ESP32

На ESP32 загружается прошивка на MicroPython или Arduino C, которая:
- Подключается к Wi-Fi
- Читает данные с DHT22 каждые 10 секунд
- Публикует их в MQTT-топик sensor/temperature в формате JSON: {"temp": 24.5, "hum": 60.2}

Пример прошивки на MicroPython:

import network
import time
import dht
import machine
from umqtt.simple import MQTTClient

# Настройки
WIFI_SSID = "YourWiFi"
WIFI_PASS = "YourPassword"
MQTT_BROKER = "test.mosquitto.org"
TOPIC = "sensor/temperature"

# Подключение к Wi-Fi
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.connect(WIFI_SSID, WIFI_PASS)
while not sta.isconnected():
    time.sleep(1)

# Инициализация датчика
d = dht.DHT22(machine.Pin(4))

# MQTT клиент
client = MQTTClient("esp32", MQTT_BROKER)
client.connect()

while True:
    d.measure()
    payload = '{"temp": %s, "hum": %s}' % (d.temperature(), d.humidity())
    client.publish(TOPIC, payload)
    time.sleep(10)

Шаг 2. Интеграция с ASI Biont через MQTT

Пользователь пишет в чате ASI Biont:

«Подключись к MQTT-брокеру test.mosquitto.org, подпишись на топик sensor/temperature. Если температура выше 30°C или влажность ниже 30% — отправь мне алерт в Telegram (токен бота: XXX, chat_id: YYY). Если температура выше 30°C — опубликуй команду в топик actuator/fan со значением "on". Запусти мониторинг с интервалом 10 секунд.»

AI генерирует и выполняет следующий код (выполняется в sandbox ASI Biont):

import paho.mqtt.client as mqtt
import requests
import json
import time

# Настройки
BROKER = "test.mosquitto.org"
PORT = 1883
TOPIC_SENSOR = "sensor/temperature"
TOPIC_ACTUATOR = "actuator/fan"
TELEGRAM_TOKEN = "XXX"
TELEGRAM_CHAT_ID = "YYY"

def on_message(client, userdata, msg):
    data = json.loads(msg.payload.decode())
    temp = data.get("temp", 0)
    hum = data.get("hum", 0)

    if temp > 30 or hum < 30:
        text = f"⚠️ Алерт! Температура: {temp}°C, Влажность: {hum}%"
        requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
                      json={"chat_id": TELEGRAM_CHAT_ID, "text": text})

    if temp > 30:
        client.publish(TOPIC_ACTUATOR, "on")

mqtt_client = mqtt.Client()
mqtt_client.on_message = on_message
mqtt_client.connect(BROKER, PORT, 60)
mqtt_client.subscribe(TOPIC_SENSOR)
mqtt_client.loop_forever()  # не while True, а блокирующий loop

Шаг 3. Результаты

  • Автоматизация: вентилятор включается при превышении температуры 30°C — без участия человека.
  • Уведомления: Telegram-алерты приходят мгновенно при выходе параметров за норму.
  • Гибкость: пользователь может в любой момент изменить логику через чат (например, «добавь условие: если влажность > 80%, включи осушитель»).

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

Традиционный подход требует:
- Написания кода на Python для подписки на MQTT
- Настройки логики обработки данных
- Интеграции с Telegram API
- Тестирования и отладки

С ASI Biont весь процесс занимает 1–2 минуты диалога. AI сам пишет код, используя проверенные библиотеки (paho-mqtt, requests), выполняет его в sandbox и поддерживает работу. Не нужно ждать обновлений от разработчиков — подключайте любые устройства через execute_python.

Другие сценарии интеграции ESP32 с ASI Biont

Сценарий Протокол Что делает AI
Мониторинг температуры MQTT Читает данные, строит графики (matplotlib), отправляет отчёты
Управление реле через HTTP HTTP API Включает/выключает нагрузку по расписанию
Сбор данных с нескольких датчиков MQTT Агрегирует данные, анализирует тренды, предсказывает отказы
GPS-трекинг через COM-порт Hardware Bridge (COM) Парсит NMEA-строки, строит маршруты

Заключение

ESP32 — мощный и дешёвый микроконтроллер, который с ASI Biont превращается в полностью управляемый AI-агент. MQTT-интеграция позволяет за минуты настроить мониторинг, алерты и автоматизацию без единой строки серверного кода. Попробуйте сами: опишите в чате ASI Biont вашу задачу — и AI сделает всё остальное.

👉 Попробуйте интеграцию на asibiont.com

← Все статьи

Комментарии