ESP32 + I2C датчики + ASI Biont: умный сад с автополивом и алертами в Telegram

Пятница, 13:00. Середина августа. За окном +35°C, и ваши растения, скорее всего, уже просят пить. Если вы, как и я, любите умные устройства, но не готовы неделями разбираться в микроконтроллерах и облачных сервисах, этот гайд — для вас. Сегодня я покажу, как за один вечер собрать систему умного сада на ESP32 и шине I2C, подключить её к AI-агенту ASI Biont и почти без кода получить автополив, Telegram-алерты и аналитику роста. ASI Biont сам напишет интеграцию — нужно только описать в чате, какие датчики у вас есть и что они должны делать. Пора выбросить лейку и доверить зелень искусственному интеллекту!

Что такое I2C и почему это идеальная шина для умного сада

I2C (Inter-Integrated Circuit) — это синхронная двухпроводная шина, разработанная Philips (теперь NXP) ещё в 1982 году. Всего два сигнала: SDA (данные) и SCL (тактовый сигнал) — и к микроконтроллеру можно подключить до 128 устройств, используя всего два пина. Датчики DHT20, BMP280, OLED-дисплеи SSD1306, модули влажности почвы — почти вся популярная периферия для IoT работает по I2C. Каждое устройство имеет уникальный 7-битный адрес, поэтому конфликты решаются сменой адреса на модуле. Для новичка это означает минимум пайки и максимум тюнинга.

Собираем железо: ESP32 + датчики

Для проекта мне понадобились:

  • ESP32 DevKit (любой вариант с Wi-Fi) — $5
  • Датчик температуры и влажности DHT20 (около $3)
  • Датчик влажности почвы емкостного типа (аналоговый, ~$2)
  • Датчик давления и температуры BMP280 (для компенсации атмосферного давления, $3)
  • OLED-дисплей 0.96\" на контроллере SSD1306 ($4)

Схема подключения простая: SDA и SCL всех устройств — на GPIO21 и GPIO22 ESP32 соответственно. Питание — 3.3V и GND. Я использовал макетную плату и соединительные провода.

Устройство SDA (GPIO21) SCL (GPIO22) VCC GND
DHT20 SDA SCL 3.3V GND
BMP280 SDA SCL 3.3V GND
OLED SSD1306 SDA SCL 3.3V GND
Датчик почвы — (аналог GPIO36) 3.3V GND

Прошивка ESP32: читаем данные по I2C и отправляем в UART

Чтобы данные попали в ASI Biont, самый простой путь — выводить их в UART (USB) в виде строки. Я использовал MicroPython, но подойдёт и C++ (Arduino). Вот минимальный код для чтения DHT20 и аналогового датчика почвы:

from machine import Pin, I2C, ADC
import dht20, time

i2c = I2C(scl=Pin(22), sda=Pin(21), freq=100000)
dht = dht20.DHT20(i2c)
soil = ADC(Pin(36))
soil.atten(ADC.ATTN_11DB)

while True:
    dht.measure()
    temp = dht.temperature()
    hum = dht.humidity()
    soil_value = soil.read()
    soil_percent = (4095 - soil_value) / 4095 * 100
    print(f"temp={temp:.1f};hum={hum:.1f};soil={soil_percent:.1f}")
    time.sleep(10)

Обратите внимание: в MicroPython нет готового класса dht20 в стандартной прошивке. Я скопировал библиотеку из репозитория dht20-micropython на GitHub. Для BMP280 и OLED — аналогично, ищите по запросу micropython bmp280 и micropython ssd1306.

Почему я вывожу данные в UART? Потому что ASI Biont имеет штатный механизм для COM-портов — Hardware Bridge (мост). Практически любой микроконтроллер можно подключить к компьютеру через USB, получить виртуальный COM-порт и передавать данные в AI-агента.

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

ASI Biont — это AI-агент, который умеет подключаться к устройствам через разные протоколы: MQTT, Modbus, SSH, OPC-UA, CAN и другие. Но для COM-портов используется специальный скрипт bridge.py, который скачивается из дашборда ASI Biont (не с GitHub!). Он создаёт мост между физическим портом и AI-агентом. Запускается так:

python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200 --rate=10

Где --token — ваш ключ из личного кабинета ASI Biont, --ports — порт, к которому подключён ESP32, --baud — скорость UART (в моём случае 115200), --rate — частота опроса в герцах.

Теперь всё, что ESP32 печатает в UART, автоматически уходит в ASI Biont. Но как заставить AI-агента реагировать на эти данные? Никаких панелей управления. Вы просто пишете в чате ASI Biont задачу на естественном языке:

«Слушай COM3. Если влажность почвы меньше 30% — отправь мне сообщение в Telegram и включи насос на 5 секунд. Данные пиши в Google Sheets каждые 10 минут.»

ASI Biont использует универсальный execute_python — он сам пишет и исполняет Python-скрипт (в песочнице), который через pyserial читает COM-порт, парсит данные, принимает решение и отправляет команды. Поэтому вам не нужно ждать, пока разработчики добавят готовую интеграцию для вашего датчика. Подключается что угодно: ESP32, Arduino, Raspberry Pi, промышленные контроллеры — через любой протокол (pyserial, paramiko, paho-mqtt, pymodbus, aiohttp и др.).

Пример интеграции: автополив и алерты в Telegram

Допустим, я хочу, чтобы при падении влажности почвы ниже 30% AI присылал уведомление в Telegram. Вот как это делает ASI Biont (в упрощённом виде — код генерируется агентом):

import serial
import requests

ser = serial.Serial('COM3', 115200, timeout=1)
line = ser.readline().decode('utf-8').strip()
# Пример строки: "temp=25.3;hum=60;soil=20"
data = dict(item.split('=') for item in line.split(';'))
soil = float(data['soil'])

if soil < 30:
    requests.post(
        'https://api.telegram.org/bot<ВАШ_ТОКЕН>/sendMessage',
        json={'chat_id': '<ЧАТ_ID>', 'text': f'⚠️ Почва просохла до {soil}%! Нужен полив.'}
    )
    # Отправляем команду на ESP32 включить насос
    industrial_command(protocol='serial', command='PUMP_ON')

Кто бы мог подумать, что для интеграции достаточно просто описать логику словами? AI генерирует этот код, выполняет его в sandbox, и всё работает. Никакой ручной настройки параметров соединения — pyserial уже установлен.

Реальный сценарий: умный сад на балконе

Расскажу, как я развернул эту систему у себя на балконе. Собрал ESP32 с датчиками, подключил к ноутбуку (Rock Pi, который работает 24/7). Запустил bridge. В чате ASI Biont написал:

«Найди устройство на COM3. Сделай дашборд с показаниями температуры, влажности воздуха и почвы. Если влажность почвы < 35% — пришли мне алерт в Telegram и включи реле на GPIO26 на 10 секунд. Раз в день присылай сводку.»

Через пару секунд AI ответил: «Готово, контролирую. Ниже ваши данные.» И теперь я получаю уведомления. Когда розы просятся пить — приходит сообщение. Автополив включается автоматически. А один раз я заметил, что температура на балконе поднялась до 40°C — прилетел алерт, я занёс датчик в тень. Это спасло рассаду.

Подводные камни, которые я обнаружил

  1. Питание. ESP32 может питаться от USB, но если датчиков больше трёх, напряжение проседает. Используйте отдельный стабилизатор 3.3V.
  2. Адреса I2C. DHT20 и BMP280 по умолчанию имеют разные адреса (0x38 и 0x76), но если они совпадут, вы увидите мусор в данных. Проверяйте командой i2c.scan().
  3. Кодировка UART. В MicroPython print() добавляет \r\n, а pyserial читает по одному символу. Используйте timeout и буферизацию.
  4. Не все библиотеки поддерживают MicroPython. Например, официальной библиотеки DHT20 нет, но есть порты вроде mcauser/micropython-dht20. Изучите такие репозитории перед покупкой датчика.
  5. Безопасность. Если ваша система использует Telegram API, токен должен быть секретным. Не публикуйте его в открытых скриптах.

Почему это выгоднее, чем писать интеграцию с нуля

Обычно для подключения нового устройства к облаку вам нужно: изучить документацию протокола, написать сервер, настроить веб-хуки, написать фронтенд для управления. С ASI Biont весь этот пайплайн сжимается до двух шагов: описать устройство и логику в чате. AI сам пишет код, выполняет его и выдаёт результат. Это работает благодаря функции execute_python — безопасного выполнения Python-скриптов в sandbox на стороне агента. Поэтому, если вас не устраивает стандартный Modbus или MQTT, вы можете реализовать свой драйвер прямо в чате.

Подключение через execute_python поддерживает любые библиотеки (pyserial, paramiko, paho-mqtt, pymodbus, aiohttp, opcua-asyncio), а значит, устройство может быть каким угодно — от умной лампочки до промышленного контроллера. Не нужно ждать, пока разработчики добавят вашу модель в список поддерживаемых.

Что дальше?

Мой умный сад — это лишь один из вариантов. Вы можете добавить датчики освещённости, влажности воздуха, CO2, видеокамеру (через OpenCV), и ASI Biont будет управлять всем этим. Экосистема строится на диалоге с AI-агентом: описали задачу — получили интеграцию.

Попробуйте сами: перейдите на asibiont.com, создайте проект, скачайте bridge.py из дашборда и подключите свой ESP32. С помощью execute_python вы сможете читать любые I2C-датчики, выводить данные в Telegram, Google Sheets или просто отправлять команды на реле. Приёмник готов — дело за поливом!

← Все статьи

Комментарии

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

Интеграция 1С и 1С-Битрикс с AI-агентом ASI Biont: как автоматизировать документооборот и поддержку через API

13 августа 2026

Better Gaussian Splatting в Julia: как улучшить 3D-рендеринг с помощью vibe coding

13 августа 2026

Курс «Стандарты кибербезопасности: ISO 27001, NIST, PCI DSS» — ваш план на 2026 год для успешной карьеры в сфере информационной безопасности.

13 августа 2026

React — современный фронтенд: обзор курса asibiont.com с AI-обучением, Next.js и TypeScript

13 августа 2026

Ghost CMS + ASI Biont: автоматизация публикаций через API — сценарии, выгоды и подключение

13 августа 2026

Интеграция Energy meters с AI: автоматизация энергоучёта и мониторинга с помощью ASI Biont

13 августа 2026

Промышленный IoT (IIoT) и SCADA-системы: подробный разбор курса asibiont.com

13 августа 2026

Сенсорный экран (FT6206, XPT2046) + ASI Biont: как ИИ-агент оживляет интерфейсы

13 августа 2026

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

13 августа 2026