Умный сад с AI: Как подключить датчик влажности почвы к ASI Biont через MQTT и COM-порт
Введение
Представьте: ваш сад сам сообщает, когда нужен полив, а AI-агент не только анализирует данные с датчика влажности почвы (Rain / soil moisture sensor), но и принимает решения — включить систему капельного орошения, отправить уведомление в Telegram или скорректировать график полива с учётом прогноза погоды. Всё это без написания сложной логики с нуля: достаточно описать задачу в чате с ASI Biont.
Датчик влажности почвы — один из самых популярных IoT-сенсоров для умного сада, теплиц и сельского хозяйства. Он измеряет содержание воды в грунте (в процентах или условных единицах) и передаёт данные через аналоговый или цифровой интерфейс. Интеграция такого датчика с AI-агентом позволяет:
- Автоматизировать полив на основе реальных показаний почвы, а не по таймеру.
- Экономить до 40% воды (данные исследования University of California, 2023: интеллектуальные системы полива сокращают расход воды на 30–50%).
- Получать аналитику трендов влажности и прогнозировать засуху.
В этой статье мы разберём два практических способа подключения датчика влажности почвы к ASI Biont: через MQTT (для ESP32) и через COM-порт с Hardware Bridge (для Arduino). Вы увидите, как AI-агент самостоятельно пишет код интеграции и управляет устройством.
Как ASI Biont подключается к устройству?
ASI Biont — это AI-агент, который подключается к любому оборудованию через диалог в чате. Пользователь просто описывает, к какому устройству и как подключиться, передаёт параметры (порт, IP, baud rate, API-ключ), и AI сам генерирует и выполняет Python-код с нужными библиотеками. Никаких панелей управления и кнопок «добавить устройство» — всё через естественный язык.
Для датчика влажности почвы подходят два основных способа:
| Способ | Интерфейс | Когда использовать |
|---|---|---|
| MQTT (через paho-mqtt в execute_python) | Wi-Fi / Ethernet | ESP32, ESP8266, Raspberry Pi с MQTT-брокером |
| COM-порт (через Hardware Bridge) | USB / RS-232 / RS-485 | Arduino, датчики с UART, промышленные контроллеры |
Рассмотрим оба сценария.
Сценарий 1: ESP32 + датчик влажности почвы → MQTT → ASI Biont
Почему MQTT?
MQTT — лёгкий протокол обмена сообщениями, идеальный для IoT-устройств с ограниченными ресурсами. ESP32 подключается к Wi-Fi, публикует показания датчика в топик (например, garden/soil/moisture), а ASI Biont подписывается на этот топик и анализирует данные. Это надёжно, масштабируемо и не требует постоянного соединения.
Что нужно:
- ESP32 (например, ESP32-DevKitC)
- Датчик влажности почвы (аналоговый, например, YL-69 или capacitive)
- MQTT-брокер (например, Mosquitto на Raspberry Pi или облачный HiveMQ Cloud)
- ASI Biont с доступом в интернет
Пошаговая схема работы:
- Пользователь прошивает ESP32 скетчем на Arduino IDE или MicroPython, который читает аналоговый сигнал с датчика и публикует его в MQTT-топик.
- Пользователь описывает в чате ASI Biont: «Подключись к MQTT-брокеру по адресу mqtt://192.168.1.100:1883, подпишись на топик garden/soil/moisture, анализируй данные и при влажности ниже 30% публикуй команду garden/irrigation/control c значением "on"».
- AI пишет Python-скрипт с paho-mqtt, выполняет его в облачном sandbox (execute_python) и начинает мониторинг.
Пример кода на MicroPython для ESP32:
import machine
import time
import ujson
from umqtt.simple import MQTTClient
# Настройка датчика (ADC на GPIO34)
adc = machine.ADC(machine.Pin(34))
adc.atten(machine.ADC.ATTN_11DB) # 0-3.3V
# MQTT-клиент
CLIENT_ID = "esp32_soil_sensor"
BROKER = "192.168.1.100"
TOPIC = "garden/soil/moisture"
def connect_mqtt():
client = MQTTClient(CLIENT_ID, BROKER)
client.connect()
return client
client = connect_mqtt()
while True:
# Чтение сырого значения (0-4095)
raw = adc.read()
# Преобразование в проценты (сухо = 4095, влажно = 0)
moisture_percent = (4095 - raw) / 4095 * 100
payload = ujson.dumps({"moisture": round(moisture_percent, 1)})
client.publish(TOPIC, payload)
print(f"Published: {payload}")
time.sleep(60) # раз в минуту
Как AI подключается и анализирует:
После того как ESP32 начал публиковать данные, пользователь обращается к ASI Biont. AI генерирует следующий скрипт (выполняется в sandbox):
import paho.mqtt.client as mqtt
import json
import time
BROKER = "192.168.1.100"
TOPIC_SUB = "garden/soil/moisture"
TOPIC_PUB = "garden/irrigation/control"
THRESHOLD = 30.0 # % влажности
def on_message(client, userdata, msg):
data = json.loads(msg.payload.decode())
moisture = data.get("moisture", 0)
print(f"Получена влажность: {moisture}%")
if moisture < THRESHOLD:
print("Почва сухая! Включаю полив.")
client.publish(TOPIC_PUB, "on")
else:
print("Влажность в норме.")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC_SUB)
print("Слушаю топик...")
client.loop_forever() # sandbox таймаут 30 сек, но для демонстрации
Важно: В реальном sandbox с таймаутом 30 секунд бесконечный цикл недопустим. AI использует однократное чтение с client.loop(timeout=5) или запускает скрипт периодически через расписание (например, раз в минуту).
Результат:
- При влажности ниже 30% ASI Biont публикует команду "on" в топик управления поливом.
- ESP32 (или реле) подписан на топик
garden/irrigation/controlи включает клапан. - AI может также отправлять уведомление в Telegram:
requests.post(f"https://api.telegram.org/bot{TOKEN}/sendMessage", json={"chat_id": CHAT_ID, "text": "Полив включён"}).
Сценарий 2: Arduino + датчик влажности почвы → COM-порт → Hardware Bridge → ASI Biont
Почему COM-порт?
Если вы используете Arduino Uno или датчик с UART (например, RS-485), подключение через COM-порт — самый прямой способ. Hardware Bridge (bridge.py) запускается на ПК пользователя, соединяется с ASI Biont через HTTP long polling и передаёт данные с COM-порта в облако.
Что нужно:
- Arduino (Uno, Nano, Mega) с датчиком влажности
- USB-кабель для подключения к ПК
- Python 3.8+ на ПК
- ASI Biont (аккаунт на asibiont.com)
Пошаговая схема:
- Пользователь прошивает Arduino скетчем, который читает аналоговый сигнал с датчика и выводит в Serial (например,
Serial.println(analogRead(A0))). - Пользователь скачивает bridge.py из репозитория ASI Biont и запускает с параметрами:
bash python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --default-baud=9600 - Bridge подключается к облаку и сообщает, что COM3 доступен.
- Пользователь пишет в чате: «Прочитай данные с COM3 на скорости 9600, распарси числа, если влажность ниже 300 (сырое значение), отправь команду на Arduino: включить светодиод на пине 13».
- AI использует industrial_command с протоколом serial:// для отправки и получения данных.
Пример скетча Arduino:
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT); // светодиод индикации
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(5000);
}
Как AI управляет через bridge:
AI видит, что bridge зарегистрировал порт COM3, и может использовать команду:
industrial_command(
protocol='serial',
command='read',
params={
'port': 'COM3',
'baud': 9600,
'timeout': 2
}
)
Или для отправки команды на Arduino:
industrial_command(
protocol='serial',
command='write',
params={
'port': 'COM3',
'baud': 9600,
'data': 'LED_ON\n'
}
)
Автоматизация без кода:
Пользователь задаёт условие: «Если сырое значение с датчика < 300, то отправь на Arduino команду "ON", иначе "OFF"». AI создаёт правило и выполняет его в цикле опроса (каждые 10 секунд). При этом bridge остаётся запущенным на ПК, а AI работает в облаке.
Почему это выгодно?
| Традиционный подход | С ASI Biont |
|---|---|
| Писать код интеграции вручную (Python, Node-RED) | AI пишет код за секунды по описанию на естественном языке |
| Настраивать панели управления, дашборды | Всё управление через чат — никаких интерфейсов |
| Отлаживать подключение к MQTT/COM-порту часами | AI автоматически проверяет соединение и сообщает об ошибках |
| Сложно менять логику (нужно править код) | Достаточно изменить описание в чате — AI перепишет скрипт |
Реальные кейсы экономии воды
По данным исследования журнала Agricultural Water Management (2024), системы автоматического полива на основе данных с датчиков влажности почвы позволяют снизить расход воды на 30–50% по сравнению с поливом по расписанию. Один из пользователей ASI Biont (владелец тепличного хозяйства в Подмосковье) сообщил, что после интеграции датчиков через MQTT и настройки AI-правил экономия воды составила 42% за первый месяц, а урожайность огурцов выросла на 18%.
Как начать?
- Зарегистрируйтесь на asibiont.com.
- Подготовьте устройство: подключите датчик к ESP32 или Arduino, загрузите скетч.
- Откройте чат с AI-агентом и напишите, например:
«Подключись к MQTT-брокеру 192.168.1.100:1883, подпишись на топик garden/soil/moisture, при влажности ниже 30% публикуй garden/irrigation/control = on и отправь мне уведомление в Telegram. Мой токен бота: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11, chat_id: 987654321.»
- AI сгенерирует и выполнит код — интеграция готова за минуту.
Заключение
Интеграция датчика влажности почвы с ASI Biont — это не просто подключение «железки» к «софту». Это превращение вашего сада в автономную экосистему, где AI-агент анализирует реальные данные, принимает решения и экономит ресурсы. Вам не нужно быть программистом или системным администратором — достаточно описать задачу словами.
Попробуйте сами: подключите свой датчик к ASI Biont уже сегодня на asibiont.com и убедитесь, что умный сад — это просто.
Комментарии