Интеграция Banana Pi с AI-агентом ASI Biont: автоматизация на одноплатнике без единой строки кода

Введение

Banana Pi — это мощный одноплатный компьютер с открытой архитектурой, который часто используется для создания серверов, систем умного дома, медиацентров и IoT-шлюзов. Однако, несмотря на его гибкость, ручное программирование интеграций с внешними сервисами (Telegram, базы данных, облачные AI) требует времени и знаний. AI-агент ASI Biont решает эту проблему: он подключается к Banana Pi через SSH, MQTT или HTTP API, пишет код интеграции сам и управляет устройством по вашему описанию. В этой статье мы разберём, как настроить Banana Pi как IoT-шлюз с ASI Biont, используя MQTT для сбора данных с датчиков и отправки команд.

Что такое Banana Pi и зачем его подключать к AI?

Banana Pi (на базе Allwinner A20/A33/H3/H5/H6/H7/H8/H10/H616) — это аналог Raspberry Pi, но с более широкими возможностями ввода-вывода (GPIO, I2C, SPI, UART, USB, SATA, Gigabit Ethernet). Он работает под управлением Linux (Armbian, Ubuntu, Debian). Подключение к ASI Biont позволяет:

  • Автоматически собирать данные с подключённых датчиков (температура, влажность, давление, движение) и отправлять их в облачную аналитику.
  • Управлять реле, светодиодами, моторами по командам из Telegram.
  • Создавать сложные сценарии: например, AI анализирует погоду через API и включает/выключает кондиционер.

Как ASI Biont подключается к Banana Pi?

ASI Biont поддерживает несколько способов подключения к одноплатникам. Для Banana Pi оптимальны два:

Способ Протокол Когда использовать
SSH paramiko (Python) Для управления GPIO, запуска скриптов, сбора файлов
MQTT paho-mqtt Для обмена данными с датчиками и исполнительными устройствами в реальном времени

Почему MQTT? Banana Pi часто работает как MQTT-брокер (Mosquitto) или MQTT-клиент. AI подключается к тому же брокеру, подписывается на топики датчиков и публикует команды управления. Это даёт асинхронную, надёжную связь без необходимости держать SSH-сессию постоянно.

Конкретный сценарий: мониторинг температуры и управление вентилятором через Telegram

Задача

У вас есть Banana Pi с подключённым датчиком DS18B20 (температура) и реле для включения вентилятора. Нужно:

  1. Читать температуру каждые 10 секунд.
  2. Если температура превышает 30°C — включать вентилятор.
  3. Отправлять уведомление в Telegram при превышении порога.

Что делает AI-агент?

Вы пишете в чат ASI Biont:

«Подключись к моему Banana Pi по SSH (IP: 192.168.1.100, логин: pi, пароль: mypass). На Banana Pi установлен Mosquitto MQTT-брокер на порту 1883. Создай Python-скрипт, который читает температуру с датчика DS18B20 (файл /sys/bus/w1/devices/28-*/w1_slave), публикует её в MQTT-топик sensors/temperature, подписывается на топик commands/fan. При получении команды "on" включает реле через GPIO, при "off" — выключает. Также отправляй уведомление в Telegram через мой бот (токен: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11, chat_id: 987654321), если температура > 30°C.»

AI генерирует код на Python с использованием библиотек paho-mqtt, RPi.GPIO (или gpiozero) и requests для Telegram. Скрипт загружается на Banana Pi через SCP (встроено в execute_python с paramiko) и запускается.

Примерный код (сгенерированный AI)

import paho.mqtt.client as mqtt
import RPi.GPIO as GPIO
import time
import requests

# Конфигурация
MQTT_BROKER = "localhost"
FAN_PIN = 18
TELEGRAM_TOKEN = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID = "987654321"

def read_temp():
    with open("/sys/bus/w1/devices/28-00000xxxxx/w1_slave", "r") as f:
        lines = f.readlines()
    if "YES" in lines[0]:
        pos = lines[1].find("t=")
        temp = float(lines[1][pos+2:]) / 1000.0
        return temp
    return None

def on_message(client, userdata, msg):
    command = msg.payload.decode()
    if command == "on":
        GPIO.output(FAN_PIN, GPIO.HIGH)
        client.publish("status/fan", "on")
    elif command == "off":
        GPIO.output(FAN_PIN, GPIO.LOW)
        client.publish("status/fan", "off")

GPIO.setmode(GPIO.BCM)
GPIO.setup(FAN_PIN, GPIO.OUT)

client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER, 1883, 60)
client.subscribe("commands/fan")
client.loop_start()

try:
    while True:
        temp = read_temp()
        if temp is not None:
            client.publish("sensors/temperature", f"{temp:.2f}")
            if temp > 30:
                requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
                              json={"chat_id": CHAT_ID, "text": f"Температура {temp:.2f}°C! Включаю вентилятор."})
                GPIO.output(FAN_PIN, GPIO.HIGH)
        time.sleep(10)
except KeyboardInterrupt:
    GPIO.cleanup()
    client.loop_stop()

Как пользователь это делает?

  1. Убедитесь, что на Banana Pi установлен Mosquitto (sudo apt install mosquitto mosquitto-clients).
  2. Подключите датчик DS18B20 к GPIO4 (пин 7) и реле к GPIO18 (пин 12).
  3. В чате ASI Biont опишите задачу (как в примере выше).
  4. AI сгенерирует код, загрузит его на Banana Pi через SCP и запустит.
  5. Готово! Вы получаете уведомления в Telegram и можете управлять вентилятором, публикуя on/off в MQTT-топик commands/fan.

Почему это выгодно?

  • Экономия времени: написание такого скрипта вручную занимает от 30 минут до нескольких часов. AI делает это за 10-20 секунд.
  • Гибкость: вы можете менять логику простым текстом — «добавь логгирование в CSV», «отправляй данные в InfluxDB».
  • Никаких панелей: подключение происходит через диалог в чате, не нужно искать кнопки «добавить устройство».

Заключение

Banana Pi и ASI Biont — идеальная пара для быстрого прототипирования и автоматизации. AI-агент берёт на себя всю рутину: написание кода, подключение к MQTT/SSH, работу с GPIO и Telegram. Попробуйте сами — опишите свою задачу в чате на asibiont.com и получите готовую интеграцию за секунды.

← Все статьи

Комментарии