Введение
Ручной полив — это не только трудозатраты, но и огромный риск для растений. Перелив приводит к загниванию корней, недолив — к увяданию. По данным Продовольственной и сельскохозяйственной организации ООН (FAO), до 60% воды при традиционном поливе тратится впустую из-за неэффективных графиков. Датчик дождя и влажности почвы (Rain / soil moisture sensor) позволяет измерять реальную влажность грунта и осадки в реальном времени, но без умной автоматизации данные остаются просто цифрами.
AI-агент ASI Biont решает эту проблему: он подключается к датчику, анализирует показания и автоматически управляет клапаном полива. В этой статье я расскажу, как настроить такую интеграцию через MQTT, используя ESP32 и ASI Biont, без единой строчки кода, написанной вручную.
Что такое Rain / soil moisture sensor и зачем подключать его к AI-агенту
Rain / soil moisture sensor — это комбинированное устройство, которое измеряет:
- Влажность почвы (емкостным или резистивным методом)
- Наличие дождя (через проводимость между контактами)
Подключив такой сенсор к AI-агенту ASI Biont, вы получаете:
- Автоматическое управление поливом — AI включает клапан только когда почва сухая и нет дождя.
- Удалённый мониторинг — данные доступны в чате с AI в реальном времени.
- Адаптивные сценарии — AI учитывает прогноз погоды (через HTTP API), время суток и историю поливов.
Как ASI Biont подключается к датчику: выбор способа
ASI Biont поддерживает несколько способов подключения к устройствам. Для датчика дождя и влажности почвы оптимальный вариант — MQTT через ESP32. Почему именно MQTT?
- Простота — ESP32 легко программируется в Arduino IDE, а библиотека PubSubClient для MQTT стандартна.
- Надёжность — MQTT работает поверх TCP, поддерживает QoS (гарантию доставки).
- Удалённость — датчик может находиться в саду, а AI-агент — в облаке.
Вот как это работает:
- ESP32 с датчиком публикует данные в топик sensor/soil.
- ASI Biont подписывается на этот топик через execute_python с библиотекой paho-mqtt.
- AI анализирует данные и при необходимости публикует команду в топик actuator/valve.
Конкретный сценарий использования: умный полив теплицы
Представьте: у вас теплица с томатами. Датчик установлен в грунте на глубине 10 см. ESP32 питается от батареи и раз в 10 минут отправляет показания влажности. ASI Biont анализирует тренд: если влажность падает ниже 40% и за последние 6 часов не было дождя, AI отправляет команду на открытие электромагнитного клапана на 5 минут.
Пример кода для ESP32 (прошивка)
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "YourWiFi";
const char* password = "YourPass";
const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient;
PubSubClient client(espClient);
int moisturePin = 34;
int rainPin = 35;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) reconnect();
client.loop();
int moisture = analogRead(moisturePin);
int rain = analogRead(rainPin);
String payload = "{\"moisture\":" + String(moisture) + ",\"rain\":" + String(rain) + "}";
client.publish("sensor/soil", payload.c_str());
delay(600000); // 10 минут
}
void callback(char* topic, byte* message, unsigned int length) {
// Команда на клапан
if (strcmp(topic, "actuator/valve") == 0) {
String msg;
for (int i = 0; i < length; i++) msg += (char)message[i];
if (msg == "ON") {
digitalWrite(5, HIGH); // Включаем клапан
} else {
digitalWrite(5, LOW);
}
}
}
Как AI подключается к MQTT-брокеру
Пользователь просто пишет в чате ASI Biont:
«Подключись к MQTT-брокеру broker.hivemq.com, подпишись на топик sensor/soil, анализируй влажность и при падении ниже 40% публикуй команду ON в топик actuator/valve, если за последние 6 часов не было дождя. Данные о дожде бери из того же топика.»
AI генерирует и выполняет следующий Python-скрипт через execute_python:
import paho.mqtt.client as mqtt
import json
import time
from datetime import datetime, timedelta
BROKER = "broker.hivemq.com"
TOPIC_SENSOR = "sensor/soil"
TOPIC_VALVE = "actuator/valve"
moisture_history = []
rain_last_6h = False
def on_message(client, userdata, msg):
global rain_last_6h
data = json.loads(msg.payload)
moisture = data.get("moisture", 0)
rain = data.get("rain", 0)
# Если датчик дождя показывает > 500 (сухо) — дождя нет
if rain > 500:
rain_last_6h = False
else:
rain_last_6h = True
# Сохраняем историю влажности
moisture_history.append((datetime.now(), moisture))
# Удаляем записи старше 1 часа
moisture_history[:] = [(t, v) for t, v in moisture_history if datetime.now() - t < timedelta(hours=1)]
# Если влажность < 40% и нет дождя — включаем клапан
if moisture < 40 and not rain_last_6h:
client.publish(TOPIC_VALVE, "ON")
print("Valve ON - moisture low, no rain")
else:
print(f"No action: moisture={moisture}, rain={rain}")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC_SENSOR)
client.loop_start()
# Держим соединение 30 секунд (максимум таймаута sandbox)
time.sleep(30)
client.loop_stop()
Важно: sandbox ASI Biont имеет таймаут 30 секунд, поэтому скрипт не может работать бесконечно. Для постоянного мониторинга используется industrial_command с подпиской на топик, либо запуск скрипта по расписанию (через cron на сервере).
Как подключить датчик к ASI Biont: пошаговая инструкция
- Подготовьте оборудование:
- ESP32 (например, NodeMCU-32S)
- Датчик дождя и влажности почвы (например, FC-28 или аналог)
-
Электромагнитный клапан 12V с реле
-
Запрограммируйте ESP32:
- В Arduino IDE установите библиотеки WiFi и PubSubClient.
-
Загрузите скетч из примера выше, указав свои SSID и пароль Wi-Fi.
-
Запустите ASI Biont и откройте чат.
-
Опишите задачу:
-
„Подключись к MQTT-брокеру broker.hivemq.com, подпишись на топик sensor/soil, анализируй влажность и управляй клапаном через топик actuator/valve. Если влажность меньше 40% и нет дождя — включи клапан на 5 минут, если больше 70% — выключи.“
-
AI выполнит интеграцию:
- Сгенерирует Python-скрипт, выполнит его в sandbox и начнёт мониторинг.
Почему это выгодно: экономия времени и ресурсов
- Экономия воды до 40% — полив только когда действительно нужно. По данным исследования Университета Флориды (2019), автоматизация полива на основе датчиков влажности снижает водопотребление на 30–50%.
- Снижение времени на уход за растениями на 70% — не нужно ежедневно проверять почву вручную.
- Удалённый мониторинг — вы видите данные в чате с AI в реальном времени.
- Адаптивные сценарии — AI учитывает дождь, время суток и историю.
Заключение
Интеграция датчика дождя и влажности почвы с AI-агентом ASI Biont превращает обычный сенсор в интеллектуальную систему управления поливом. Вам не нужно писать сложный код — просто опишите задачу в чате, и AI сам создаст и выполнит интеграцию. Подключайте любые устройства через MQTT, SSH, COM-порт или Modbus — ASI Biont поддерживает всё.
Попробуйте интеграцию уже сегодня на asibiont.com и автоматизируйте свой сад или теплицу без лишних усилий.
Комментарии