Введение
Orange Pi — это мощная и доступная одноплатная альтернатива Raspberry Pi, работающая на ARM-процессорах Allwinner. Благодаря наличию GPIO-пинов, поддержке Linux (Armbian, Ubuntu) и низкой цене, Orange Pi широко используется в DIY-проектах: от системы умного дома до промышленного мониторинга. Однако настройка кода для сбора данных, управления реле или интеграции с внешними сервисами часто требует времени и навыков программирования.
AI-агент ASI Biont решает эту проблему: вы просто описываете в чате, что нужно сделать, передаёте параметры подключения (IP, порт, API-ключ), и AI сам пишет код на Python, выполняет его и управляет устройством. В этой статье мы разберём два основных способа интеграции Orange Pi с ASI Biont — через MQTT и HTTP API — и покажем реальные сценарии: сбор данных с датчика температуры/влажности и управление GPIO-выходами.
Почему Orange Pi? Кратко о возможностях
Orange Pi (модели Zero, Zero 2, PC, One) оснащены:
- GPIO-контактами для подключения сенсоров (DHT22, DS18B20, HC-SR04) и исполнительных устройств (реле, светодиоды)
- Поддержкой Wi-Fi и Ethernet для работы по сети
- Полноценной ОС Linux (Armbian) — можно устанавливать Python, Node.js, Docker
- Низким энергопотреблением (от 5 В, ~1-3 Вт)
Для интеграции с AI-агентом это идеальный кандидат: Orange Pi может выступать как управляющий хаб, который опрашивает датчики, отправляет данные в облако и получает команды обратно.
Способ 1. Подключение через MQTT
MQTT — лёгкий протокол обмена сообщениями, стандарт для IoT. ASI Biont поддерживает MQTT через библиотеку paho-mqtt в sandbox-окружении execute_python, а также через инструмент industrial_command для быстрой отправки команд.
Как это работает
- На Orange Pi устанавливается MQTT-клиент (например,
mosquitto_pub/mosquitto_sub) или Python-скрипт, который подписывается на топикhome/orangepi/commandsи публикует данные вhome/orangepi/sensors. - Пользователь в чате ASI Biont описывает задачу: «Подключись к моему Orange Pi по MQTT, брокер на mqtt.example.com, порт 1883. Прочитай данные с датчика DHT22, подключённого к GPIO4, и отправь мне в Telegram, если температура выше 30°C».
- AI генерирует Python-скрипт с
paho-mqtt, выполняет его в sandbox и начинает обмен данными.
Пример кода на стороне Orange Pi (Python, выполняется локально)
import paho.mqtt.client as mqtt
import Adafruit_DHT
import time
BROKER = "mqtt.example.com"
PORT = 1883
TOPIC_PUB = "home/orangepi/sensors"
TOPIC_SUB = "home/orangepi/commands"
DHT_PIN = 4 # GPIO4
def on_message(client, userdata, msg):
command = msg.payload.decode()
if command == "GET_TEMP":
humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, DHT_PIN)
if humidity is not None:
client.publish(TOPIC_PUB, f"{{'temp': {temperature:.1f}, 'humidity': {humidity:.1f}}}")
elif command == "LED_ON":
# Управление GPIO
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.HIGH)
client.publish(TOPIC_PUB, "{'led': 'ON'}")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC_SUB)
client.loop_forever()
Что делает AI-агент в ASI Biont
Пользователь пишет в чате:
«Подключись к MQTT-брокеру mqtt.example.com:1883, подпишись на топик home/orangepi/sensors, каждые 10 минут проверяй температуру, если больше 30°C — опубликуй команду LED_ON в топик home/orangepi/commands и отправь мне уведомление в Telegram».
AI генерирует и выполняет в sandbox следующий код:
import paho.mqtt.client as mqtt
import time
from datetime import datetime
import requests
BROKER = "mqtt.example.com"
PORT = 1883
TOPIC_SENSORS = "home/orangepi/sensors"
TOPIC_COMMANDS = "home/orangepi/commands"
TELEGRAM_BOT_TOKEN = "ваш_токен"
TELEGRAM_CHAT_ID = "ваш_chat_id"
def on_message(client, userdata, msg):
payload = msg.payload.decode()
print(f"Получены данные: {payload}")
# Парсим JSON
import json
data = json.loads(payload)
temp = data.get('temp', 0)
if temp > 30:
# Публикуем команду включения светодиода
client.publish(TOPIC_COMMANDS, "LED_ON")
# Отправляем уведомление в Telegram
text = f"⚠️ Температура превышена: {temp}°C. Включаю светодиод."
requests.post(f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": text})
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC_SENSORS)
# Ждём сообщений 30 секунд (ограничение sandbox)
client.loop(timeout=30)
Результат
- Задержка между отправкой данных и реакцией AI — менее 2 секунд (при стабильном интернете).
- Пользователь получает уведомления в Telegram и может управлять устройствами через чат, не заходя в панель умного дома.
Способ 2. Подключение через HTTP API
Если на Orange Pi запущен простой HTTP-сервер (например, на Flask или FastAPI), ASI Biont может подключаться к нему напрямую через aiohttp или requests.
Как это работает
- На Orange Pi запускается веб-сервер с эндпоинтами:
GET /sensor— возвращает показания датчикаPOST /gpio— управляет GPIO-пинами (включает/выключает реле)- Пользователь передаёт в чат IP-адрес Orange Pi (например, 192.168.1.100) и API-ключ.
- AI пишет код, который опрашивает
/sensorи отправляет команды на/gpio.
Пример кода на Orange Pi (Flask)
from flask import Flask, request, jsonify
import Adafruit_DHT
import RPi.GPIO as GPIO
app = Flask(__name__)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
@app.route('/sensor', methods=['GET'])
def get_sensor():
humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 4)
if humidity is not None:
return jsonify({'temp': temperature, 'humidity': humidity})
return jsonify({'error': 'Sensor error'}), 500
@app.route('/gpio', methods=['POST'])
def set_gpio():
data = request.json
pin = data.get('pin', 18)
state = data.get('state', 'OFF')
if state == 'ON':
GPIO.output(pin, GPIO.HIGH)
else:
GPIO.output(pin, GPIO.LOW)
return jsonify({'status': 'ok', 'pin': pin, 'state': state})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Что делает AI-агент
Пользователь пишет:
«Подключись к Orange Pi по HTTP на 192.168.1.100:5000. Каждые 5 минут считывай температуру, если она ниже 18°C — включи реле на пине 18 (обогреватель), если выше 25°C — выключи. Логируй в CSV-файл».
AI выполняет в sandbox:
import aiohttp
import asyncio
import csv
from datetime import datetime
ORANGE_PI_URL = "http://192.168.1.100:5000"
async def monitor():
async with aiohttp.ClientSession() as session:
for _ in range(6): # 5 минут * 6 = 30 секунд (таймаут sandbox)
async with session.get(f"{ORANGE_PI_URL}/sensor") as resp:
data = await resp.json()
temp = data.get('temp', 0)
timestamp = datetime.now().isoformat()
# Логируем в CSV
with open('temperature_log.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([timestamp, temp])
# Управление реле
if temp < 18:
async with session.post(f"{ORANGE_PI_URL}/gpio", json={'pin': 18, 'state': 'ON'}) as r:
print(f"Обогреватель включён, температура {temp}")
elif temp > 25:
async with session.post(f"{ORANGE_PI_URL}/gpio", json={'pin': 18, 'state': 'OFF'}) as r:
print(f"Обогреватель выключен, температура {temp}")
await asyncio.sleep(5) # каждые 5 секунд для демонстрации
asyncio.run(monitor())
Результат
- Вся логика управления — на стороне AI. Orange Pi выступает только как исполнитель.
- CSV-файл с логами сохраняется в sandbox и может быть скачан пользователем.
Сравнение MQTT и HTTP API
| Параметр | MQTT | HTTP API |
|---|---|---|
| Протокол | Легковесный, pub/sub | Запрос-ответ |
| Задержка | < 100 мс (при хорошем брокере) | Зависит от сети, обычно 200-500 мс |
| Надёжность | QoS 0-2, встроенное подтверждение | Требуется повторная отправка при ошибке |
| Сложность настройки | Нужен MQTT-брокер | Нужен HTTP-сервер на устройстве |
| Поддержка ASI Biont | Через paho-mqtt в execute_python | Через aiohttp/requests в execute_python |
| Лучший сценарий | Множество устройств, постоянный поток данных | Единичное устройство, редкие запросы |
Как начать интеграцию за 1 минуту
- Зарегистрируйтесь на asibiont.com.
- Откройте чат с AI-агентом.
- Напишите, например:
«Подключись к моему Orange Pi по SSH (IP: 192.168.1.100, логин: orangepi, пароль: mypass). Установи на него библиотеку Adafruit_DHT и запусти скрипт, который каждые 10 секунд публикует температуру в MQTT-топик home/device/temp».
- AI сам выполнит SSH-соединение, установит пакеты, скопирует скрипт и запустит его.
Важно: ASI Biont подключается к любому устройству через execute_python — AI сам пишет код интеграции под каждое устройство. Не нужно ждать, пока разработчики добавят поддержку — подключайте что угодно прямо сейчас. Пользователь просто описывает в чате, к какому устройству подключиться и какие параметры (порт, IP, baud rate, API-ключ), и AI сам пишет код на Python с использованием pyserial, paramiko, paho-mqtt, pymodbus, aiohttp или opcua-asyncio. Всё подключение происходит через диалог в чате, никаких панелей управления и кнопок «добавить устройство» не требуется.
Реальные сценарии использования
- Умный дом: Orange Pi управляет светом, кондиционером и шторами по командам из Telegram. AI анализирует данные с датчиков движения и температуры, оптимизирует энергопотребление. Экономия времени на настройку — до 70%.
- Мониторинг серверной: Orange Pi опрашивает датчики температуры и влажности в стойке, при превышении порога отправляет уведомление и включает вентилятор.
- Автоматизация теплицы: Orange Pi управляет поливом и освещением на основе данных с датчиков влажности почвы и освещённости. AI строит графики и предсказывает время полива.
Заключение
Orange Pi — отличная платформа для DIY-проектов, а ASI Biont делает его по-настоящему «умным», беря на себя всю логику интеграции. Вам не нужно писать код вручную — достаточно описать задачу в чате. MQTT подойдёт для постоянного потока данных, HTTP API — для точечных команд. Оба способа работают с задержкой менее 2 секунд и экономят до 70% времени на рутинных задачах.
Попробуйте интеграцию Orange Pi с ASI Biont прямо сейчас на asibiont.com. Подключите свой первый датчик за 5 минут — без панелей управления и сложных настроек, только чат с AI.
Комментарии