How to Connect TFT LCD (ILI9341, ST7789) to ASI Biont AI Agent for Real-Time IoT Data Visualization

Why Integrate a TFT LCD Display with an AI Agent?

TFT LCD displays based on ILI9341 (320×240) and ST7789 (240×240 or 135×240) controllers are ubiquitous in maker projects and industrial dashboards. They’re cheap (<$10), fast, and support SPI communication. But manually coding a data pipeline—fetching sensor values, parsing them, updating the screen—is tedious and inflexible. Connecting such a display to an AI agent like ASI Biont changes the game: you describe what you want to see (e.g., “show temperature and humidity from my DHT22, update every 5 seconds, highlight red if temp > 30°C”) and the AI writes the entire integration code for you. No dashboard panels, no dragging widgets—just chat.

Which Connection Method Does ASI Biont Use?

ASI Biont supports multiple hardware interfaces, but for a local TFT LCD connected to a microcontroller (ESP32, Arduino, Raspberry Pi Pico), the most direct path is Hardware Bridge over COM port (RS-232/USB). The user runs bridge.py on their PC, which connects to ASI Biont’s cloud via WebSocket. The AI sends commands through the industrial_command tool with protocol serial://, and the bridge writes/reads to the COM port where the microcontroller is connected. For network‑connected displays (e.g., an ESP32 with Wi-Fi), MQTT or HTTP API via execute_python works—the AI writes a Python script that runs in the ASI Biont sandbox and talks to the device over the network.

Concrete Use Case: ESP32 + ILI9341 + DHT22 → Telegram Alerts

Scenario: You have an ESP32 with an ILI9341 TFT display and a DHT22 temperature/humidity sensor. You want the AI to:
- Read sensor data every 10 seconds
- Display temperature and humidity on the TFT with a custom layout
- Send a Telegram alert if temperature exceeds 35°C

Step 1: Hardware Setup

Component Pin (ESP32)
ILI9341 CS GPIO5
ILI9341 DC GPIO18
ILI9341 RST GPIO23
ILI9341 MOSI GPIO23 (VSPI MOSI)
ILI9341 SCK GPIO18 (VSPI SCK)
DHT22 Data GPIO4

Wire the DHT22 with a 4.7kΩ pull‑up resistor between VCC and data.

Step 2: Microcontroller Firmware (MicroPython)

Save this as main.py on the ESP32. It waits for commands over UART (USB) from the bridge.

import machine, dht, time, ustruct
from ili9341 import ILI9341
from machine import Pin, SPI

# SPI setup for ILI9341
spi = SPI(2, baudrate=40000000, sck=Pin(18), mosi=Pin(23))
display = ILI9341(spi, cs=Pin(5), dc=Pin(19), rst=Pin(22))
display.fill(0)  # black background

sensor = dht.DHT22(Pin(4))
uart = machine.UART(0, baudrate=115200)

while True:
    if uart.any():
        cmd = uart.readline().strip().decode()
        if cmd == "READ":
            sensor.measure()
            temp = sensor.temperature()
            hum = sensor.humidity()
            display.fill_rect(0, 0, 240, 80, 0)  # clear text area
            display.text(f"Temp: {temp:.1f}C", 10, 10, 0xFFFF)
            display.text(f"Hum: {hum:.1f}%", 10, 40, 0xFFFF)
            response = f"TEMP={temp:.1f},HUM={hum:.1f}\n"
            uart.write(response)
    time.sleep(0.1)

Step 3: Bridge Configuration

On your PC, install dependencies:

pip install pyserial requests websockets

Download bridge.py from the ASI Biont dashboard (Devices → Create API Key → Download bridge). Run:

python bridge.py --token=YOUR_TOKEN --ports=COM3 --baud=115200

Step 4: Chat with ASI Biont

In the chat, describe your setup:

“Connect to ESP32 on COM3 at 115200 baud. Send the command ‘READ’ every 10 seconds. Parse the response for TEMP and HUM. Display on TFT. If TEMP > 35, send a Telegram alert.”

The AI will generate and execute a Python script using industrial_command:

from asi_biont_sdk import industrial_command
import time

while True:
    result = industrial_command(
        protocol='serial://',
        command='serial_write_and_read',
        data='524541440a',  # hex for "READ\n"
        port='COM3',
        baud=115200
    )
    response = bytes.fromhex(result).decode().strip()
    # parse "TEMP=25.3,HUM=60.1"
    parts = response.split(',')
    temp = float(parts[0].split('=')[1])
    hum = float(parts[1].split('=')[1])
    if temp > 35:
        send_telegram_alert(f"Temperature high: {temp}C")
    time.sleep(10)

Note: The send_telegram_alert function is also generated by the AI using the requests library (available in sandbox) and your Telegram bot token.

Alternative: MQTT with ESP32

If your ESP32 is Wi‑Fi enabled and you prefer network communication, use MQTT. The ESP32 publishes sensor data to a topic (e.g., sensor/temp). The AI subscribes via paho-mqtt in execute_python and updates a virtual dashboard—or even sends commands back to the display (e.g., change screen color).

Why This Approach Saves Time

  • Zero manual coding: You describe the logic in plain English; the AI writes the integration.
  • Flexible: Change the display layout, add alerts, or switch sensors by simply chatting.
  • No dashboard lock‑in: Everything flows through the chat conversation—no panels to configure.

Pitfalls to Avoid

  • Baud rate mismatch: Ensure the bridge and microcontroller use the same baud rate (115200 recommended).
  • Power supply: ILI9341 draws ~80mA; use a stable 3.3V regulator if running from battery.
  • Timeouts: The bridge’s serial_write_and_read has a 2‑second timeout. If your sensor takes longer, split into separate write and read commands.

Conclusion

Integrating an ILI9341 or ST7789 TFT LCD with ASI Biont turns a basic display into an intelligent interactive dashboard. Whether you’re monitoring a greenhouse, a server room, or a home automation system, the AI agent handles the heavy lifting—from parsing sensor data to triggering alerts. Try it yourself: describe your display and sensor setup in the chat at asibiont.com. No coding skills required—just tell the AI what you need.

← All posts

Comments