Введение
Raspberry Pi Pico W — это микроконтроллер на базе RP2040 с поддержкой Wi-Fi и 26 программируемыми выводами GPIO. Его часто используют в IoT-проектах, от умного дома до мониторинга окружающей среды. Однако написание кода для каждого сценария — подключение датчиков, настройка MQTT, обработка данных — требует времени и навыков. ASI Biont решает эту проблему: AI-агент сам пишет код интеграции, подключается к устройству через MQTT и управляет им через чат-интерфейс. В этой статье мы разберём, как подключить Pico W к ASI Biont, настроить чтение температуры/влажности с DHT22, управление светодиодами и реле, а также автоматизировать сценарии без единой строчки кода с вашей стороны.
Как ASI Biont подключается к Raspberry Pi Pico W
Для Pico W оптимальный способ интеграции — MQTT. ASI Biont использует библиотеку paho-mqtt внутри execute_python (sandbox-окружение на сервере) для подписки на топики и публикации команд. Альтернативно, если Pico W подключён к ПК через USB (COM-порт), можно использовать Hardware Bridge — AI отправляет команды через industrial_command с протоколом serial://, а bridge на локальном ПК выполняет запись/чтение через pyserial. Для этой статьи выберем MQTT, так как он не требует постоянного подключения к ПК и работает через Wi-Fi.
Почему MQTT?
- Асинхронность — Pico W может отправлять данные даже когда AI-агент неактивен.
- Надёжность — протокол работает поверх TCP, поддерживает QoS.
- Популярность — большинство IoT-проектов уже используют MQTT.
Конкретный сценарий: мониторинг температуры и управление реле
Представим задачу: Pico W с датчиком DHT22 измеряет температуру и влажность в серверной. Если температура превышает 30°C, необходимо включить вентилятор через реле. ASI Biont анализирует данные, принимает решение и публикует команду.
Шаг 1. Прошивка Pico W (MicroPython)
Пользователь загружает на Pico W следующий код (этот код не пишется вручную — AI генерирует его по запросу в чате):
import network
import time
import dht
from machine import Pin, PWM
from umqtt.simple import MQTTClient
# Настройка Wi-Fi
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect("SSID", "PASSWORD")
while not wifi.isconnected():
time.sleep(1)
# Настройка датчика и реле
sensor = dht.DHT22(Pin(15))
relay = Pin(16, Pin.OUT, value=0)
# MQTT callback
CLIENT_ID = "pico_w_001"
BROKER = "test.mosquitto.org"
TOPIC_DATA = b"pico/temperature"
TOPIC_CMD = b"pico/command"
def callback(topic, msg):
if topic == TOPIC_CMD:
if msg == b"RELAY_ON":
relay.on()
elif msg == b"RELAY_OFF":
relay.off()
client = MQTTClient(CLIENT_ID, BROKER)
client.set_callback(callback)
client.connect()
client.subscribe(TOPIC_CMD)
# Основной цикл
while True:
try:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
payload = f"{{\"temp\":{temp},\"hum\":{hum}}}"
client.publish(TOPIC_DATA, payload)
client.check_msg() # Проверка команд
time.sleep(30)
except OSError:
time.sleep(5)
Шаг 2. Подключение AI-агента через чат
Пользователь пишет в чат ASI Biont:
«Подключись к Pico W через MQTT-брокер test.mosquitto.org. Подпишись на топик pico/temperature. Если температура превышает 30°C, опубликуй RELAY_ON в топик pico/command и отправь мне уведомление в Telegram. Если температура опускается ниже 28°C — опубликуй RELAY_OFF.»
AI-агент генерирует и выполняет следующий Python-скрипт (через execute_python):
import paho.mqtt.client as mqtt
import time
import requests
BROKER = "test.mosquitto.org"
TOPIC_DATA = "pico/temperature"
TOPIC_CMD = "pico/command"
THRESHOLD_HIGH = 30.0
THRESHOLD_LOW = 28.0
# Telegram bot (пример)
TELEGRAM_TOKEN = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID = "123456789"
def send_telegram(message):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": CHAT_ID, "text": message})
def on_message(client, userdata, msg):
import json
data = json.loads(msg.payload.decode())
temp = data.get("temp")
if temp is None:
return
if temp > THRESHOLD_HIGH:
client.publish(TOPIC_CMD, "RELAY_ON")
send_telegram(f"Температура {temp}°C — вентилятор включён")
elif temp < THRESHOLD_LOW:
client.publish(TOPIC_CMD, "RELAY_OFF")
send_telegram(f"Температура {temp}°C — вентилятор выключен")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC_DATA)
client.loop_forever() # Ограничение sandbox: 30 секунд — для демо используем loop_start()
Шаг 3. Результат
AI-агент подписывается на данные, каждые 30 секунд получает температуру, сравнивает с порогами, при необходимости включает/выключает реле и уведомляет пользователя через Telegram. Всё управление — через диалог в чате.
Альтернативный способ: Hardware Bridge + COM-порт
Если Pico W подключён к ПК по USB, можно использовать Hardware Bridge. Пользователь скачивает bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge) и запускает:
pip install pyserial requests websockets
python bridge.py --token=YOUR_TOKEN --ports=COM3 --baud=115200
После этого AI может напрямую общаться с Pico W через COM-порт. Пример команды в чате:
«Отправь на COM3 команду LED_ON и прочитай ответ.»
AI использует industrial_command:
industrial_command(
protocol="serial://",
command="serial_write_and_read",
data="4c45445f4f4e0a" # hex для "LED_ON\n"
)
Bridge получает команду через WebSocket, записывает данные в порт и возвращает ответ. Это удобно для отладки и быстрых тестов, но для постоянного мониторинга лучше MQTT.
Почему это выгодно
- Ноль ручного кодирования — вы описываете задачу на естественном языке, AI пишет код.
- Мгновенная интеграция — не нужно ждать обновлений прошивки или SDK.
- Гибкость — один и тот же Pico W может использоваться для разных сценариев: сегодня — мониторинг температуры, завтра — управление светом.
- Масштабирование — ASI Biont может одновременно управлять сотнями Pico W через один MQTT-брокер.
Заключение
Raspberry Pi Pico W — отличная платформа для IoT, но его потенциал раскрывается в полной мере только с интеллектуальным управлением. ASI Biont превращает микроконтроллер в автономного помощника, который не только собирает данные, но и принимает решения. Попробуйте интеграцию прямо сейчас на asibiont.com — подключите свой Pico W за 5 минут через чат.
Комментарии