Введение
Одноплатные компьютеры, такие как Banana Pi, уже давно перестали быть просто игрушками для энтузиастов. Благодаря полноценной операционной системе (чаще всего Ubuntu или Armbian), GPIO-пинам и поддержке Python, Banana Pi превращается в мощный хаб для умного дома, сбора данных и автоматизации. Однако сложность настройки, написания скриптов, отладки и обновления логики часто останавливает новичков и отнимает часы у опытных разработчиков.
Здесь на помощь приходит AI-агент ASI Biont. Он не только пишет код интеграции за вас, но и способен подключаться к Banana Pi по SSH, управлять GPIO, читать сенсоры, отправлять команды через MQTT и взаимодействовать с REST API. Всё это — в диалоге на естественном языке. Никаких панелей управления, никаких кнопок «добавить устройство» — просто описали задачу в чате, и AI сам создал и запустил код.
В этой статье разберём, как ASI Biont подключается к Banana Pi, какие протоколы использует, и покажем 8 реальных сценариев использования с примерами кода.
Как ASI Biont подключается к Banana Pi?
ASI Biont не привязан к одному протоколу — он умеет подключаться к Banana Pi несколькими способами, в зависимости от задачи:
| Способ подключения | Когда используется | Протокол / библиотека |
|---|---|---|
| SSH | Управление GPIO, запуск скриптов, сбор данных с сенсоров | paramiko (внутри execute_python) |
| MQTT | Обмен сообщениями с Banana Pi как с IoT-брокером или клиентом | paho-mqtt |
| HTTP API | Взаимодействие с веб-сервером на Banana Pi (например, Flask) | aiohttp, requests |
| COM-порт (Hardware Bridge) | Если Banana Pi подключён к ПК через USB-UART | bridge.py + pyserial |
| execute_python | Универсальный способ для любых скриптов (код выполняется в облаке) | любая библиотека из sandbox |
Основной канал для Banana Pi — SSH, так как на устройстве работает полноценная ОС, и AI может выполнять команды, читать файлы, запускать Python-скрипты и управлять GPIO. Для этого достаточно передать в чат IP-адрес Banana Pi, логин и пароль (или SSH-ключ).
8 сценариев интеграции Banana Pi с ASI Biont
1. Управление светодиодом через GPIO
Сценарий: Пользователь хочет включать и выключать светодиод на GPIO17 через чат.
Как это работает: AI подключается по SSH к Banana Pi, пишет скрипт с использованием RPi.GPIO (или аналога для Banana Pi), сохраняет его на устройство и запускает. Затем, по команде из чата, AI отправляет SSH-команду для изменения состояния пина.
Пример диалога:
Пользователь: «Подключись к моей Banana Pi по SSH. IP: 192.168.1.100, логин: pi, пароль: raspberry. Включи светодиод на GPIO17 на 5 секунд, потом выключи.»
AI выполняет industrial_command с протоколом serial (через bridge) или использует execute_python с paramiko. Код, который генерирует AI:
import paramiko
import time
host = "192.168.1.100"
username = "pi"
password = "raspberry"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host, username=username, password=password)
# Включаем светодиод (например, через sysfs или gpiozero)
stdin, stdout, stderr = client.exec_command("echo 17 > /sys/class/gpio/export && echo out > /sys/class/gpio/gpio17/direction && echo 1 > /sys/class/gpio/gpio17/value")
time.sleep(5)
# Выключаем
client.exec_command("echo 0 > /sys/class/gpio/gpio17/value")
client.close()
2. Мониторинг температуры и влажности с датчика DHT22
Сценарий: Banana Pi подключена к датчику DHT22. AI каждые 10 минут считывает данные, анализирует тренды и отправляет уведомление в Telegram, если температура превышает 30°C.
Как это работает: AI пишет Python-скрипт, который использует библиотеку Adafruit_DHT (или gpiozero), считывает данные, публикует их в MQTT-топик (например, home/bananapi/temperature), и при превышении порога отправляет сообщение через Telegram Bot API.
Пример кода (выполняется на Banana Pi через SSH):
import Adafruit_DHT
import paho.mqtt.client as mqtt
import time
sensor = Adafruit_DHT.DHT22
pin = 4
client = mqtt.Client()
client.connect("mqtt.eclipseprojects.io", 1883, 60)
while True:
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
client.publish("home/bananapi/temperature", temperature)
client.publish("home/bananapi/humidity", humidity)
if temperature > 30:
# Отправка в Telegram через requests (код ниже выполняется в sandbox)
pass
time.sleep(600)
3. Управление реле через MQTT
Сценарий: Banana Pi управляет реле (например, для включения света). Пользователь пишет в чат: «Включи свет в гостиной». AI публикует команду в MQTT-топик, а скрипт на Banana Pi подписан на этот топик и переключает реле.
Пример команды от AI (через industrial_command с протоколом MQTT):
industrial_command(protocol='mqtt', command='publish', topic='cmnd/bananapi/rele1', payload='ON')
На Banana Pi заранее запущен скрипт-подписчик, который AI также может создать и запустить.
4. Чтение данных с аналогового датчика (например, MQ-135 для CO2)
Сценарий: Banana Pi подключена к аналоговому датчику через MCP3008 (АЦП). AI каждые 5 минут считывает значение, преобразует в ppm CO2, сохраняет в CSV на устройстве и отправляет отчёт по запросу.
Код, генерируемый AI:
import spidev
import time
spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 1350000
def read_channel(channel):
adc = spi.xfer2([1, (8 + channel) << 4, 0])
return ((adc[1] & 3) << 8) + adc[2]
while True:
value = read_channel(0)
ppm = (value / 1023.0) * 1000 # примерная калибровка
with open("/home/pi/co2_log.csv", "a") as f:
f.write(f"{time.time()},{ppm}\n")
time.sleep(300)
5. Автоматизация полива растений
Сценарий: Датчик влажности почвы (через GPIO) подключён к Banana Pi. Если влажность падает ниже 30%, AI даёт команду на включение насоса через реле на 10 секунд.
Логика: AI создаёт скрипт, который циклически читает датчик, и при низком значении отправляет MQTT-команду на включение реле. Также AI может отправлять уведомление пользователю: «Полив включён, влажность 25%».
6. Распознавание объектов с USB-камеры
Сценарий: К Banana Pi подключена USB-камера. AI подключается по SSH, устанавливает OpenCV и запускает скрипт, который детектирует людей или автомобили. При обнаружении сохраняет кадр и отправляет фото в Telegram.
Пример кода (фрагмент):
import cv2
import requests
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
if ret:
# детекция через каскад Хаара (встроенный)
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
if len(faces) > 0:
cv2.imwrite("/tmp/face.jpg", frame)
# отправка в Telegram через requests
with open("/tmp/face.jpg", "rb") as f:
requests.post(f"https://api.telegram.org/bot{TOKEN}/sendPhoto", data={"chat_id": CHAT_ID}, files={"photo": f})
7. Интеграция с REST API для управления умной розеткой
Сценарий: Banana Pi выступает как мост: она подключена к умной розетке через её HTTP API. Пользователь просит AI включить розетку в 8:00 утра и выключить в 20:00.
AI генерирует скрипт с планировщиком (schedule или time + sleep):
import requests
import time
def switch(power):
requests.post("http://192.168.1.50/cmd", json={"state": power})
while True:
now = time.localtime()
if now.tm_hour == 8 and now.tm_min == 0:
switch("ON")
time.sleep(60)
if now.tm_hour == 20 and now.tm_min == 0:
switch("OFF")
time.sleep(60)
time.sleep(30)
8. Логирование данных в облачную БД (PostgreSQL)
Сценарий: Banana Pi собирает данные с нескольких датчиков и отправляет их в облачную базу PostgreSQL, где AI анализирует тренды и строит графики.
AI создаёт скрипт, который подключается к БД через psycopg2 и вставляет строки:
import psycopg2
import Adafruit_DHT
conn = psycopg2.connect("dbname=iot user=user password=pass host=example.com")
cur = conn.cursor()
humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 4)
cur.execute("INSERT INTO sensor_data (temp, hum, ts) VALUES (%s, %s, NOW())", (temperature, humidity))
conn.commit()
Почему это выгодно?
- Нет необходимости писать код вручную. AI делает это за секунды, адаптируя код под ваше устройство и задачу.
- Единый интерфейс — чат. Не нужно осваивать IDE, заучивать синтаксис библиотек или разбираться в протоколах.
- Быстрая итерация. Если нужно изменить логику — просто опишите новое поведение, и AI перепишет скрипт.
- Поддержка любого устройства. Banana Pi, Raspberry Pi, Arduino, ESP32, PLC — ASI Biont подключается ко всему, что говорит по SSH, MQTT, Modbus, HTTP или COM-порту.
Заключение
Banana Pi — отличная платформа для умного дома и IoT, а ASI Biont превращает её в по-настоящему интеллектуальную систему. Вместо того чтобы тратить часы на отладку скриптов, вы просто описываете задачу — и AI-агент сам подключается к устройству, пишет код и запускает его. Хотите управлять светом, поливом, климатом или собирать данные — всё это делается в несколько сообщений.
Попробуйте интеграцию прямо сейчас на asibiont.com. Подключите свою Banana Pi к AI-агенту и убедитесь, что будущее автоматизации уже наступило.
Комментарии