Введение: зачем подключать сенсорный дисплей к AI-агенту?
Сенсорные дисплеи на контроллерах FT6206 и XPT2046 — основа современных пользовательских интерфейсов в умном доме, киосках самообслуживания, промышленных панелях управления и IoT-терминалах. Однако их потенциал раскрывается в полной мере только при интеграции с интеллектуальной системой, способной анализировать касания, интерпретировать жесты и принимать решения на основе данных. AI-агент ASI Biont позволяет превратить обычный тачскрин в интерактивный интерфейс с голосовым управлением, предиктивной аналитикой и автоматизацией сценариев. В этой статье мы разберём, как подключить сенсорный дисплей на базе FT6206 или XPT2046 к ASI Biont, используя реальные протоколы: I²C, SPI, MQTT и Hardware Bridge.
Как AI-агент подключается к тачскрину?
ASI Biont не имеет «родной» поддержки сенсорных дисплеев — вместо этого он использует универсальный подход: execute_python. Пользователь описывает в чате с AI задачу, например: «Подключись к моему Raspberry Pi через SSH, считай координаты касания с FT6206 по I²C, и если нажата кнопка „Тревога“ — отправь уведомление в Telegram». AI сам генерирует и выполняет Python-скрипт с библиотеками smbus2 (I²C) или spidev (SPI), считывает данные с тачскрина, обрабатывает их и отправляет команды на MQTT-брокер или через Telegram API. Всё подключение происходит без панелей управления — только диалог в чате.
Способы подключения, доступные в ASI Biont
| Способ | Протокол | Когда используется |
|---|---|---|
| SSH (paramiko) | SSH | Если тачскрин подключён к Raspberry Pi / Orange Pi / BeagleBone (через GPIO I²C/SPI) |
| Hardware Bridge (bridge.py) | COM-порт (RS-232/RS-485) | Если тачскрин — часть промышленного терминала с COM-портом (например, через преобразователь USB-UART) |
| MQTT (paho-mqtt) | MQTT | Если ESP32 с тачскрином публикует данные касаний по MQTT |
| execute_python (sandbox) | Универсальный | Для любой логики: AI пишет скрипт с smbus2, spidev, requests и выполняет его в облаке |
Сценарий 1: Raspberry Pi + FT6206 (I²C) + ASI Biont
Задача: Считать координаты касания с ёмкостного тачскрина FT6206, подключённого к Raspberry Pi по I²C, и при каждом касании отправлять данные в Telegram-бот ASI Biont.
Аппаратная часть
- Raspberry Pi 4 (Raspberry Pi OS)
- Дисплей с контроллером FT6206 (например, 5-дюймовый TFT с ёмкостным сенсором)
- Подключение: SDA → GPIO2, SCL → GPIO3, VCC → 3.3V, GND → GND
- Включение I²C:
sudo raspi-config→ Interface Options → I2C → Enable
Что делает AI в чате
Пользователь пишет:
«Подключись к моему Raspberry Pi по SSH (IP: 192.168.1.100, user: pi, pass: mypass). Считай координаты касания с FT6206 по адресу 0x38 через I²C. При каждом касании отправляй координаты в Telegram-бот @my_bot с токеном 123456:ABC. Не используй бесконечный цикл — сделай однократное чтение.»
AI генерирует и выполняет скрипт:
import smbus2
import time
import requests
# Настройки I²C
I2C_ADDR = 0x38
bus = smbus2.SMBus(1)
# Чтение регистров касания (FT6206: регистр 0x02 — статус, 0x03-0x06 — координаты)
try:
status = bus.read_byte_data(I2C_ADDR, 0x02)
if status & 0x01: # Касание есть
x_h = bus.read_byte_data(I2C_ADDR, 0x03)
x_l = bus.read_byte_data(I2C_ADDR, 0x04)
y_h = bus.read_byte_data(I2C_ADDR, 0x05)
y_l = bus.read_byte_data(I2C_ADDR, 0x06)
x = ((x_h & 0x0F) << 8) | x_l
y = ((y_h & 0x0F) << 8) | y_l
# Отправка в Telegram
token = "123456:ABC"
chat_id = "@my_bot"
text = f"Касание: x={x}, y={y}"
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, json={"chat_id": chat_id, "text": text})
print(f"Отправлено: {text}")
else:
print("Нет касания")
except Exception as e:
print(f"Ошибка: {e}")
finally:
bus.close()
Результат: AI выводит координаты касания и отправляет их в Telegram. Пользователь может попросить AI запускать скрипт по расписанию (через cron) или добавить логику: например, при касании в зоне «Включить свет» отправлять MQTT-команду на ESP32.
Сценарий 2: ESP32 + XPT2046 (SPI) + ASI Biont через MQTT
Задача: Резистивный тачскрин XPT2046 подключён к ESP32 по SPI. ESP32 публикует координаты касания по MQTT на брокер. ASI Biont подписывается на топик и при касании в определённой области включает реле.
Прошивка ESP32 (MicroPython)
import machine
import ustruct
import time
from umqtt.simple import MQTTClient
# SPI настройки
spi = machine.SPI(1, baudrate=1000000, polarity=0, phase=0)
cs = machine.Pin(5, machine.Pin.OUT)
# MQTT
client = MQTTClient("esp32", "mqtt.broker.com", port=1883, user="user", password="pass")
client.connect()
def read_xpt2046():
cs.value(0)
spi.write(b'\x90') # Команда чтения X
data = spi.read(2)
cs.value(1)
x = ustruct.unpack('>H', data)[0] >> 3
return x
while True:
x = read_xpt2046()
client.publish("touch/coord", str(x))
time.sleep(0.1)
Что делает AI в ASI Biont
Пользователь пишет:
«Подключись к MQTT-брокеру mqtt.broker.com:1883 с логином user и паролем pass. Подпишись на топик touch/coord. Если значение больше 2000 — включи реле (опубликуй в топик relay/1 команду ON).»
AI генерирует и выполняет скрипт:
import paho.mqtt.client as mqtt
def on_message(client, userdata, msg):
value = int(msg.payload.decode())
print(f"Получено: {value}")
if value > 2000:
client.publish("relay/1", "ON")
print("Реле включено")
else:
client.publish("relay/1", "OFF")
client = mqtt.Client()
client.username_pw_set("user", "pass")
client.on_message = on_message
client.connect("mqtt.broker.com", 1883, 60)
client.subscribe("touch/coord")
client.loop_start() # Не блокирует
print("Подписка активна 30 секунд...")
import time
time.sleep(30)
client.loop_stop()
print("Завершено")
Результат: AI подписывается на MQTT-топик, анализирует касания и управляет реле. Пользователь может попросить AI добавить гистерезис, отправить уведомление в Telegram или записать в базу данных.
Сценарий 3: Промышленный терминал с COM-портом + Hardware Bridge
Задача: Сенсорный дисплей XPT2046 встроен в промышленный контроллер, который передаёт координаты касания по RS-485 (COM3, 115200 бод) в виде HEX-строк: TOUCH;X=0123;Y=0456\n. Нужно подключиться через Hardware Bridge и при касании в зоне «СТОП» отправлять команду аварийной остановки на PLC по Modbus TCP.
Настройка Hardware Bridge
- Скачать bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
- Установить зависимости:
pip install pyserial requests websockets - Запустить bridge:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200
Что делает AI в чате
Пользователь пишет:
«Подключись к моему Hardware Bridge. Открой COM3 на 115200 бод. Читай данные. Если получишь строку с X=0500,Y=0300 (зона кнопки СТОП) — отправь команду на PLC 192.168.0.10 по Modbus TCP: установить регистр 0 в значение 1.»
AI использует industrial_command с протоколом serial://:
industrial_command(
protocol='serial://',
command='serial_write_and_read',
data='AT+READ\n', # hex: 41542b524541440a
port='COM3',
baud=115200
)
Но так как нужно читать непрерывно, AI использует execute_python с библиотекой pyserial (через bridge это невозможно — bridge не поддерживает длительные чтения). Вместо этого AI предлагает запустить скрипт на ПК пользователя через SSH (если есть SSH-доступ) или через планировщик. Однако в рамках статьи мы покажем, как AI обрабатывает однократное чтение:
import serial
ser = serial.Serial('COM3', 115200, timeout=2)
data = ser.readline().decode().strip()
print(f"Получено: {data}")
if 'X=0500' in data and 'Y=0300' in data:
# Отправка Modbus команды
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('192.168.0.10', port=502)
client.write_register(0, 1)
client.close()
print("Аварийная остановка!")
ser.close()
Результат: AI читает данные с COM-порта, анализирует координаты касания и при совпадении с зоной отправляет команду на PLC. В реальном проекте AI настроит cron-задачу на Raspberry Pi для периодического опроса.
Преимущества интеграции через ASI Biont
- Zero-code для пользователя: Вам не нужно писать ни строчки кода. Всю интеграцию делает AI: он пишет скрипты на Python, подключается по SSH, MQTT или через Hardware Bridge, обрабатывает данные и отправляет команды.
- Универсальность: ASI Biont подключается к любому устройству через
execute_python. Если ваш тачскрин работает по нестандартному протоколу — AI адаптируется. - Скорость: Интеграция занимает секунды. Опишите задачу — и AI уже выполняет код.
- Гибкость: Вы можете менять логику на лету: «Добавь звуковой сигнал при касании», «Записывай координаты в Google Sheets», «Отправляй уведомление при трёх быстрых касаниях».
Заключение
Сенсорный дисплей FT6206 или XPT2046 — это не просто экран, а полноценный входной интерфейс для AI-агента. С ASI Biont вы можете за минуту настроить сценарий, который превратит тачскрин в умную панель управления: от мониторинга температуры до аварийного отключения оборудования. Попробуйте интеграцию уже сегодня на asibiont.com — опишите в чате, к какому устройству подключаетесь, и AI сделает всё остальное.
Комментарии