Введение: почему Edge AI на Raspberry Pi — это мощно, а с AI-агентом — ещё мощнее
Raspberry Pi давно перестал быть просто игрушкой для энтузиастов. Сегодня это полноценная платформа для Edge AI — выполнения инференса нейросетей непосредственно на устройстве, без отправки данных в облако. Связка Raspberry Pi + TensorFlow Lite или ONNX Runtime позволяет решать задачи компьютерного зрения, обработки естественного языка и анализа временных рядов с задержкой до 50 мс и экономией трафика до 90%. Но настройка такой системы требует времени: нужно написать код загрузки модели, обработки данных, интеграции с внешними сервисами.
AI-агент ASI Biont (asibiont.com) решает эту проблему. Вместо того чтобы вручную писать скрипты для каждого сценария, вы описываете задачу в чате на естественном языке: «Подключись к Raspberry Pi по SSH, запусти детекцию дефектов на конвейере и отправляй результаты в Telegram при обнаружении брака». AI сам генерирует код на Python с использованием библиотек ONNX Runtime или TensorFlow Lite, подключается к устройству через SSH (используя paramiko), выполняет инференс и передаёт результаты в нужные каналы — MQTT, HTTP API, базы данных или мессенджеры.
Как ASI Biont подключается к Raspberry Pi для Edge AI
ASI Biont использует SSH-подключение через библиотеку paramiko для работы с одноплатными компьютерами. Это оптимальный способ, когда устройство находится в одной сети с сервером ASI Biont или имеет публичный IP-адрес (с настроенной безопасностью). AI пишет Python-скрипт, который выполняется в sandbox-окружении ASI Biont (на Railway), и этот скрипт через SSH:
- загружает модель TensorFlow Lite или ONNX на Raspberry Pi (если её там нет);
- запускает инференс на локальных данных (изображения с камеры, аудио с микрофона, числовые показания датчиков);
- получает результаты предсказаний и передаёт их обратно в ASI Biont для дальнейшей обработки.
Важно: execute_python (sandbox ASI Biont) имеет доступ к библиотекам paramiko, paho-mqtt, aiohttp, requests и другим — AI может сгенерировать скрипт, который одновременно подключается к Raspberry Pi по SSH, запускает инференс и отправляет результаты по MQTT на производственный сервер.
Сценарий 1: Детекция дефектов на производственной линии
Задача: На заводе установлена камера, подключённая к Raspberry Pi 4. Каждые 5 секунд камера делает снимок конвейера с деталями. Нужно детектировать дефекты (трещины, сколы, неправильную геометрию) с помощью предобученной модели TensorFlow Lite и при обнаружении брака отправлять уведомление в Telegram с фотографией дефекта.
Как это делается с ASI Biont:
1. Пользователь загружает модель TensorFlow Lite (например, MobileNetV2, дообученную на датасете дефектов) на Raspberry Pi в папку /home/pi/models/.
2. В чате с AI-агентом ASI Biont пишет: «Подключись к Raspberry Pi по SSH (IP: 192.168.1.100, логин: pi, пароль: raspberry). Запусти скрипт, который каждые 5 секунд делает фото с USB-камеры, прогоняет его через модель defect_model.tflite, и если вероятность дефекта > 0.8, отправляет фото в Telegram через бота с токеном YOUR_BOT_TOKEN в чат YOUR_CHAT_ID».
3. AI генерирует Python-скрипт с использованием paramiko для SSH и TensorFlow Lite для инференса, выполняет его в sandbox.
Пример кода (упрощённый, без обработки ошибок):
import paramiko
import requests
import json
# Параметры подключения к Raspberry Pi
ssh_host = "192.168.1.100"
ssh_port = 22
ssh_user = "pi"
ssh_pass = "raspberry"
# Параметры Telegram
bot_token = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
# Команда для выполнения на Raspberry Pi
remote_script = """
import cv2
import numpy as np
import tensorflow.lite as tflite
import time
# Загрузка модели
interpreter = tflite.Interpreter(model_path="/home/pi/models/defect_model.tflite")
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# Захват изображения с камеры
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
cap.release()
if ret:
# Предобработка
img = cv2.resize(frame, (224, 224))
img = np.expand_dims(img, axis=0).astype(np.float32) / 255.0
# Инференс
interpreter.set_tensor(input_details[0]['index'], img)
interpreter.invoke()
output = interpreter.get_tensor(output_details[0]['index'])
probability = output[0][1] # предположим, класс 1 — дефект
if probability > 0.8:
# Сохраняем изображение с дефектом
cv2.imwrite("/tmp/defect.jpg", frame)
print(f"DEFECT_DETECTED:{probability}")
else:
print("OK")
else:
print("CAMERA_ERROR")
"""
# Подключение по SSH и выполнение скрипта
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ssh_host, port=ssh_port, username=ssh_user, password=ssh_pass)
stdin, stdout, stderr = ssh.exec_command(f"python3 -c {json.dumps(remote_script)}")
result = stdout.read().decode().strip()
if result.startswith("DEFECT_DETECTED"):
# Загружаем изображение с Raspberry Pi через SCP
sftp = ssh.open_sftp()
sftp.get("/tmp/defect.jpg", "/tmp/defect.jpg")
sftp.close()
# Отправляем в Telegram
with open("/tmp/defect.jpg", "rb") as f:
requests.post(
f"https://api.telegram.org/bot{bot_token}/sendPhoto",
data={"chat_id": chat_id, "caption": f"Обнаружен дефект! Вероятность: {result.split(':')[1]}"},
files={"photo": f}
)
print("Уведомление отправлено")
elif result == "CAMERA_ERROR":
print("Ошибка камеры на Raspberry Pi")
else:
print("Дефектов не обнаружено")
ssh.close()
Результат: AI сам подключается к Raspberry Pi, выполняет инференс, забирает результат и отправляет уведомление. Время реакции — менее 10 секунд от запроса до получения фото дефекта в Telegram.
Сценарий 2: Мониторинг сельхозугодий с камеры и ONNX Runtime
Задача: Raspberry Pi с камерой установлен на поле. Модель ONNX (YOLOv5) детектирует сорняки среди культурных растений. При обнаружении сорняков AI отправляет команду на ESP32 (через MQTT) для включения системы капельного полива с гербицидом.
Подключение через ASI Biont:
1. Пользователь в чате описывает: «Подключись к Raspberry Pi по SSH (IP: 10.0.0.5), запусти инференс YOLOv5 на ONNX Runtime каждые 60 секунд. Если детектирован сорняк, отправь команду "HERBICIDE_ON" через MQTT-брокер mqtt://broker.local:1883 в топик /field/sprayer».
2. AI генерирует скрипт, который использует paramiko для SSH на Raspberry Pi и paho-mqtt для публикации в MQTT.
Фрагмент кода для MQTT-публикации (выполняется в sandbox):
import paho.mqtt.client as mqtt
import json
# Параметры MQTT
broker = "broker.local"
port = 1883
topic = "/field/sprayer"
# Подключение к брокеру
client = mqtt.Client()
client.connect(broker, port, 60)
# Публикация команды (предположим, результат инференса пришёл из SSH)
message = json.dumps({"command": "HERBICIDE_ON", "duration_sec": 30})
client.publish(topic, message)
print(f"Опубликовано в {topic}: {message}")
client.disconnect()
Результат: Цепочка автоматизации: камера → Raspberry Pi → AI-агент → MQTT → ESP32 → полив. Всё настроено через диалог в чате без единой строки кода, написанной вручную.
Сценарий 3: Локальный NLP для голосового управления
Задача: На Raspberry Pi запущена модель ONNX для обработки естественного языка (например, BERT-base для классификации команд). Устройство слушает микрофон, распознаёт речь (через Vosk или Whisper) и классифицирует команды: «включи свет», «выключи кондиционер», «открой шторы». Результаты классификации передаются в ASI Biont, который управляет устройствами умного дома через HTTP API.
Как это работает с ASI Biont:
1. Пользователь просит: «Подключись к Raspberry Pi (SSH: 192.168.1.50), прочитай последнюю распознанную команду из файла /tmp/command.txt, классифицируй её с помощью модели nlp_model.onnx, и если команда "включи свет" — отправь GET-запрос на http://192.168.1.200/api/light/on».
2. AI пишет скрипт, который через SSH читает файл, выполняет инференс (локально на Raspberry Pi или в sandbox, если модель небольшая) и отправляет HTTP-запрос.
Пример кода для HTTP API (выполняется в sandbox):
import requests
# Чтение команды с Raspberry Pi (через SSH, paramiko)
# ... (опущено для краткости)
# Классификация (предположим, модель ONNX запущена в sandbox)
import onnxruntime as ort
import numpy as np
session = ort.InferenceSession("nlp_model.onnx")
input_name = session.get_inputs()[0].name
# Преобразование текста в тензор (токенизация опущена)
output = session.run(None, {input_name: np.array([[0.1, 0.2, ...]], dtype=np.float32)})
command_index = np.argmax(output[0])
# Отправка HTTP-запроса к устройству умного дома
commands = {0: "light_on", 1: "light_off", 2: "ac_on"}
if command_index in commands:
url = f"http://192.168.1.200/api/{commands[command_index]}"
response = requests.get(url)
print(f"Команда {commands[command_index]} выполнена: {response.status_code}")
Результат: Голосовое управление умным домом через локальный NLP на Raspberry Pi с интеграцией в ASI Biont. Пользователь говорит команду, Raspberry Pi распознаёт и классифицирует, AI отправляет запрос к устройству.
Почему это выгодно: экономия времени и ресурсов
| Подход | Время настройки | Необходимые навыки | Гибкость |
|---|---|---|---|
| Ручная интеграция | От 2 часов до нескольких дней | Python, SSH, MQTT, HTTP API | Высокая, но требует времени |
| ASI Biont + чат | 1-2 минуты на описание задачи | Базовое понимание устройства | Максимальная, AI адаптирует код |
Ключевые преимущества использования AI-агента:
- Снижение задержки: Инференс на Raspberry Pi выполняется за 30-50 мс (в зависимости от модели), данные не уходят в облако.
- Экономия трафика: До 90% данных обрабатывается локально, в облако передаются только результаты предсказаний (несколько байт вместо мегабайт видео).
- Автоматизация без кода: Пользователь описывает сценарий на естественном языке, AI генерирует весь код интеграции. Не нужно ждать, пока разработчики добавят поддержку нового устройства — подключайте что угодно прямо сейчас.
Как начать: пошаговая инструкция
- Подготовьте Raspberry Pi: Установите Raspberry Pi OS, подключите к сети, установите необходимые библиотеки (TensorFlow Lite, ONNX Runtime, OpenCV). Убедитесь, что SSH включён.
- Зарегистрируйтесь на asibiont.com и создайте API-ключ в разделе Devices.
- Опишите задачу в чате: Например: «Подключись к Raspberry Pi по SSH 192.168.1.100, пользователь pi, пароль raspberry. Запусти модель mobilenet_v2.tflite для классификации изображений из папки /home/pi/images, результаты сохраняй в CSV».
- AI выполнит интеграцию: Сгенерирует и запустит Python-скрипт в sandbox, который через paramiko подключится к Raspberry Pi, выполнит инференс и вернёт результаты.
- Настройте цепочки действий в AI-конструкторе ASI Biont (без кода): свяжите предсказания с уведомлениями в Telegram, записью в базу данных PostgreSQL или отправкой команд на другие устройства.
Заключение
Интеграция Raspberry Pi с AI-агентом ASI Biont через SSH и execute_python открывает возможности для быстрого развёртывания Edge AI-решений. Вы можете детектировать дефекты на производстве, мониторить сельхозугодья, управлять умным домом через локальный NLP — и всё это без написания кода вручную. AI сам подключается к устройству, запускает инференс и передаёт результаты в нужные каналы.
Попробуйте интеграцию уже сегодня на asibiont.com. Опишите в чате своё устройство и задачу — AI сделает всё остальное.
Комментарии