Введение
SPI (Serial Peripheral Interface) — один из самых популярных последовательных интерфейсов для подключения периферийных устройств к микроконтроллерам. Датчики температуры (MAX31855, ADXL345), OLED-дисплеи (SSD1306), SD-карты, ADC-преобразователи — всё это работает по SPI. Но как сделать так, чтобы данные с этих устройств не просто выводились на экран, а уходили в облачный AI-агент, который может анализировать тренды, отправлять уведомления и управлять исполнительными механизмами?
В этой статье я покажу, как ASI Biont — AI-агент для автоматизации — подключается к SPI-устройствам двумя основными способами: через COM-порт (с помощью Hardware Bridge) и через MQTT (с использованием ESP32). Вы узнаете, как за пару минут настроить мониторинг температуры с датчика MAX31855 и отправлять данные в Telegram, не написав ни строчки кода вручную.
Что такое SPI и зачем его подключать к AI?
SPI — это синхронный последовательный интерфейс с четырьмя линиями: MOSI (Master Out Slave In), MISO (Master In Slave Out), SCLK (Clock) и CS (Chip Select). Он работает быстрее I2C (до 10+ МГц) и идеально подходит для задач, где важна скорость: снятие показаний с высокочастотных датчиков, передача данных на дисплей, запись на SD-карту.
Подключение SPI к AI-агенту даёт:
- Автоматический сбор данных (температура, давление, влажность) с промышленных датчиков.
- Удалённое управление дисплеями и реле через чат (Telegram, Slack).
- Логирование на SD-карту с последующим анализом трендов.
- Мгновенные уведомления при выходе параметров за пределы нормы.
Как ASI Biont подключается к SPI-устройствам
ASI Biont не имеет прямого физического доступа к вашим устройствам — он работает в облаке. Для интеграции используются два основных канала:
1. Hardware Bridge (COM-порт)
Если ваше SPI-устройство подключено к компьютеру через USB-UART переходник (например, FT232), вы можете использовать Hardware Bridge — Python-скрипт, который запускается на вашем ПК и соединяется с ASI Biont через WebSocket. AI отправляет команды через industrial_command с протоколом serial://, и bridge читает/пишет в COM-порт локально.
Пример настройки:
1. Подключите USB-UART к компьютеру. Определите порт (COM3 на Windows, /dev/ttyUSB0 на Linux).
2. Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
3. Запустите bridge:
bash
python bridge.py --token=YOUR_API_TOKEN --ports=COM3 --baud=115200
4. В чате с AI напишите: «Подключись к COM3, скорость 115200. Прочитай данные с датчика температуры MAX31855, подключённого по SPI. Если температура превышает 50°C, отправь предупреждение в Telegram».
AI автоматически сгенерирует и выполнит код для чтения данных через SPI, используя библиотеку spidev на стороне bridge (через serial_write_and_read с hex-командами) или через MQTT (если ESP32 публикует данные).
2. MQTT (ESP32)
Если SPI-устройство подключено к ESP32, ESP32 может публиковать данные в MQTT-брокер. ASI Biont подписывается на топик и получает данные в реальном времени. Этот способ проще для IoT-сценариев.
Пример схемы:
- ESP32 + датчик MAX31855 (термопара K-типа) → MQTT → ASI Biont → Telegram.
Реальный сценарий: ESP32 + датчик температуры MAX31855 + ASI Biont
Шаг 1. Подключение датчика к ESP32
Схема подключения MAX31855 к ESP32:
| MAX31855 | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SCK | GPIO18 |
| CS | GPIO5 |
| SO (MISO) | GPIO19 |
Шаг 2. Прошивка ESP32 (MicroPython)
Загрузите на ESP32 следующий код, который читает температуру и отправляет её в MQTT:
import network
import time
from machine import Pin, SPI
import max31855 # библиотека для MAX31855
import ujson
from umqtt.simple import MQTTClient
# Настройки Wi-Fi
WIFI_SSID = "your_ssid"
WIFI_PASS = "your_password"
# Настройки MQTT (например, HiveMQ Cloud)
MQTT_BROKER = "broker.hivemq.com"
MQTT_PORT = 1883
MQTT_TOPIC = b"sensor/temperature"
# Подключение Wi-Fi
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(WIFI_SSID, WIFI_PASS)
while not wifi.isconnected():
time.sleep(1)
print("WiFi connected")
# Настройка SPI
spi = SPI(1, baudrate=1000000, polarity=0, phase=0)
cs = Pin(5, Pin.OUT)
sensor = max31855.MAX31855(spi, cs)
# MQTT клиент
client = MQTTClient("esp32", MQTT_BROKER, port=MQTT_PORT)
client.connect()
while True:
temp = sensor.read_temp()
data = ujson.dumps({"temperature": temp, "unit": "C"})
client.publish(MQTT_TOPIC, data)
print("Published:", data)
time.sleep(10)
Шаг 3. Настройка ASI Biont
В чате с AI-агентом напишите:
«Подпишись на MQTT-топик "sensor/temperature" на брокере broker.hivemq.com:1883. Получай данные с датчика температуры. Если температура превышает 50°C, отправь сообщение в Telegram с моим токеном бота @MyBot и chat_id=123456789. Данные сохраняй в CSV-файл на Google Drive (через API)».
AI автоматически сгенерирует Python-скрипт с использованием paho-mqtt и requests и выполнит его в sandbox-окружении. Вы получите уведомление в Telegram через несколько секунд после того, как температура превысит порог.
Пример сгенерированного кода (sandbox)
import paho.mqtt.client as mqtt
import requests
import json
from datetime import datetime
# Конфигурация
MQTT_BROKER = "broker.hivemq.com"
MQTT_PORT = 1883
TOPIC = "sensor/temperature"
TELEGRAM_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "123456789"
CSV_FILE = "temperature_log.csv"
def on_message(client, userdata, msg):
data = json.loads(msg.payload)
temp = data["temperature"]
print(f"Received: {temp}°C at {datetime.now()}")
# Сохраняем в CSV
with open(CSV_FILE, "a") as f:
f.write(f"{datetime.now()},{temp}\n")
# Проверка порога
if temp > 50:
text = f"⚠️ Температура превысила 50°C! Текущее значение: {temp}°C"
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": CHAT_ID, "text": text})
client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.subscribe(TOPIC)
client.loop_forever()
Важно: Этот код выполняется в sandbox ASI Biont (облако). Он не имеет доступа к вашему COM-порту — только к MQTT. Если нужно управлять SPI напрямую через COM-порт, используйте Hardware Bridge.
Преимущества подхода
- Никакого ручного кодирования. Вы просто описываете задачу на естественном языке — AI генерирует весь код интеграции.
- Мгновенная реакция. Уведомления в Telegram приходят за секунды после события.
- Гибкость. Можно подключать любые SPI-устройства: дисплеи, SD-карты, датчики — достаточно, чтобы они передавали данные через COM-порт или MQTT.
- Масштабируемость. Один AI-агент может одновременно обслуживать десятки устройств.
Заключение
SPI-устройства — это основа современной встраиваемой электроники. Интеграция с AI-агентом ASI Biont превращает их из простых датчиков в элементы умной системы, которая сама анализирует данные, принимает решения и уведомляет вас о проблемах. Попробуйте сами: подключите датчик температуры к ESP32, настройте MQTT и напишите в чат ASI Biont задачу. Вся интеграция займёт меньше минуты.
Готовы автоматизировать свои устройства? Переходите на asibiont.com и начинайте прямо сейчас.
Комментарии