Проблема: микродисплей требует ручного программирования
OLED-дисплеи на контроллерах SSD1306 и SH1106 — одни из самых популярных в DIY-проектах, IoT и промышленных интерфейсах. Они компактны (0.96–1.3 дюйма), потребляют мало энергии и поддерживают графику. Но есть нюанс: чтобы вывести на экран показания датчика, курс валют или уведомление, нужно писать код на C++ (Arduino) или MicroPython, компилировать прошивку, заливать её в микроконтроллер. Каждое изменение данных — новый цикл разработки. Это отнимает часы, особенно если экранов несколько.
Решение: AI-агент ASI Biont управляет OLED через I²C/SPI
ASI Biont — это AI-агент промышленного класса, который подключается к любому оборудованию через диалог в чате. Для OLED-дисплеев мы используем связку: микроконтроллер (ESP32/Arduino) + Hardware Bridge (bridge.py). AI отправляет команды на COM-порт, bridge передаёт их на микроконтроллер, а тот — выводит текст или графику на OLED. Всё без панелей управления и ручного кода.
Как это работает: пошагово
1. Схема подключения
| Компонент | Роль |
|---|---|
| Микроконтроллер (ESP32 или Arduino) | Принимает из COM-порта команды и управляет OLED по I²C |
| OLED дисплей (SSD1306, SH1106) | Отображает данные (128x64 пикселя) |
| ПК пользователя | Запускает bridge.py, который соединяет AI с COM-портом |
| ASI Biont (облачный сервер) | Генерирует и отправляет команды через WebSocket |
Проводное соединение:
- VCC дисплея → 3.3V (ESP32) или 5V (Arduino)
- GND → GND
- SCL → GPIO22 (ESP32) / A5 (Arduino Uno)
- SDA → GPIO21 (ESP32) / A4 (Arduino Uno)
2. Настройка микроконтроллера
Залейте на ESP32/Arduino прошивку, которая слушает COM-порт и выводит текст на OLED. Вот пример для ESP32 на Arduino IDE (библиотека Adafruit SSD1306):
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
while(1);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
}
void loop() {
if(Serial.available()) {
String cmd = Serial.readStringUntil('\n');
display.clearDisplay();
display.setCursor(0,0);
display.println(cmd);
display.display();
}
}
3. Запуск Hardware Bridge на ПК
- Скачайте
bridge.pyиз дашборда ASI Biont (Devices → Create API Key). - Установите зависимости:
bash pip install pyserial requests websockets - Запустите bridge, указав COM-порт и токен:
bash python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200
Bridge подключается к ASI Biont через WebSocket (единственный канал связи) и готов принимать команды.
4. Команда AI в чате
Пользователь пишет в чат с AI-агентом:
„Подключись к OLED через COM3 на 115200 baud. Отобрази на экране сообщение: «Температура: 24.5°C, влажность: 55%».“
AI выполняет industrial_command(protocol='serial://', command='serial_write_and_read', data='54656d70657261747572653a2032342e35432020202020202020202020200a' ) — hex-код строки "Temperature: 24.5C " с переносом строки.
Bridge получает команду, отправляет данные в COM-порт через pyserial, микроконтроллер принимает и выводит на OLED.
Реальные сценарии интеграции
1. Погода на OLED
AI каждые 5 минут запрашивает погоду через OpenWeatherMap API (через requests) и отправляет на дисплей. Пользователь не пишет ни строчки кода: достаточно описать задачу в чате.
Пример скрипта, который AI генерирует и выполняет в sandbox:
import requests
import json
# Получение погоды
url = "https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY&units=metric"
resp = requests.get(url)
data = resp.json()
temp = data['main']['temp']
humidity = data['main']['humidity']
# Формирование строки для отправки на OLED
message = f"London: {temp}C, {humidity}%"
# AI вызовет industrial_command для отправки этой строки через bridge
print(f"Отправить на OLED: {message}")
2. Уведомления о статусе сервера
AI подключается к серверу по SSH (через paramiko), проверяет нагрузку CPU и отправляет на OLED предупреждение, если загрузка > 90%.
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.100', username='admin', password='pass')
stdin, stdout, stderr = ssh.exec_command('top -bn1
| grep "Cpu(s)" | awk \'{print $2}\'')
cpu_usage = stdout.read().decode().strip()
ssh.close()
if float(cpu_usage) > 90.0:
alert = f"ALERT: CPU {cpu_usage}%"
# AI отправляет alert через industrial_command на OLED
print(f"Отправить на OLED: {alert}")
3. Курс валют на OLED
AI парсит курс USD/RUB с сайта ЦБ РФ (через requests/BeautifulSoup) и каждые 10 минут обновляет дисплей:
import requests
from bs4 import BeautifulSoup
url = "https://www.cbr.ru/currency_base/daily/"
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
# Парсинг курса USD
rate = "75.43" # упрощённо
message = f"USD/RUB: {rate}"
print(f"Отправить на OLED: {message}")
Почему это выгодно?
- Ноль кода: AI пишет всю интеграцию сам. Пользователь только описывает задачу.
- Скорость: подключение за 10 минут, включая настройку bridge.
- Гибкость: можно выводить любые данные — от погоды до показаний PLC.
- Масштабирование: один AI-агент управляет сотней дисплеев одновременно.
Заключение
OLED-дисплеи SSD1306 и SH1106 перестают быть «немыми» индикаторами. С AI-агентом ASI Biont они становятся умными панелями, которые обновляются в реальном времени без участия разработчика. Попробуйте сами: подключите свой микродисплей к ASI Biont на asibiont.com и увидите, как AI оживляет ваш проект.
Комментарии