PIR-датчик движения — один из самых востребованных компонентов умного дома. Он улавливает инфракрасное излучение тела и позволяет автоматически управлять светом, охраной и аналитикой. Но чтобы превратить простой сенсор в полноценного помощника, нужен мозг. И этим мозгом становится AI-агент ASI Biont.
ASI Biont — это AI-агент, который умеет общаться с оборудованием через все популярные протоколы: MQTT, Modbus, COM-порт, HTTP, SSH и даже OPC-UA. Главная фишка — универсальный метод execute_python: вы описываете задачу словами, а AI сам пишет код для конкретного устройства. Не нужно ждать, пока разработчики добавят официальную поддержку — подключайте что угодно прямо сейчас.
В этой статье — практическое руководство: как подключить PIR-датчик к ASI Biont по MQTT, через COM-порт или напрямую через Python. Мы разберём 15 шагов с примерами кода, схемами и готовыми сценариями для охраны, энергосбережения и уведомлений.
Почему ASI Biont?
Большинство систем умного дома имеют жёстко прописанные алгоритмы. ASI Biont работает иначе: он не просто исполняет команды, а сам генерирует код, адаптирует логику под ваши условия и общается на естественном языке. Например, вы можете сказать: «Подключи PIR-датчик через MQTT, брокер на 192.168.1.100, топик home/pir/livingroom, отправляй уведомление в Telegram, если движение в рабочее время». И AI соберёт всё это из готовых библиотек.
Способы подключения PIR к ASI Biont
| Способ | Когда использовать | Необходимое оборудование | Сложность |
|---|---|---|---|
| MQTT | Удалённый мониторинг по Wi-Fi, несколько датчиков | ESP32 + PIR + Mosquitto | Средняя |
| COM-порт | Проводной датчик на Arduino, уже есть USB | Arduino + PIR + Hardware Bridge | Низкая |
| execute_python | Прямое подключение к Raspberry Pi, нестандартный контроллер | Raspberry Pi + PIR | Высокая (требует знаний Python) |
| HTTP API | Если датчик отправляет данные на веб-сервер | Любой контроллер с HTTP | Средняя |
В этом гайде мы детально рассмотрим MQTT как самый удобный способ, но также покажем альтернативные пути.
Шаг 1. Что понадобится для интеграции
Для основного сценария потребуется:
| Компонент | Назначение | Примерный бюджет |
|---|---|---|
| PIR-датчик HC-SR501 | Детекция движения | 150–300 ₽ |
| Микроконтроллер ESP32 | Передача данных по Wi-Fi/MQTT | 400–800 ₽ |
| MQTT-брокер (Mosquitto) | Промежуточный сервер для сообщений | 0 ₽ (open source) |
| ASI Biont | AI-агент, который пишет код и логику | Подписка, есть trial |
| Источник питания 5V | Питание PIR и ESP32 | 200–500 ₽ |
Если у вас уже есть Arduino с USB-выходом, подойдёт вариант с COM-портом (шаг 11). Для Raspberry Pi — шаг 12.
Шаг 2. Схема подключения PIR к ESP32
Модуль HC-SR501 имеет три вывода: VCC (5V), GND и OUT (цифровой сигнал). Подключаем к ESP32:
- VCC → 5V
- GND → GND
- OUT → GPIO14
Схематично:
[HC-SR501] [ESP32]
VCC ------ 5V
GND ------ GND
OUT ------ GPIO14
Настройте перемычки на модуле: для автономной работы поставьте режим «H» (repeatable trigger) и скорректируйте задержку до 3–5 секунд. Это уменьшит ложные срабатывания.
Шаг 3. Прошивка ESP32 (MicroPython)
Прошиваем ESP32 с помощью esptool и загружаем прошивку MicroPython с официального сайта. Ниже — пример кода для чтения PIR и отправки данных по MQTT:
import machine
import ubinascii
import ujson
import time
from umqtt.simple import MQTTClient
WIFI_SSID = "YOUR_SSID"
WIFI_PASS = "YOUR_PASSWORD"
MQTT_HOST = "192.168.1.100"
MQTT_TOPIC = "home/pir/livingroom"
pir_pin = machine.Pin(14, machine.Pin.IN)
def connect_wifi():
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
time.sleep(0.5)
def send_motion(state):
client = MQTTClient("esp32_" + ubinascii.hexlify(machine.unique_id()).decode(), MQTT_HOST)
client.connect()
payload = ujson.dumps({"motion": state})
client.publish(MQTT_TOPIC, payload)
client.disconnect()
connect_wifi()
while True:
if pir_pin.value() == 1:
send_motion(True)
print("Motion detected")
time.sleep(1)
В реальной прошивке стоит держать постоянное MQTT-соединение и использовать прерывания. Упрощённый код показан для наглядности.
Шаг 4. Установка MQTT-брокера
Для приёма сообщений от ESP32 развернём Mosquitto. На Raspberry Pi или сервере с Ubuntu:
sudo apt update
sudo apt install -y mosquitto mosquitto-clients
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
Проверьте, что брокер слушает порт 1883: netstat -tulpn | grep 1883. Для локальной разработки можно запустить Mosquitto на том же компьютере, где работает ASI Biont.
Шаг 5. Первый диалог с ASI Biont
ASI Biont не имеет панели управления устройствами. Всё происходит через чат. Например:
Пользователь: Подключи PIR-датчик через MQTT. Брокер на 192.168.1.100, порт 1883, топик home/pir/livingroom.
AI: Принято. Подписался на топик. Что делать при движении?
Пользователь: Отправь уведомление в Telegram и логируй в файл.
AI: Уточните токен бота и chat_id.
Пользователь: Токен 123456:ABC..., chat_id 987654321.
AI: Готово. Сценарий активирован.
Такой диалог — стандартный способ настройки. AI сам пишет код на Python с использованием paho-mqtt, pymodbus, aiohttp и других библиотек.
Шаг 6. Пример кода подписки на MQTT
Вот как выглядит базовая логика обработки сообщений, которую AI генерирует для работы с MQTT:
import paho.mqtt.client as mqtt
import json
BROKER_HOST = "192.168.1.100"
BROKER_PORT = 1883
TOPIC = "home/pir/livingroom"
def on_message(client, userdata, msg):
data = json.loads(msg.payload.decode())
motion = data
motion = data.get(
Комментарии