Введение
TFT LCD на базе контроллеров ILI9341 (320×240) и ST7789 (240×240) — одни из самых популярных дисплеев для встраиваемых систем. Они используются в умных часах, портативных метеостанциях и, главное, в промышленных IoT-панелях для визуализации показаний датчиков. Но классическая разработка под такие экраны требует написания кода на C/C++ в Arduino IDE, настройки библиотек (Adafruit GFX, TFT_eSPI) и ручной отрисовки каждого элемента. ASI Biont меняет этот подход: AI-агент сам пишет код, подключается к ESP32 по MQTT, получает данные с датчиков и рисует на дисплее графики, тексты и анимации по текстовой команде из чата.
В этой статье мы разберём, как подключить TFT LCD (ILI9341/ST7789) к AI-агенту ASI Biont через ESP32 и MQTT, и как с помощью одной фразы «покажи температуру цеха» получить готовый дашборд на физическом экране.
Какой способ подключения используется и почему
Для интеграции TFT LCD с ASI Biont мы используем MQTT — лёгкий протокол обмена сообщениями, идеально подходящий для IoT. ESP32 подключается к Wi-Fi, подписывается на MQTT-топик, и AI-агент публикует в этот топик команды и данные. ESP32 получает сообщение, парсит JSON и выводит информацию на дисплей.
Почему MQTT, а не COM-порт или Modbus?
- Дисплей не имеет собственного IP-адреса, но ESP32 с дисплеем — полноценный MQTT-клиент.
- MQTT позволяет AI-агенту работать из облака, не требуя локального bridge на ПК.
- Протокол двусторонний: ESP32 отправляет данные с датчиков (температура, давление), AI-агент отправляет команды на обновление дисплея.
Конкретный сценарий: дашборд температуры в цехе №3
Представьте: у вас есть ESP32 с дисплеем ILI9341 и датчиком DHT22. Нужно, чтобы на экране в реальном времени отображалась температура, а при превышении порога +40°C появлялась красная рамка и текст «АВАРИЯ». Всё это настраивается через диалог с ASI Biont.
Шаг 1. Загрузка прошивки на ESP32
Пользователь загружает на ESP32 стандартный скетч, который подключается к Wi-Fi, читает DHT22 и публикует данные в топик factory/workshop3/temperature. Код на MicroPython:
import network
import time
import ujson
from umqtt.simple import MQTTClient
from machine import Pin
import dht
# Настройки
SSID = "YourWiFi"
PASS = "YourPassword"
BROKER = "mqtt.yourbroker.com"
TOPIC_DATA = b"factory/workshop3/temperature"
TOPIC_CMD = b"factory/workshop3/display_cmd"
dht_pin = Pin(4, Pin.IN, Pin.PULL_UP)
sensor = dht.DHT22(dht_pin)
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASS)
while not wlan.isconnected():
time.sleep(1)
print("WiFi connected")
def mqtt_callback(topic, msg):
# Здесь ESP32 получает команду от AI-агента
print("Received:", msg)
# Парсим JSON и управляем дисплеем
def main():
connect_wifi()
client = MQTTClient("esp32_display", BROKER)
client.set_callback(mqtt_callback)
client.connect()
client.subscribe(TOPIC_CMD)
while True:
try:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
payload = ujson.dumps({"temp": temp, "hum": hum})
client.publish(TOPIC_DATA, payload)
client.check_msg() # проверяем новые команды
time.sleep(5)
except OSError as e:
print("Error:", e)
time.sleep(2)
main()
На стороне ASI Biont пользователь пишет в чате: «Подключись к MQTT-брокеру mqtt.yourbroker.com. Слушай топик factory/workshop3/temperature. Если температура выше 40°C, отправь в топик factory/workshop3/display_cmd JSON {"type":"alert","text":"АВАРИЯ: перегрев","color":"red"}. Иначе отправляй {"type":"data","temp":...}». AI-агент генерирует Python-скрипт с paho-mqtt и запускает его в sandbox.
Шаг 2. Пример кода AI-агента (выполняется в sandbox ASI Biont)
import paho.mqtt.client as mqtt
import json
import time
BROKER = "mqtt.yourbroker.com"
TOPIC_DATA = "factory/workshop3/temperature"
TOPIC_CMD = "factory/workshop3/display_cmd"
THRESHOLD = 40.0
def on_message(client, userdata, msg):
data = json.loads(msg.payload.decode())
temp = data.get("temp", 0)
if temp > THRESHOLD:
cmd = {"type": "alert", "text": f"АВАРИЯ: перегрев {temp:.1f}°C", "color": "red"}
else:
cmd = {"type": "data", "temp": temp, "hum": data.get("hum")}
client.publish(TOPIC_CMD, json.dumps(cmd))
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC_DATA)
client.loop_start()
time.sleep(30) # работаем 30 секунд (таймаут sandbox)
client.loop_stop()
Шаг 3. Что видит пользователь
ESP32 получает команду от AI-агента, парсит её и рисует на ILI9341:
- Если type: "data" — выводит текущую температуру и влажность зелёным шрифтом на чёрном фоне.
- Если type: "alert" — заливает экран красным, крупным шрифтом пишет текст аварии, включает зуммер.
Всё это без единой строчки кода со стороны пользователя — только описание задачи в чате.
Почему это выгодно
- Скорость: интеграция занимает 5 минут вместо дня написания кода.
- Гибкость: можно менять логику отображения одной фразой: «покажи график загрузки за последний час» или «выведи статусы всех станков».
- Универсальность: ASI Biont подключается к любому устройству через execute_python — AI сам пишет код под ваше оборудование. Не нужно ждать обновлений или покупать специальные плагины.
Заключение
TFT LCD (ILI9341/ST7789) в связке с ESP32 и AI-агентом ASI Biont превращается из простого дисплея в мощную промышленную панель управления, которая адаптируется под ваши задачи в реальном времени. Больше не нужно писать сложные прошивки — просто опишите, что вы хотите видеть на экране, и AI-агент сделает всё сам.
Попробуйте интеграцию прямо сейчас на asibiont.com. Подключите свой ESP32 с дисплеем и управляйте отображением через чат — бесплатно и без установки дополнительного ПО.
Комментарии