Интеграция датчика дождя и влажности почвы с AI-агентом ASI Biont: умный полив без кода

Введение

Датчик дождя и влажности почвы — это комбинированное устройство, которое позволяет в реальном времени отслеживать уровень осадков и влажность грунта. В сочетании с AI-агентом ASI Biont вы получаете не просто показания с сенсора, а полностью автоматизированную систему полива, которая экономит до 40% воды (данные исследования University of California Cooperative Extension, 2023) и предотвращает переувлажнение растений. В этой статье мы разберём, как подключить такой датчик к ESP32, настроить передачу данных по MQTT в ASI Biont и настроить триггеры для Telegram-уведомлений и автоматического управления реле.

Почему именно ASI Biont?

ASI Biont — это AI-агент, который подключается к любому устройству через диалог в чате. Вам не нужно писать код вручную — достаточно описать задачу, указать параметры подключения (IP, порт, baud rate, API-ключ), и AI сам сгенерирует и выполнит Python-скрипт. Для работы с ESP32 + датчиком мы используем MQTT — лёгкий протокол для IoT, который идеально подходит для передачи данных с микроконтроллера в облако.

Схема подключения датчика к ESP32

Компонент Пин ESP32
Датчик влажности почвы (аналоговый выход) GPIO34 (ADC)
Датчик дождя (аналоговый выход) GPIO35 (ADC)
Реле управления насосом GPIO32
Питание датчиков 3.3V / GND

Подключите датчики согласно таблице. Обратите внимание: аналоговые пины ESP32 (ADC1) работают с напряжением 0–3.3V, поэтому, если датчик выдает 0–5V, используйте делитель напряжения.

Код для ESP32 (Arduino IDE / PlatformIO)

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

const char* ssid = "YOUR_WIFI";
const char* password = "YOUR_PASS";
const char* mqtt_server = "broker.hivemq.com";
const int mqtt_port = 1883;

WiFiClient espClient;
PubSubClient client(espClient);

const int soilPin = 34;
const int rainPin = 35;
const int relayPin = 32;

void setup() {
  Serial.begin(115200);
  pinMode(soilPin, INPUT);
  pinMode(rainPin, INPUT);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }

  client.setServer(mqtt_server, mqtt_port);
  client.setCallback(callback);

  while (!client.connected()) {
    if (client.connect("ESP32_Soil_Moisture")) {
      client.subscribe("garden/relay");
    }
  }
}

void loop() {
  if (!client.connected()) {
    client.connect("ESP32_Soil_Moisture");
  }
  client.loop();

  int soilValue = analogRead(soilPin);
  int rainValue = analogRead(rainPin);

  // Преобразуем в проценты (0-100%)
  int soilPercent = map(soilValue, 0, 4095, 0, 100);
  int rainPercent = map(rainValue, 0, 4095, 0, 100);

  char payload[100];
  snprintf(payload, 100, "{\"soil\":%d,\"rain\":%d}", soilPercent, rainPercent);
  client.publish("garden/sensors", payload);

  delay(30000); // Отправка каждые 30 секунд
}

void callback(char* topic, byte* message, unsigned int length) {
  String msg;
  for (int i = 0; i < length; i++) {
    msg += (char)message[i];
  }
  if (msg == "ON") {
    digitalWrite(relayPin, HIGH);
  } else if (msg == "OFF") {
    digitalWrite(relayPin, LOW);
  }
}

Прошейте ESP32 этим скетчем. Убедитесь, что в последовательном мониторе отображаются значения с датчиков.

Подключение к ASI Biont через MQTT

Теперь, когда ESP32 публикует данные в топик garden/sensors, откройте чат с ASI Biont и напишите:

«Подключись к MQTT-брокеру broker.hivemq.com, подпишись на топик garden/sensors, парси JSON с полями soil и rain, и если влажность почвы ниже 30% (soil < 30) и дождь не идёт (rain < 10), то опубликуй в топик garden/relay команду ON. Если влажность выше 60% — опубликуй OFF. Также отправляй уведомления в Telegram при аномалиях: если rain > 80 — «Идёт сильный дождь», если soil < 20 — «Почва критически сухая!»»

AI-агент сгенерирует и выполнит Python-скрипт с использованием paho-mqtt и requests для Telegram. Вам останется только указать свой Telegram Bot Token и Chat ID.

Пример кода, который сгенерирует AI

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

TELEGRAM_BOT_TOKEN = "YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID = "YOUR_CHAT_ID"

def send_telegram(message):
    url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
    payload = {"chat_id": TELEGRAM_CHAT_ID, "text": message}
    requests.post(url, json=payload)

def on_message(client, userdata, msg):
    data = json.loads(msg.payload.decode())
    soil = data["soil"]
    rain = data["rain"]

    if soil < 30 and rain < 10:
        client.publish("garden/relay", "ON")
        send_telegram("Полив включён (почва сухая, дождя нет)")
    elif soil > 60:
        client.publish("garden/relay", "OFF")
        send_telegram("Полив выключен (почва достаточно влажная)")

    if rain > 80:
        send_telegram("⚠️ Идёт сильный дождь! Полив отключён")
    elif soil < 20:
        send_telegram("🔴 Критическая сухость почвы!")

client = mqtt.Client()
client.connect("broker.hivemq.com", 1883, 60)
client.subscribe("garden/sensors")
client.on_message = on_message
client.loop_forever()

Этот скрипт выполняется в облаке ASI Biont (sandbox) и не использует бесконечные циклы с while Trueloop_forever() контролируется таймаутом. Вы можете остановить его командой «Останови скрипт».

Реальные сценарии использования

  1. Автоматический полив по данным сенсора — AI включает насос только когда почва сухая и нет дождя.
  2. Уведомления в Telegram — вы получаете сообщения о состоянии почвы, сильном дожде или аварийной сухости.
  3. Интеграция с погодными API — AI может запрашивать прогноз погоды (например, OpenWeatherMap) и корректировать полив: если завтра обещают дождь, полив сегодня отключается.
  4. Логирование данных — все показания сохраняются в CSV или Google Sheets для анализа.

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

  • Экономия воды — до 40% по сравнению с поливом по расписанию (данные UC Cooperative Extension).
  • Никакого ручного кодирования — AI пишет интеграцию за секунды, вы только описываете логику.
  • Гибкость — можно подключить любой датчик: температуры, влажности, уровня CO2, и настроить любые триггеры.
  • Доступность — ASI Biont работает через чат: Telegram, веб-интерфейс или API.

Заключение

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

← Все статьи

Комментарии

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