Как подключить DHT22 к AI-агенту ASI Biont: автоматизация теплицы через MQTT и экономия 15% урожая

Введение

Каждый агроном знает: температура и влажность в теплице — это не просто цифры. Отклонение на 2°C от оптимума может снизить урожайность томатов на 10–15%, а переувлажнение почвы выше 85% RH провоцирует грибковые заболевания. Ручной сбор данных с датчика DHT22 — это бесконечные записи в блокнот, поздние реакции на изменения и потерянное время. Но что, если датчик сам сообщит, когда включать вентиляцию или полив, а AI-агент примет решение за секунду?

В этой статье мы разберём, как подключить DHT22 или DHT11 к AI-агенту ASI Biont через MQTT и GPIO, настроить реактивные сценарии и получить реальную экономию — до 40% времени агронома и до 15% урожая. Никаких панелей управления: вы просто описываете задачу в чате, и AI сам пишет код интеграции.

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

DHT22 (AM2302) — цифровой датчик температуры и влажности с диапазоном -40…+80°C и 0–100% RH. Точность: ±0.5°C и ±2% RH. DHT11 — бюджетный аналог с точностью ±2°C и ±5% RH. Оба работают по однопроводному протоколу (1-Wire) и требуют тактового сигнала от микроконтроллера (ESP32, Arduino, Raspberry Pi).

Проблема: датчик выдаёт сырые данные, которые нужно обработать, сохранить и на их основе принять решение. Без AI вы тратите время на:
- Ручной опрос датчика каждые 15–30 минут
- Ведение Excel-таблиц
- Ручное включение вентилятора или клапана полива

ASI Biont решает это автоматически: AI подключается к датчику через MQTT или GPIO, собирает данные, анализирует тренды и управляет исполнительными устройствами.

Какой способ подключения используем и почему?

Для DHT22 оптимальны два пути:

Способ Устройство Протокол Когда использовать
MQTT ESP32 + DHT22 publish/subscribe Удалённый мониторинг, несколько датчиков, облачная логика
GPIO + SSH Raspberry Pi + DHT22 direct GPIO read Локальная автоматизация, низкая задержка, нет Wi-Fi

В этой статье мы разберём оба сценария. MQTT — для масштабируемых теплиц с множеством датчиков и управлением через единый брокер. GPIO — для компактных решений на Raspberry Pi, где датчик подключён напрямую к пинам.

Сценарий 1: ESP32 + DHT22 → ASI Biont по MQTT

Архитектура

[DHT22] --(1-Wire)--> [ESP32] --(Wi-Fi, MQTT)--> [Mosquitto broker] <--(MQTT subscribe)--> [ASI Biont cloud]
[ASI Biont] --(MQTT publish)--> [ESP32] --(GPIO)--> [Relay -> Fan / Valve]

Что нужно

  • ESP32 (любая плата, например, ESP32-DevKitC)
  • Датчик DHT22 (или DHT11)
  • Реле для управления вентилятором и клапаном полива
  • MQTT-брокер (например, Mosquitto, установленный на сервере или в облаке)
  • Аккаунт ASI Biont (asibiont.com)

Шаг 1: прошивка ESP32

Загрузите на ESP32 скетч, который читает DHT22 и публикует данные в MQTT. Пример на Arduino IDE:

#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>

#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASS";
const char* mqtt_server = "broker.example.com";
const int mqtt_port = 1883;
const char* topic_temp = "greenhouse/temperature";
const char* topic_hum = "greenhouse/humidity";
const char* topic_cmd = "greenhouse/command";

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(115200);
  dht.begin();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) { delay(500); }
  client.setServer(mqtt_server, mqtt_port);
  client.setCallback(callback);
  client.connect("ESP32_Greenhouse");
  client.subscribe(topic_cmd);
}

void callback(char* topic, byte* payload, unsigned int length) {
  String msg = "";
  for (int i = 0; i < length; i++) msg += (char)payload[i];
  if (msg == "FAN_ON") digitalWrite(2, HIGH);
  else if (msg == "FAN_OFF") digitalWrite(2, LOW);
  else if (msg == "VALVE_ON") digitalWrite(4, HIGH);
  else if (msg == "VALVE_OFF") digitalWrite(4, LOW);
}

void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  if (!isnan(t) && !isnan(h)) {
    client.publish(topic_temp, String(t).c_str());
    client.publish(topic_hum, String(h).c_str());
  }
  client.loop();
  delay(10000);
}

Шаг 2: подключение ASI Biont через чат

Откройте чат с ASI Biont и напишите:

Подключись к MQTT-брокеру broker.example.com:1883. Подпишись на топики greenhouse/temperature и greenhouse/humidity. Если температура превышает 30°C дольше 5 минут — опубликуй FAN_ON в топик greenhouse/command. Если влажность меньше 50% — опубликуй VALVE_ON на 10 минут. Все данные сохраняй в CSV-файл и отправь мне ссылку.

AI сгенерирует и выполнит Python-скрипт с использованием paho-mqtt:

import paho.mqtt.client as mqtt
import csv
import time
from datetime import datetime, timedelta

broker = "broker.example.com"
port = 1883
topics = ["greenhouse/temperature", "greenhouse/humidity"]

# Хранение последних значений
data = {"temp": None, "hum": None}
hot_start = None
dry_start = None

def on_message(client, userdata, msg):
    global hot_start, dry_start
    topic = msg.topic
    value = float(msg.payload.decode())
    data["temp" if "temperature" in topic else "hum"] = value
    now = datetime.now()

    # Логирование
    with open("greenhouse_log.csv", "a", newline="") as f:
        writer = csv.writer(f)
        writer.writerow([now.isoformat(), topic, value])

    # Анализ температуры
    if data["temp"] and data["temp"] > 30:
        if hot_start is None:
            hot_start = now
        elif (now - hot_start) >= timedelta(minutes=5):
            client.publish("greenhouse/command", "FAN_ON")
            hot_start = None
    else:
        hot_start = None

    # Анализ влажности
    if data["hum"] and data["hum"] < 50:
        if dry_start is None:
            dry_start = now
        elif (now - dry_start) >= timedelta(minutes=5):
            client.publish("greenhouse/command", "VALVE_ON")
            dry_start = None

client = mqtt.Client()
client.on_message = on_message
client.connect(broker, port, 60)
for t in topics:
    client.subscribe(t)
client.loop_forever()

Результат

  • Автоматическое включение вентиляции при жаре
  • Полив при пониженной влажности
  • Логи всех показаний в CSV
  • Уведомления в Telegram (AI может добавить отправку через requests.post)

Сценарий 2: Raspberry Pi + DHT22 → ASI Biont по SSH/GPIO

Архитектура

[DHT22] --(GPIO pin 4)--> [Raspberry Pi] <--(SSH)--> [ASI Biont cloud]
[RPi GPIO 17] --(Relay)--> [Fan]
[RPi GPIO 27] --(Relay)--> [Valve]

Шаг 1: подготовка Raspberry Pi

Установите библиотеку Adafruit_DHT:

pip install Adafruit_DHT

Подключите DHT22: VCC → 3.3V, DATA → GPIO4, GND → GND, подтяжка 10кОм между DATA и VCC.

Шаг 2: подключение ASI Biont через чат

Напишите в чат:

Подключись по SSH к Raspberry Pi (IP: 192.168.1.100, логин: pi, пароль: raspberry). Напиши Python-скрипт, который каждые 10 секунд читает DHT22 с пина GPIO4, выводит температуру и влажность. Если температура выше 28°C — включи GPIO17 (вентилятор), иначе выключи. Если влажность ниже 60% — включи GPIO27 (клапан полива) на 5 секунд. Выведи статистику за последний час.

AI сгенерирует paramiko-скрипт и выполнит его на сервере ASI Biont:

import paramiko
import time

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.100", username="pi", password="raspberry")

script = """
import Adafruit_DHT
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
FAN_PIN = 17
VALVE_PIN = 27
GPIO.setup(FAN_PIN, GPIO.OUT)
GPIO.setup(VALVE_PIN, GPIO.OUT)

humidity, temperature = Adafruit_DHT.read_retry(22, 4)
if humidity is not None and temperature is not None:
    print(f"Temperature: {temperature:.1f}C, Humidity: {humidity:.1f}%")
    if temperature > 28:
        GPIO.output(FAN_PIN, GPIO.HIGH)
        print("Fan ON")
    else:
        GPIO.output(FAN_PIN, GPIO.LOW)
        print("Fan OFF")
    if humidity < 60:
        GPIO.output(VALVE_PIN, GPIO.HIGH)
        time.sleep(5)
        GPIO.output(VALVE_PIN, GPIO.LOW)
        print("Valve ON for 5s")
else:
    print("Sensor error")
GPIO.cleanup()
"""

stdin, stdout, stderr = ssh.exec_command(f"python3 -c '{script}'")
print(stdout.read().decode())
ssh.close()

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

Параметр Ручной сбор ASI Biont
Время на мониторинг 2-3 часа/день 0 часов
Задержка реакции на изменение 30-60 минут 10 секунд
Потери урожая из-за колебаний 10-15% 2-5%
Затраты на настройку интеграции 3-5 дней кодирования 5 минут диалога

По данным исследования Университета Вагенингена (2024), автоматизация теплиц на основе IoT снижает потери урожая на 12-18% за счёт своевременной коррекции микроклимата. ASI Biont делает такую автоматизацию доступной для любого агронома без навыков программирования.

Как это работает: ни одной кнопки, только диалог

ASI Biont — это AI-агент, который подключается к любому устройству через execute_python. Вы не добавляете устройства в панели управления — вы просто описываете задачу в чате. AI сам:

  1. Выбирает протокол (MQTT, SSH, Modbus, COM-порт и т.д.)
  2. Пишет Python-код с использованием реальных библиотек (paho-mqtt, paramiko, pyserial)
  3. Выполняет код в sandbox-окружении на сервере ASI Biont
  4. Возвращает результат и может работать в фоне (подписка на топики, циклический опрос)

Для COM-портов используется Hardware Bridge — приложение bridge.py, которое вы скачиваете из дашборда ASI Biont (Devices → Create API Key). Bridge подключается к облаку через WebSocket и обеспечивает доступ к локальным портам.

Заключение

DHT22 — простой, но критически важный датчик для теплицы. Подключив его к ASI Biont, вы превращаете сырые данные в умные решения: вентиляция включается до того, как температура навредит растениям, полив — до пересыхания почвы. Экономия времени — 40%, урожая — до 15%.

Попробуйте сами: зайдите на asibiont.com, откройте чат и напишите: «Подключи DHT22 к моему ESP32 через MQTT». AI сделает всё за секунды.

← Все статьи

Комментарии

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

Почему курс «SEC и инсайдерская торговля: регулирование и соблюдение требований» является обязательным для специалистов по комплаенсу в 2026 году

20 июля 2026

CISA — Certified Information Systems Auditor (ISACA): Как AI-обучение на asibiont.com упрощает подготовку к сертификации

20 июля 2026

Почему стратегия открытых весов Китая побеждает в гонке ИИ

20 июля 2026

TypeScript — статическая типизация в JavaScript: как декораторы упрощают код и почему AI-обучение на Asibiont ускоряет прогресс

20 июля 2026

Углы так не выглядят: что такое Screen Space Ambient Occlusion (SSAO) и почему это важно для vibe coding

20 июля 2026

Raspberry Pi Zero 2 W + ASI Biont: умный дом без программирования — управляйте GPIO голосом и через Telegram

20 июля 2026

ESP32 и ASI Biont: AI-управление теплицей через MQTT — потери урожая снижены на 25%

20 июля 2026

Launch HN: Bloomy (YC S26) – Как AI и Vibe Coding меняют K-12 образование в 2026 году

20 июля 2026

Практическая криптография: Освойте AES, ChaCha20, TLS 1.3 и постквантовую безопасность с ИИ-тьютором на asibiont.com

20 июля 2026