Зачем подключать датчик дождя и влажности почвы к AI-агенту?
Представьте: ваш сад или теплица самостоятельно решают, когда включать полив. Датчик дождя (Rain sensor) определяет, идёт ли дождь, а датчик влажности почвы (Soil moisture sensor) измеряет, насколько сухая земля. Вместе они — идеальная пара для интеллектуальной системы полива. Но как заставить их не просто показывать данные на экране, а принимать решения, уведомлять вас в Telegram и адаптироваться к погоде? Ответ — подключить их к AI-агенту ASI Biont.
ASI Biont — это не просто панель управления. Вы описываете задачу текстом, и AI сам пишет код интеграции на Python, подключается к вашему устройству через MQTT, COM-порт или Wi-Fi и начинает собирать данные, анализировать их и управлять исполнительными механизмами (например, реле на насосе). Всё это без ручного кодирования: просто объясняете AI, что хотите, и он делает.
Какой способ подключения используем и почему?
Для датчиков дождя и влажности почвы на базе ESP32 или Arduino с Wi-Fi (ESP8266, ESP32) оптимальный вариант — MQTT. Почему?
- Простота: ESP32 публикует показания в MQTT-топик (например,
sensor/soil_moisture), а ASI Biont подписывается на него черезexecute_pythonс библиотекойpaho-mqtt. - Надёжность: MQTT работает поверх TCP, поддерживает QoS (гарантия доставки), и данные не теряются при временном отключении брокера.
- Масштабируемость: можно добавить хоть 50 датчиков — каждый публикует в свой топик, AI обрабатывает их все.
Альтернатива — Hardware Bridge (COM-порт), если вы используете Arduino без Wi-Fi. Но для типового сценария «умный полив» MQTT удобнее: не нужен проводной ПК рядом.
Конкретный сценарий: мониторинг влажности почвы и автоматический полив через Telegram
Шаг 1. Настройка ESP32 с датчиком
Соберите схему:
- Датчик влажности почвы (например, YL-69) подключите к аналоговому пину A0 (ESP32: GPIO34).
- Датчик дождя (например, FC-37) — к цифровому пину D0 (ESP32: GPIO32).
- Питание: 3.3V или 5V в зависимости от датчика.
Шаг 2. Прошивка ESP32 (Arduino IDE / PlatformIO)
Установите библиотеку PubSubClient и напишите прошивку, которая читает данные каждые 10 секунд и публикует их в MQTT:
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "ваш_WiFi";
const char* password = "пароль_WiFi";
const char* mqtt_server = "test.mosquitto.org";
const int mqtt_port = 1883;
WiFiClient espClient;
PubSubClient client(espClient);
const int soilPin = 34;
const int rainPin = 32;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
client.setServer(mqtt_server, mqtt_port);
pinMode(soilPin, INPUT);
pinMode(rainPin, INPUT);
}
void loop() {
if (!client.connected()) client.connect("ESP32_" + String(random(0xffff)));
client.loop();
int soilValue = analogRead(soilPin); // 0-4095 (сухой -> влажный)
bool rainDetected = digitalRead(rainPin) == LOW; // LOW = дождь
char payload[50];
snprintf(payload, 50, "{\"soil\":%d,\"rain\":%d}", soilValue, rainDetected);
client.publish("sensor/garden", payload);
delay(10000);
}
Шаг 3. Подключение ASI Biont через MQTT
Теперь в чате с ASI Biont напишите:
Подключись к MQTT-брокеру test.mosquitto.org:1883, подпишись на топик sensor/garden. Если влажность почвы ниже 2000 (сухая) и нет дождя, опубликуй команду в топик actuator/water с текстом ON, чтобы включить полив. Если пошёл дождь или влажность выше 3000 — опубликуй OFF. Также отправляй мне сводку в Telegram каждые 30 минут.
AI сгенерирует и выполнит такой код (сокращённый пример):
import paho.mqtt.client as mqtt
import json
import time
import requests
BROKER = "test.mosquitto.org"
PORT = 1883
TELEGRAM_BOT_TOKEN = "ваш_токен"
TELEGRAM_CHAT_ID = "ваш_chat_id"
def on_message(client, userdata, msg):
data = json.loads(msg.payload.decode())
soil = data['soil']
rain = data['rain']
if soil < 2000 and not rain:
client.publish("actuator/water", "ON")
elif soil > 3000 or rain:
client.publish("actuator/water", "OFF")
# Логика уведомлений
if soil < 1500:
requests.post(f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": f"Внимание! Почва пересыхает: {soil}"})
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe("sensor/garden")
client.loop_forever()
Важно: sandbox ASI Biont имеет таймаут 30 секунд, поэтому loop_forever() заменится на loop_start() с фоновым потоком. AI это учтёт.
Шаг 4. Результат
- Автоматика: полив включается только когда нужно и нет дождя.
- Уведомления: Telegram сообщает о критической сухости.
- Аналитика: AI может строить графики влажности за неделю (используя
matplotlibи сохраняя в PDF).
Почему это выгодно?
Вам не нужно тратить часы на отладку MQTT-клиента или написание правил логики. Просто опишите задачу текстом — AI сделает всю интеграцию за секунды. Хотите добавить второй датчик? Просто скажите: «Добавь ещё один датчик влажности на топик sensor/balcony, порог полива 1800». И всё.
Подключение к любому устройству через execute_python
ASI Biont умеет подключаться к любому устройству, у которого есть API или протокол обмена данными. Просто напишите в чат:
Подключись к моему устройству через Modbus TCP по IP 192.168.1.100:502, прочитай регистры 0-10 и выведи значения в консоль.
AI сам выберет нужную библиотеку (pymodbus), напишет код и выполнит его. Никаких панелей «добавить устройство» — только диалог.
Заключение
Интеграция датчиков дождя и влажности почвы с AI-агентом ASI Biont превращает обычный сад в умную экосистему, которая экономит воду, бережёт растения и уведомляет вас о проблемах. Всё это без глубоких знаний программирования — достаточно описать задачу текстом.
Попробуйте сами: подключите свой датчик к ASI Biont на asibiont.com и управляйте поливом через Telegram уже сегодня.
Комментарии