Введение
Raspberry Pi Pico W — это микроконтроллер с двухъядерным процессором RP2040, 264 КБ SRAM и встроенным Wi-Fi-модулем CYW43439. Благодаря поддержке MicroPython и низкому энергопотреблению он идеален для IoT-проектов: датчики, реле, светодиоды, автоматизация. Но для полноценного «умного дома» требуется серверная логика — обработка данных, принятие решений, уведомления. Обычно для этого нужен отдельный сервер (Raspberry Pi 4, облачная VM) и написание кода. AI-агент ASI Biont берёт эту работу на себя: вы просто описываете в чате задачу, а AI сам подключается к Pico W через MQTT, анализирует данные с датчиков и управляет исполнительными устройствами. В этой статье мы разберём, как работает интеграция Pico W с ASI Biont, и покажем реальные сценарии: автополив по влажности почвы, уведомления о движении и голосовое управление через чат.
Способы подключения Pico W к ASI Biont
ASI Biont поддерживает множество протоколов (MQTT, HTTP, Modbus, SSH и др.) через универсальный инструмент execute_python. AI сам пишет Python-скрипт с нужными библиотеками и выполняет его в защищённом sandbox-окружении на сервере. Для Pico W оптимальным способом является MQTT — лёгкий протокол, который отлично работает на микроконтроллерах. Альтернативы:
| Способ | Когда использовать | Ограничения |
|---|---|---|
| MQTT (paho-mqtt) | Pico W подключён к Wi-Fi, есть MQTT-брокер (Mosquitto, HiveMQ Cloud) | Требуется стабильное интернет-соединение у Pico W |
| SSH (paramiko) | Если на Pico W запущен SSH-сервер (например, OpenSSH на Raspberry Pi OS Lite, но Pico W не поддерживает полноценную ОС) | Не подходит для MicroPython |
| COM-порт через Hardware Bridge | Pico W подключён по USB к ПК, на ПК запущен bridge.py | Только локальное соединение, не для удалённого доступа |
| HTTP API (aiohttp) | Если на Pico W поднят простой HTTP-сервер (например, через MicroPython с socket) | Меньше распространено, чем MQTT |
Почему MQTT — выбор по умолчанию:
- Минимальное потребление трафика и энергии.
- Асинхронная модель pub/sub: Pico W публикует данные с датчиков, AI подписывается и анализирует.
- Лёгкая интеграция с облачными брокерами (HiveMQ Cloud, AWS IoT Core).
Как AI-агент подключается к Pico W через MQTT
Процесс полностью диалоговый. Вы пишете в чат ASI Biont:
«Подключись к моему Pico W через MQTT. Брокер — mqtt.example.com:1883, без авторизации. Pico W публикует температуру и влажность в топик sensor/dht22. Я хочу, чтобы при влажности ниже 30% включался полив — публикуй команду relay/water on. Также при движении (топик sensor/pir) отправляй мне уведомление в Telegram.»
AI генерирует и выполняет Python-скрипт с библиотекой paho-mqtt. Вот как выглядит этот скрипт (упрощённо):
import paho.mqtt.client as mqtt
import requests
def on_message(client, userdata, msg):
topic = msg.topic
payload = msg.payload.decode()
if topic == "sensor/dht22":
humidity = float(payload.split(",")[1]) # например "25.3,60.1"
if humidity < 30:
client.publish("relay/water", "1")
print("Полив включён")
elif topic == "sensor/pir":
# Отправка уведомления в Telegram
requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": "Движение обнаружено!"}
)
client = mqtt.Client()
client.on_message = on_message
client.connect("mqtt.example.com", 1883, 60)
client.subscribe([("sensor/dht22", 0), ("sensor/pir", 0)])
client.loop_forever() # ВАЖНО: sandbox ограничен 30 секундами, используем loop_start()
Важно: sandbox-окружение ASI Biont имеет таймаут 30 секунд на выполнение скрипта. Поэтому loop_forever() не подходит. Вместо этого AI использует client.loop_start() и держит соединение в фоне, а скрипт завершается после подписки. Но на практике AI может запустить долгоживущий процесс через industrial_command с командой publish для быстрой проверки — более типичный сценарий: AI выполняет одноразовый скрипт, который один раз читает данные (если нужно быстро проверить), а затем по запросу перезапускает анализ.
Реальная последовательность действий
- Пользователь прошивает Pico W на MicroPython с кодом, который подключается к Wi-Fi и публикует данные в MQTT. Пример кода для Pico W:
import network
import urequests
import utime
from machine import Pin
import dht
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID", "PASSWORD")
while not wlan.isconnected():
utime.sleep(1)
# Публикация через HTTP API брокера (если нет MQTT-клиента под MicroPython)
# Но лучше использовать библиотеку umqtt.simple
from umqtt.simple import MQTTClient
client = MQTTClient("pico1", "mqtt.example.com")
client.connect()
dht_sensor = dht.DHT22(Pin(15))
while True:
dht_sensor.measure()
temp = dht_sensor.temperature()
hum = dht_sensor.humidity()
msg = f"{temp},{hum}"
client.publish("sensor/dht22", msg)
utime.sleep(30)
-
Пользователь просит AI подключиться. AI выполняет скрипт из sandbox, который подписывается на топик
sensor/dht22и при каждом сообщении проверяет влажность. Если условие выполнено, публикует команду в топикrelay/water. -
Pico W подписан на топик команд (в MicroPython —
client.subscribe("relay/water")) и при получении"1"включает реле через GPIO.
Сценарии использования
1. Автоматический полив по влажности почвы
Устройства: Pico W + датчик влажности почвы (ёмкостной или резистивный) + реле с насосом/клапаном.
Как работает:
- Pico W считывает аналоговое значение с датчика (через ADC) и публикует в MQTT.
- AI подписан на этот топик. Если влажность ниже заданного порога (например, 30 % влажности почвы, что соответствует сухой почве для многих растений), AI публикует relay/water=1.
- Pico W получает команду и замыкает реле на 5 секунд (или пока не придет 0).
- AI логирует каждое включение и может отправить уведомление в Telegram.
Почему AI, а не простая логика на Pico W?
- Можно менять пороги, расписание, учитывать прогноз погоды (AI обращается к погодному API).
- AI может анализировать тренды (например, если влажность падает слишком быстро — возможна утечка).
- Легко добавить голосовое управление: «Выключи полив» — AI публикует relay/water=0.
2. Уведомления о движении + автоматическое освещение
Устройства: Pico W + PIR-сенсор (HC-SR501) + реле для лампы или светодиодной ленты.
Как работает:
- При обнаружении движения Pico W публикует sensor/pir=1.
- AI проверяет время суток (через datetime) и, если темно, публикует relay/light=1.
- Через 1 минуту без движения публикует relay/light=0.
- Дополнительно AI отправляет вам push-уведомление через Telegram / Slack.
Преимущество перед обычным таймером: AI может игнорировать движение, если вы вручную отключили автоматику в чате, или адаптировать время задержки под конкретную комнату.
3. Голосовое управление через чат ASI Biont
Вы можете просто написать: «Включи свет на кухне». AI понимает намерение, определяет топик relay/kitchen_light и публикует "1". Для этого не нужно настраивать голосового ассистента — всё работает через текстовый чат, включая голосовой ввод (мобильное приложение или веб-версия поддерживают микрофон).
Что даёт интеграция с ASI Biont
- Нулевой код на сервере. Вам не нужно писать бэкенд для анализа данных — AI делает это за секунды.
- Гибкость. Меняйте логику простым сообщением в чат: «Теперь поливай только по вторникам и четвергам, если влажность ниже 40%». AI мгновенно скорректирует скрипт.
- Единый интерфейс. Управляйте всеми устройствами (Pico W, ESP32, Arduino, умные розетки, PLC) из одного окна.
- Масштабируемость. Добавили второй Pico W? Просто скажите AI: «Теперь слушай ещё топик sensor/balcony/temperature». AI обновит подписки.
Как начать
- Соберите схему на Pico W: подключите датчик DHT22 к GPIO15, реле к GPIO14.
- Прошейте MicroPython с кодом MQTT-клиента (пример выше).
- Запустите MQTT-брокер: можете использовать HiveMQ Cloud (бесплатно до 10 устройств) или Mosquitto на локальном Raspberry Pi.
- Откройте чат ASI Biont на asibiont.com и опишите задачу: «Подключись к брокеру mqtt.hivemq.cloud:8883 с логином user и паролем pass. Pico W публикует температуру в sensor/temp. Если температура выше 30°C, включи реле relay/cooler.»
AI сам напишет код и начнёт мониторинг. Всё! Никаких серверов, никакого ручного программирования серверной логики.
Заключение
Raspberry Pi Pico W — доступный и энергоэффективный микроконтроллер для IoT. В паре с AI-агентом ASI Biont он превращается в полноценный элемент умного дома без необходимости разворачивать собственный сервер. Благодаря универсальному execute_python AI подключается к любому MQTT-брокеру и может обрабатывать данные с десятков датчиков, принимать интеллектуальные решения (учёт погоды, времени суток, истории) и уведомлять вас где угодно. А главное — вы управляете всем простыми текстовыми командами.
Попробуйте интеграцию прямо сейчас на asibiont.com — подключите свой Pico W и убедитесь, что умный дом без сервера — это реальность.
Комментарии