DHT22 + ASI Biont: пошаговое руководство по интеграции датчика температуры и влажности с AI-агентом для умного климат-контроля

Введение

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

Что такое DHT22 и зачем подключать его к AI?

DHT22 — цифровой датчик температуры и влажности с диапазоном от -40 до +80 °C и точностью ±0.5 °C. В отличие от DHT11, он стабильнее работает в промышленных условиях и выдаёт показания раз в 2 секунды. Подключение к AI-агенту превращает простой сенсор в интеллектуальный узел мониторинга: AI может анализировать тренды, сравнивать данные с разных датчиков, отправлять оповещения и даже управлять исполнительными механизмами (например, включать вентиляцию или обогреватель).

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

ASI Biont не имеет прямого доступа к GPIO — он работает в облаке. Поэтому для связи с физическим датчиком используется промежуточное устройство (ESP32, Arduino с Ethernet- или Wi-Fi-модулем), которое отправляет данные по протоколу MQTT. AI-агент подписывается на нужный топик, получает показания и обрабатывает их. Всё подключение настраивается через диалог в чате: вы описываете, какой у вас микроконтроллер, какие пины задействованы, какие параметры MQTT-брокера (IP, порт, логин/пароль), и AI сам пишет код прошивки для ESP32 и скрипт для облачного sandbox.

Почему именно MQTT?

MQTT — лёгкий, надёжный и широко распространённый протокол для IoT. Он идеально подходит для устройств с ограниченными ресурсами (ESP32, Arduino). ASI Biont использует библиотеку paho-mqtt, которая доступна в sandbox-окружении. Для быстрой проверки связи можно воспользоваться инструментом industrial_command с протоколом mqtt и командой publish.

Реальный сценарий: контроль температуры в серверной

Представьте: вы отвечаете за серверную в небольшой компании. Оборудование чувствительно к перегреву, и при превышении 35 °C нужно срочно реагировать. Вы устанавливаете ESP32 с DHT22 рядом со стойкой, подключаетесь к локальному MQTT-брокеру (например, Mosquitto) и просите ASI Biont:

«Подключись к MQTT-брокеру по адресу 192.168.1.100:1883, подпишись на топик sensor/temperature. Если температура превышает 35 °C или влажность падает ниже 20%, отправь уведомление в Telegram. Также логируй все показания раз в 5 минут в CSV-файл на сервере.»

AI-агент выполняет команду industrial_command(protocol='mqtt', command='subscribe', topic='sensor/temperature', broker='192.168.1.100', port=1883) для проверки связи, а затем генерирует Python-скрипт, который выполняется в sandbox.

Пример кода для ESP32 (MicroPython)

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

# Конфигурация Wi-Fi
SSID = 'YourWiFi'
PASSWORD = 'YourPassword'

# MQTT брокер
BROKER = '192.168.1.100'
TOPIC_TEMP = 'sensor/temperature'
TOPIC_HUM = 'sensor/humidity'

# Датчик DHT22 на пине 4
dht_pin = Pin(4, Pin.IN)
dht_sensor = dht.DHT22(dht_pin)

def connect_wifi():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(SSID, PASSWORD)
    while not wlan.isconnected():
        time.sleep(1)
    print('Wi-Fi connected')

def main():
    connect_wifi()
    client = MQTTClient('esp32_dht22', BROKER)
    client.connect()
    while True:
        try:
            dht_sensor.measure()
            temp = dht_sensor.temperature()
            hum = dht_sensor.humidity()
            client.publish(TOPIC_TEMP, str(temp))
            client.publish(TOPIC_HUM, str(hum))
            print('Published: T={}, H={}'.format(temp, hum))
            time.sleep(10)  # раз в 10 секунд
        except Exception as e:
            print('Error:', e)
            time.sleep(5)

Пример скрипта для sandbox ASI Biont (анализ и уведомление)

import paho.mqtt.client as mqtt
import requests
import json
import csv
import os
from datetime import datetime

# Конфигурация
BROKER = '192.168.1.100'
PORT = 1883
TOPIC_TEMP = 'sensor/temperature'
TOPIC_HUM = 'sensor/humidity'
TELEGRAM_BOT_TOKEN = '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11'
TELEGRAM_CHAT_ID = '123456789'
CSV_FILE = '/tmp/sensor_log.csv'
TEMP_THRESHOLD = 35.0
HUM_THRESHOLD = 20.0

# Инициализация CSV (если файла нет)
if not os.path.isfile(CSV_FILE):
    with open(CSV_FILE, 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(['timestamp', 'temperature', 'humidity'])

def on_message(client, userdata, msg):
    topic = msg.topic
    value = float(msg.payload.decode())
    timestamp = datetime.now().isoformat()

    # Логирование в CSV
    with open(CSV_FILE, 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([timestamp, topic, value])

    # Проверка порогов
    if topic == TOPIC_TEMP and value > TEMP_THRESHOLD:
        message = f'⚠️ Температура превысила {TEMP_THRESHOLD}°C: {value}°C'
        requests.post(f'https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage',
                      json={'chat_id': TELEGRAM_CHAT_ID, 'text': message})
    elif topic == TOPIC_HUM and value < HUM_THRESHOLD:
        message = f'⚠️ Влажность упала ниже {HUM_THRESHOLD}%: {value}%'
        requests.post(f'https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage',
                      json={'chat_id': TELEGRAM_CHAT_ID, 'text': message})

client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe([(TOPIC_TEMP, 0), (TOPIC_HUM, 0)])
client.loop_forever()  # Внимание: в sandbox таймаут 30 секунд, поэтому используйте loop_start() и time.sleep()

Важно: В sandbox-окружении ASI Biont действует ограничение времени выполнения (до 30 секунд). Для долгоживущих подписок используйте client.loop_start() в отдельном потоке и периодическую проверку, либо настройте MQTT-мост на внешнем сервере.

Альтернативные способы подключения

Если у вас нет Wi-Fi или вы хотите более низкоуровневое управление, можно использовать Hardware Bridge. Запустите bridge.py на ПК, подключите ESP32 или Arduino через USB (COM-порт), и AI сможет читать данные с датчика напрямую через industrial_command(protocol='serial://COM3', command='read', baud=115200). Этот способ удобен для прототипирования, когда устройство подключено к тому же компьютеру.

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

Без AI вам пришлось бы:
1. Писать код прошивки для ESP32.
2. Настраивать MQTT-брокер вручную.
3. Писать скрипт для подписки и анализа данных.
4. Настраивать Telegram-бота.
5. Отлаживать всё вместе.

С ASI Biont вы просто описываете задачу на русском или английском языке, AI генерирует и выполняет код за секунды. Никаких панелей управления, кнопок «добавить устройство» — только диалог в чате. При этом AI поддерживает десятки библиотек: pyserial, pymodbus, paramiko, aiohttp, opcua-asyncio и другие. Вы можете подключить практически любое устройство — от простого датчика до промышленного PLC.

Заключение

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

← Все статьи

Комментарии

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

Lovable готовится удвоить оценку до $13,2 млрд: как AI-ассистенты меняют рынок разработки

9 июля 2026

Go и Rust — системное программирование: курс для инженеров, которые хотят писать быстрый и надежный код

9 июля 2026

Сертификация PMP 2026: Почему подготовка с ИИ — ваш кратчайший путь к сдаче экзамена PMI ECO 2025

9 июля 2026

Как подключить CNC-станок (GRBL, Marlin) к AI-агенту ASI Biont: практическое руководство по интеграции и автоматизации

9 июля 2026

Роботы готовятся к своему моменту ChatGPT: стартап из Кремниевой долины переосмысляет ИИ в физическом мире

9 июля 2026

От новичка до востребованного аналитика: как курс «Data Science с нуля» на Asibiont.com ускоряет ваше обучение в 2026 году

8 июля 2026

От 12% брака до 7%: Как курс «AI-инжиниринг в промышленности и робототехнике» трансформирует производственные линии

8 июля 2026

15 промтов для Data Science: анализ данных, визуализация и Pandas — шпаргалка 2026

8 июля 2026

Мы превратили внедрение AI в игру для команды. Вот что мы узнали

8 июля 2026