SPI (Serial Peripheral Interface) — один из самых распространённых интерфейсов для подключения периферии: датчиков температуры, дисплеев, SD-карт, АЦП. До недавнего времени, чтобы заставить данные с таких устройств работать на умного ассистента, приходилось писать десятки строк кода, настраивать MQTT-брокеры и разбираться в протоколах. С появлением ASI Biont всё изменилось: интеграция SPI-устройств с AI-агентом занимает минуты, а весь процесс настраивается через обычный чат. В этой статье разберём, как подключить SPI-устройство к ASI Biont, какие способы существуют и как автоматизировать сбор данных без написания сложного кода с нуля.
Что такое SPI и зачем подключать его к AI-агенту?
SPI — это синхронный последовательный протокол, в котором один мастер управляет несколькими подчинёнными устройствами (slave) через линии SCK (такт), MOSI (данные от мастера), MISO (данные к мастеру) и CS (выбор чипа). Его используют почти везде: от простых датчиков температуры (MAX6675, ADXL345) до цветных дисплеев и флеш-памяти. Основные преимущества — высокая скорость и низкая задержка, но для интеграции с облачными сервисами нужен «мост» между SPI и интернетом.
AI-агенту SPI-устройства интересны по трём причинам:
- Реальный мониторинг: данные датчиков можно анализировать в реальном времени, выявлять аномалии и тренды.
- Управление через чат: пользователь (или сам AI) может отдавать команды устройствам — например, включить вентилятор при перегреве.
- Автоматизация сценариев: связка датчиков с уведомлениями в Telegram или другими внешними сервисами.
Как ASI Biont подключается к SPI-устройствам?
У ASI Biont есть два основных пути для работы с SPI-устройствами:
-
Через COM-порт с помощью Hardware Bridge — если SPI-устройство подключено через микроконтроллер (ESP32, Arduino) или USB-SPI адаптер, которое эмулирует последовательный порт. Hardware Bridge (bridge.py) — это небольшая программа, которую можно скачать из дашборда ASI Biont. Она слушает COM-порт (например, COM3 или /dev/ttyUSB0) и передаёт данные в AI-агент. Команды на отправку данных выполняются через
industrial_command()— это официальный способ обмена данными с bridge. -
Универсальный метод execute_python — AI-агент сам пишет Python-скрипт, который выполняется в песочнице. Этот скрипт может использовать любые библиотеки:
pyserialдля COM-порта,spidevдля прямого доступа к SPI на Raspberry Pi,requestsдля отправки данных в Telegram и т.д. Этот метод позволяет подключать не только SPI, но и любые другие устройства — MQTT, Modbus, OPC-UA, CAN и даже собственные протоколы. Главное — описать в чате, к какому устройству подключиться и какие параметры использовать (порт, IP, baud rate, API-ключ).
В этой статье мы рассмотрим оба подхода, но начнём с реального примера.
Практический пример: ESP32 + датчик MAX6675 + ASI Biont + Telegram
Шаг 1. Подключение датчика к ESP32
Возьмём датчик температуры MAX6675 (термопара K-типа) и ESP32. Подключение простое:
- VCC к 3.3V
- GND к GND
- SCK к GPIO18
- CS к GPIO5
- SO (MISO) к GPIO19
Шаг 2. Прошивка ESP32 на MicroPython
Напишем прошивку, которая каждую секунду читает температуру и отправляет в виде JSON в COM-порт. Это позволит ASI Biont легко парсить данные.
# main.py для ESP32 (MicroPython)
from machine import Pin, SPI
import time
# Настройка SPI
spi = SPI(1, baudrate=1000000, polarity=0, phase=0)
cs = Pin(5, Pin.OUT)
cs.value(1)
def read_temp():
cs.value(0)
data = spi.read(2)
cs.value(1)
temp_raw = ((data[0] << 8) | data[1]) >> 3
temp = temp_raw * 0.25
return temp
while True:
temp = read_temp()
print(f'{"temp": {"value": {temp:.2f}}}')
time.sleep(1)
После прошивки ESP32 появится как COM-порт на вашем компьютере (например, COM3 на Windows, /dev/ttyUSB0 на Linux). Скорость по умолчанию — 115200 бод.
Шаг 3. Настройка интеграции в ASI Biont
Откройте чат с ASI Biont и опишите задачу:
«У меня есть ESP32 на COM3, скорость 115200, данные приходят в JSON формате:
{"temp": {"value": 22.5}}. Нужно читать температуру каждые 5 секунд, и если она выше 25 градусов — отправлять уведомление в Telegram».
AI-агент сгенерирует Python-скрипт, который выполняет эту логику. Пример результата:
# Автоматически сгенерированный код (выполняется в execute_python)
import serial
import requests
import json
import time
TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "ваш_chat_id"
def send_telegram(text):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
payload = {"chat_id": CHAT_ID, "text": text}
requests.post(url, data=payload)
ser = serial.Serial('COM3', 115200, timeout=1)
while True:
line = ser.readline().decode().strip()
if not line:
continue
try:
data = json.loads(line)
temp = data["temp"]["value"]
print(f"Температура: {temp}")
if temp > 25:
send_telegram(f"⚠️ Температура превышает 25°C: {temp}°C")
except Exception as e:
print("Ошибка парсинга:", e)
time.sleep(5)
Всего за несколько секунд AI написал рабочий код, который читает данные из COM-порта, парсит JSON и отправляет уведомления в Telegram. Вам не пришлось вручную писать ни одной строки для интеграции.
Универсальный метод: execute_python для прямого управления SPI
Если у вас нет возможности использовать ESP32, но есть USB-SPI адаптер или Raspberry Pi с подключённым датчиком, ASI Biont может написать скрипт с библиотекой spidev. Например, так можно управлять SPI OLED-дисплеем через чат.
Пример запроса:
«Подключи OLED дисплей через SPI на Raspberry Pi (GPIO8, GPIO11, GPIO10). Выведи на него текст «Hello, ASI Biont!».
AI сгенерирует скрипт с использованием spidev и времени ожидания:
# Скрипт для управления SPI OLED дисплеем
import spidev
import time
# Инициализация SPI
spi = spidev.SpiDev()
spi.open(0, 0) # /dev/spidev0.0
spi.max_speed_hz = 1000000
# Команды для дисплея (упрощённо)
def init_display():
# Настройка контроллера дисплея (SSD1306 и т.п.)
pass
def send_text(text):
# Отправка текста на дисплей
pass
init_display()
send_text("Hello, ASI Biont!")
print("Текст отправлен на дисплей")
Этот подход работает для любых устройств, для которых есть Python-библиотека. ASI Biont сам найдёт и установит нужные зависимости.
Реальные сценарии автоматизации
1. Мониторинг температуры и управление вентилятором
Подключаем к ESP32 датчик температуры и реле, через которое управляется вентилятор. ASI Biont следит за показаниями, и если температура выше нормы — автоматически включает реле (через COM-порт) и отправляет уведомление.
2. Вывод системных метрик на SPI-дисплей
На производстве можно выводить данные о количестве продукции, температуре станка или уровне заполнения бункера на SPI-дисплей. Через чат пользователь запрашивает: «Покажи число произведённых единиц на дисплее», и AI-агент формирует команду для микроконтроллера.
3. Логирование данных с нескольких SPI-датчиков
Если к одному контроллеру подключено несколько SPI-датчиков, ASI Biont может собирать все данные, записывать их в файл или отправлять в базу данных. Это удобно для последующего анализа.
Почему это выгодно?
Раньше интеграция нового устройства требовала:
- ожидания, пока разработчики добавят поддержку протокола;
- написания собственного моста и обработки ошибок;
- изучения документации.
С ASI Biont весь процесс автоматизирован: вы просто описываете задачу на естественном языке, а AI-агент за секунды генерирует код и сразу же его выполняет. Это экономит дни разработки и позволяет сосредоточиться на решении бизнес-задач, а не на низкоуровневых деталях.
Заключение
SPI-устройства — это огромный мир датчиков, дисплеев и контроллеров. С ASI Biont вы можете подключать любые из них без посредников. Используйте Hardware Bridge для COM-портов или execute_python для прямого доступа к устройству — и AI сделает всю рутинную работу за вас.
Попробуйте сами: зайдите на asibiont.com, скачайте bridge.py из дашборда, подключите своё SPI-устройство и опишите в чате, что нужно автоматизировать. Уверен, вы удивитесь, насколько это просто.
Комментарии