Проблема: данные есть, а глазам не видно
Вы запустили IoT-проект: ESP32 собирает температуру, влажность, давление, но все цифры живут где-то в облаке или в Telegram-боте. Чтобы взглянуть на показания, нужно открыть телефон или ноутбук. А если хочется видеть ключевую информацию прямо на столе — например, на небольшом OLED-дисплее? И при этом управлять этим дисплеем через AI-агента, который сам решает, что и когда показывать?
OLED-дисплеи на контроллерах SSD1306 и SH1106 — дешёвые, экономичные, с контрастным изображением. Их часто используют для вывода времени, погоды, статуса умного дома. Но обычно прошивку пишут вручную, и любое изменение логики требует перепрошивки. AI-агент ASI Biont решает эту проблему: он подключается к ESP32 через MQTT, собирает данные с датчиков и отправляет команды на дисплей — всё через обычный чат.
Что такое OLED SSD1306/SH1106 и зачем подключать к AI?
OLED (Organic Light-Emitting Diode) — дисплей, который светится сам, без подсветки. SSD1306 и SH1106 — самые популярные контроллеры для маленьких экранов 128×64 или 128×32 пикселей. Они работают по I2C или SPI, потребляют единицы миллиампер. Идеальны для:
- отображения текущих показаний датчиков (температура, влажность, CO₂);
- вывода уведомлений ("Дверь открыта", "Полив включён");
- визуализации трендов (графики, гистограммы).
Интеграция с ASI Biont превращает такой дисплей в «живой экран» AI-агента: вы говорите в чате «Покажи температуру в спальне на OLED», и AI сам отправляет команду на ESP32, который выводит текст. Никакой ручной перепрошивки.
Как ASI Biont подключается к OLED через ESP32
Самый распространённый сценарий — ESP32 (или ESP8266) с подключенным по I2C OLED-дисплеем. ESP32 через Wi-Fi связывается с MQTT-брокером (например, Mosquitto на Raspberry Pi или облачный HiveMQ). AI-агент ASI Biont использует execute_python — он пишет Python-скрипт с библиотекой paho-mqtt, который подключается к тому же брокеру, публикует сообщения и подписывается на топики.
Почему MQTT?
- Протокол лёгкий, подходит для микроконтроллеров.
- Поддерживает publish/subscribe — AI может отправить команду, а ESP32 её получит и сразу обновит дисплей.
- Не требует постоянного соединения — ESP32 может спать, просыпаться по таймеру.
Схема:
1. ESP32 (с OLED) подключается к Wi-Fi и MQTT-брокеру.
2. ESP32 подписан на топик esp32/oled/command.
3. AI через execute_python публикует в этот топик JSON с текстом или командой (например, {"text":"25.3°C"}).
4. ESP32 получает сообщение, парсит JSON и выводит на OLED.
5. Одновременно ESP32 публикует данные с датчика (DHT22) в топик esp32/sensor — AI читает их и анализирует.
Конкретный сценарий: мониторинг температуры и управление OLED через Telegram
Оборудование:
- ESP32 DevKit
- OLED 128×64 (SSD1306, I2C)
- Датчик DHT22 (температура/влажность)
- MQTT-брокер (в примере — публичный test.mosquitto.org)
Что делает AI:
- Раз в 30 секунд читает показания с топика esp32/dht22 (их публикует ESP32).
- Если температура выходит за пределы 18–28°C — отправляет уведомление в Telegram.
- По команде из чата (например, «Покажи температуру на OLED») пишет текст на дисплей.
Код для ESP32 (MicroPython)
Установите MicroPython на ESP32, загрузите библиотеки ssd1306.py, umqtt.simple.py (оба есть в официальном репозитории MicroPython).
import network
import time
import machine
from machine import Pin, I2C
import ssd1306
from umqtt.simple import MQTTClient
import json
# Настройка OLED
i2c = I2C(scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
# Wi-Fi
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.connect('your_ssid', 'your_password')
while not sta.isconnected():
time.sleep(1)
# MQTT
BROKER = 'test.mosquitto.org'
client = MQTTClient('esp32_oled', BROKER)
def cb(topic, msg):
# topic = b'esp32/oled/command'
data = json.loads(msg.decode())
if 'text' in data:
oled.fill(0)
oled.text(data['text'], 0, 0)
oled.show()
client.set_callback(cb)
client.connect()
client.subscribe(b'esp32/oled/command')
# Цикл
while True:
client.wait_msg() # блокирующий, ждёт сообщения
Код на стороне AI (выполняется в execute_python)
Пользователь пишет в чате: «Подключись к MQTT брокеру test.mosquitto.org, подпишись на топик esp32/dht22, и если температура выше 28°C, отправь на OLED текст „Жара!“ и уведомление в Telegram». AI генерирует и выполняет такой скрипт:
import paho.mqtt.client as mqtt
import time
import requests
TELEGRAM_TOKEN = 'ваш_токен'
CHAT_ID = 'ваш_id'
def on_message(client, userdata, msg):
if msg.topic == 'esp32/dht22':
temp = float(msg.payload.decode().split(',')[0]) # например "25.3,60.1"
if temp > 28:
# Отправка команды на OLED
client.publish('esp32/oled/command', '{"text":"Жара!"}')
# Уведомление в Telegram
requests.post(f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage',
json={'chat_id': CHAT_ID, 'text': f'Температура {temp}°C!'})
broker = 'test.mosquitto.org'
client = mqtt.Client()
client.on_message = on_message
client.connect(broker, 1883, 60)
client.subscribe('esp32/dht22')
client.loop_start()
time.sleep(60) # работаем 60 секунд
client.loop_stop()
Обратите внимание: в execute_python нельзя использовать бесконечный цикл — таймаут 30 секунд. Поэтому скрипт выше работает ограниченное время. Для постоянного мониторинга AI может запускать такой скрипт периодически или использовать встроенный планировщик.
Альтернативный способ: Hardware Bridge + COM-порт
Если OLED подключён не через ESP32, а напрямую к ПК через USB-UART (например, Arduino Uno + OLED), вы можете использовать Hardware Bridge. Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge), укажите порт COM3 и baud rate 115200. Затем AI отправляет команды через industrial_command с протоколом serial://:
industrial_command(protocol='serial://COM3', command='serial_write_and_read', data='48454c500a')
Но этот способ требует постоянного подключения ПК. Для автономного IoT-проекта гораздо удобнее MQTT.
Как это работает в чате: от запроса до результата
Пользователь пишет:
«Подключи ESP32 с OLED (SSD1306) к MQTT брокеру 192.168.1.10. Подпишись на топик esp32/dht22 и публикуй на OLED текущую температуру каждые 10 секунд. Если влажность ниже 30%, отправь мне в Telegram предупреждение.»
AI-агент сам пишет код интеграции на Python (для выполнения в execute_python) и, если нужно, генерирует код для микроконтроллера. Вы получаете готовое решение за секунды. Не нужно открывать IDE, компилировать, заливать. Всё через диалог.
Почему это выгодно?
- Экономия времени. Интеграция, которая вручную заняла бы час, делается за минуту.
- Гибкость. AI может динамически менять текст на дисплее: сегодня — температура, завтра — курс биткоина, послезавтра — статус умного дома.
- Единый центр управления. Все IoT-устройства видны AI-агенту. Данные с датчиков, команды на дисплей, уведомления в Telegram — всё в одном чате.
- Zero-код для пользователя. Вы просто описываете цель на естественном языке.
Заключение
OLED-дисплей SSD1306 или SH1106 перестаёт быть просто пассивным индикатором — с ASI Biont он становится «лицом» вашего AI-агента. Подключите ESP32 через MQTT, дайте агенту доступ к брокеру — и он сам решит, какую информацию выводить и когда.
Хотите попробовать? Зайдите на asibiont.com, создайте проект и попросите AI подключить ваш OLED. Убедитесь, что интеграция занимает пару сообщений в чате — и дисплей начинает жить своей умной жизнью.
Комментарии