Интеграция ESP8266 с ASI Biont: автоматизация отопления через AI-агента
Вы купили ESP8266, припаяли датчик температуры DS18B20 и реле. Теперь нужно, чтобы при похолодании в котельной включался котёл, а в Telegram приходило уведомление. Обычно для этого приходится писать код на MicroPython, настраивать MQTT-брокера, делать Telegram-бота. Но есть способ проще: подключить ESP8266 к AI-агенту ASI Biont — он сам напишет интеграцию, а вам останется только описать задачу в чате.
Что такое ESP8266 и зачем подключать его к AI
ESP8266 — это недорогой Wi-Fi-микроконтроллер на базе чипа Tensilica Xtensa LX106. Он умеет работать с GPIO, I2C, SPI, UART, а благодаря Wi-Fi — передавать данные в интернет. Самое популярное применение — умный дом: датчики температуры, влажности, движения, управление реле и освещением. Но встроенной логики мало для полноценной автоматизации. ASI Biont дополняет ESP8266 «мозгами»: принимает телеметрию, анализирует её, принимает решения и общается с вами через мессенджеры.
Какой способ подключения выбрать
ESP8266 — сетевое устройство, и для него лучше всего подходит MQTT — лёгкий протокол обмена сообщениями IoT. ASI Biont использует библиотеку paho-mqtt. Если устройство работает по HTTP, агент использует aiohttp. Вы также можете опросить устройство по SSH (paramiko), а для COM-портов есть Hardware Bridge. Ниже — таблица популярных протоколов и библиотек:
| Протокол | Библиотека | Когда использовать |
|---|---|---|
| MQTT | paho-mqtt | IoT-устройства, ESP8266, датчики |
| HTTP REST | aiohttp | Устройства с веб-интерфейсом |
| Modbus/TCP | pymodbus | Промышленные контроллеры |
| OPC-UA | opcua-asyncio | SCADA-системы |
Сценарий: мониторинг температуры и управление котлом
Допустим, у нас есть ESP8266 с прошивкой на MicroPython. Датчик DS18B20 подключён к GPIO4, реле к GPIO5. Устройство каждые 10 секунд публикует температуру в топик esp/temp. ASI Biont подписывается на этот топик и при значении ниже 15°C отправляет сообщение в Telegram и включает реле через топик esp/relay.
Прошивка ESP8266 (MicroPython)
import machine, onewire, ds18x20, time
from umqtt.simple import MQTTClient
# Настройка датчика
ds_pin = machine.Pin(4)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
# MQTT
mqtt = MQTTClient('esp8266_client', '192.168.1.100')
mqtt.connect()
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
temp = ds_sensor.read_temp(roms[0])
mqtt.publish(b'esp/temp', str(temp).encode())
time.sleep(10)
Обратите внимание: на устройстве while True — это нормально. Но в ASI Biont скрипты выполняются с таймаутом 30 секунд, поэтому агент использует loop_start() вместо бесконечного цикла.
Скрипт ASI Biont (Python, генерируется автоматически)
import paho.mqtt.client as mqtt
import requests
TELEGRAM_TOKEN = '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11'
CHAT_ID = '987654321'
def on_message(client, userdata, msg):
temp = float(msg.payload)
if temp < 15.0:
requests.post(
f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage',
data={'chat_id': CHAT_ID, 'text': f'Температура в котельной: {temp}°C!'}
)
client.publish('esp/relay', '1')
client = mqtt.Client()
client.on_message = on_message
client.connect('192.168.1.100')
client.subscribe('esp/temp')
client.loop_start()
Этот код использует только paho-mqtt и requests для Telegram — никаких секретных API. Вы можете попросить агента добавить гистерезис, ночное расписание или уведомление при восстановлении температуры.
Как происходит подключение через чат
Вам не нужно настраивать панели управления и кнопки «Добавить устройство». Просто напишите в чате:
«Подключись к брокеру 192.168.1.100, порт 1883. Подпишись на
esp/temp. Если температура ниже 15°C — отправь Telegram-сообщение и включи реле черезesp/relay».
Через несколько секунд ASI Biont сгенерирует и запустит скрипт. Вы можете уточнить условия: «если температура выше 30°C — только уведомление, без включения реле» — и агент скорректирует код.
Универсальный execute_python — подключайте что угодно
Если ваше устройство не поддерживает MQTT, используйте execute_python. ASI Biont сам пишет Python-скрипт с нужной библиотекой: pymodbus, opcua-asyncio, snap7, pyserial, paramiko. Это позволяет подключить промышленные контроллеры, GPS-трекеры, Arduino, Raspberry Pi. Например, вы пишете:
«У меня контроллер МЭК-110, Modbus/TCP, адрес 192.168.0.10, порт 502, читать регистр 40001 каждые 20 секунд».
И AI создаёт скрипт для чтения данных. Никаких ожиданий «добавьте поддержку нашего устройства» — подключайте что угодно прямо сейчас.
Поддержка COM-портов через Hardware Bridge
Для устройств с RS-232/RS-485 (например, старые котлы или счётчики) используйте bridge.py. Он скачивается из дашборда ASI Biont (не с GitHub) и запускается на вашем ПК или Raspberry Pi:
python bridge.py --token=XXX --ports=COM3 --baud 115200 --rate=10
Bridge автоматически передаёт данные с COM-порта в ASI Biont, а команды — обратно на устройство. Это удобно, если у вас нет подключения к сети у самого контроллера.
Почему это выгодно?
- Скорость. Код интеграции пишется за секунды, а не за вечер.
- Гибкость. Для нового устройства достаточно описать протокол в чате.
- Безопасность. Скрипты выполняются в sandbox, ограничены по времени (30 секунд).
- Масштабируемость. Один AI-агент может обслуживать десятки устройств одновременно.
Типичные подводные камни
- QoS. Для надёжности в MQTT используйте QoS=1, иначе сообщения могут теряться.
- Retained-сообщения. Если топик сохраняет последнее значение, скрипт может сработать при старте. Учитывайте это в логике.
- Таймаут. В
execute_pythonнельзя использоватьwhile True— подойдётloop_start()илиasyncioс ограничением по времени. - Кодировки. Текст из Telegram должен быть в UTF-8, иначе могут быть проблемы с кириллицей.
Итог: попробуйте сами
Подключите свой ESP8266 к ASI Biont за 10 минут. Перейдите на asibiont.com, создайте проект и просто опишите в чате, что у вас за устройство и что вы хотите автоматизировать. AI-агент возьмёт на себя всю рутину — а вы сможете управлять умным домом из Telegram.
Комментарии