Введение
Датчики движения (PIR-сенсоры) — основа любой системы умного дома. Они экономят электроэнергию, повышают безопасность и делают пространство «живым». Однако классическая автоматизация на таймерах и простых логических контроллерах ограничена: она не умеет анализировать контекст, адаптироваться к привычкам жильцов или интегрироваться с внешними сервисами без посредника. Здесь на помощь приходит AI-агент ASI Biont.
ASI Biont — это AI-агент, который подключается к любому устройству через диалог в чате, без панелей управления и кнопок «добавить устройство». Вы просто описываете задачу, и AI сам пишет код интеграции на Python, используя реальные библиотеки: paho-mqtt для MQTT, pyserial для COM-порта, paramiko для SSH, pymodbus для Modbus и так далее. В этой статье мы разберём конкретный сценарий: подключение PIR-датчика (например, HC-SR501) к ASI Biont через MQTT, настройку триггеров и автоматизацию.
Почему именно MQTT?
MQTT (Message Queuing Telemetry Transport) — это лёгкий протокол обмена сообщениями для IoT-устройств. Он идеально подходит для PIR-сенсоров, так как:
- Требует минимального объёма передаваемых данных (несколько байт при срабатывании).
- Работает через брокер (например, Mosquitto), что позволяет легко масштабировать систему на десятки датчиков.
- Поддерживает качество обслуживания (QoS) — гарантирует доставку сообщения даже при временных обрывах связи.
ASI Biont подключается к MQTT-брокеру через Python-скрипт с библиотекой paho-mqtt. Пользователь передаёт в чате параметры брокера (IP, порт, логин, пароль), и AI автоматически генерирует код подписки и публикации.
Как подключить PIR-датчик к ASI Biont
Шаг 1. Подготовка оборудования
- Микроконтроллер ESP32 (или ESP8266) с Wi-Fi.
- PIR-датчик HC-SR501 (или аналог).
- Резистор 10 кОм (опционально, для подтяжки).
- Блок питания 3.3 В для ESP32.
Шаг 2. Схема подключения
| Пин PIR | Пин ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| OUT | GPIO4 |
Шаг 3. Прошивка ESP32
Загрузите на ESP32 скетч на MicroPython или Arduino C, который публикует состояние датчика в MQTT-топик. Пример на MicroPython:
import network
import time
from machine import Pin
from umqtt.simple import MQTTClient
# Настройки Wi-Fi
WIFI_SSID = "YourWiFi"
WIFI_PASS = "YourPassword"
# Настройки MQTT-брокера
MQTT_BROKER = "192.168.1.100"
MQTT_PORT = 1883
MQTT_TOPIC = b"home/pir"
# Пин PIR-датчика
pir = Pin(4, Pin.IN)
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
time.sleep(0.5)
print("Connected to Wi-Fi")
def connect_mqtt():
client = MQTTClient("esp32_pir", MQTT_BROKER, port=MQTT_PORT)
client.connect()
print("Connected to MQTT broker")
return client
connect_wifi()
client = connect_mqtt()
last_state = pir.value()
while True:
current_state = pir.value()
if current_state != last_state:
if current_state == 1:
client.publish(MQTT_TOPIC, b"motion_detected")
print("Motion detected")
else:
client.publish(MQTT_TOPIC, b"no_motion")
print("No motion")
last_state = current_state
time.sleep(0.1)
Этот код бесконечный, поэтому на ESP32 его нужно запускать как основную прошивку. На серверной стороне ASI Biont (sandbox с таймаутом 30 секунд) такие циклы недопустимы.
Шаг 4. Подключение ASI Biont к MQTT-брокеру
В чате с ASI Biont напишите:
«Подключись к MQTT-брокеру 192.168.1.100:1883, подпишись на топик home/pir. При получении сообщения motion_detected отправить уведомление в Telegram и включить свет через HTTP API умной розетки 192.168.1.200.»
AI сгенерирует и выполнит следующий Python-скрипт (упрощённый вид):
import paho.mqtt.client as mqtt
import requests
import json
def on_message(client, userdata, msg):
payload = msg.payload.decode()
if payload == "motion_detected":
# Отправка уведомления в Telegram
telegram_token = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
text = "Движение обнаружено!"
requests.post(f"https://api.telegram.org/bot{telegram_token}/sendMessage", json={"chat_id": chat_id, "text": text})
# Включение света через HTTP API умной розетки
requests.post("http://192.168.1.200/api/relay/on", json={"device": "living_room_light"})
print("Свет включён, уведомление отправлено")
client = mqtt.Client()
client.on_message = on_message
client.connect("192.168.1.100", 1883, 60)
client.subscribe("home/pir")
client.loop_forever() # В sandbox этот код будет работать только 30 секунд
Важно: В sandbox ASI Biont (облачное окружение) loop_forever() работает не более 30 секунд. Для постоянной работы используйте Hardware Bridge на своём ПК или разверните скрипт на Raspberry Pi.
Альтернатива: Hardware Bridge для подключения через COM-порт
Если у вас нет Wi-Fi на ESP32, или вы хотите управлять PIR-датчиком напрямую с компьютера, используйте Hardware Bridge. Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge). Запустите:
pip install pyserial requests websockets
python bridge.py --token=YOUR_API_KEY --ports=COM3 --baud=115200
Bridge подключается к ASI Biont через WebSocket (единственный канал связи). AI отправляет команды через industrial_command() с протоколом serial://. Пример:
industrial_command(protocol="serial", command="serial_write_and_read", data="48454c500a")
Bridge запишет hex-строку в COM-порт и вернёт ответ. Это удобно для чтения данных с Arduino, к которому подключён PIR-датчик.
Сценарии автоматизации
После интеграции ASI Biont с PIR-датчиком открываются десятки сценариев:
| Сценарий | Действие AI |
|---|---|
| Включение света при движении | AI отправляет HTTP-запрос к умной розетке или IoT-лампе (Philips Hue, Xiaomi) |
| Уведомление в Telegram/Slack при обнаружении движения в нерабочее время | AI отправляет сообщение через Telegram Bot API или Slack Webhook |
| Запуск записи видео с IP-камеры | AI вызывает HTTP API камеры (например, RTSP-команду) |
| Остановка отопления/кондиционера, если в комнате никого нет | AI пишет в топик MQTT для термостата |
| Отправка тревожного сигнала на пульт охраны | AI формирует SMS через Twilio или отправляет email через SendGrid |
Все эти сценарии настраиваются через диалог с AI — никаких сложных панелей и визуальных редакторов.
Почему это выгодно?
- Скорость: AI пишет код интеграции за секунды. Не нужно тратить часы на изучение документации MQTT или HTTP API.
- Гибкость: Подключайте любые устройства — не только PIR, но и датчики температуры, влажности, давления, умные розетки, реле, камеры, GPS-трекеры.
- Отсутствие vendor lock-in: Вы не привязаны к одному производителю. ASI Biont работает с любым оборудованием, у которого есть MQTT, HTTP, Modbus, COM-порт, SSH, OPC UA или BACnet.
- Автоматизация без кода: Пользователь описывает логику на естественном языке, AI реализует её в коде.
Заключение
PIR-датчик — это лишь один из сотен типов устройств, которые можно интегрировать с ASI Biont за считанные минуты. Благодаря универсальному подходу (execute_python + набор промышленных библиотек) AI-агент подключается к любому оборудованию через диалог. Не нужно ждать обновлений прошивки или покупать дорогие хабы — просто опишите задачу в чате, и AI сделает всё сам.
Попробуйте интеграцию прямо сейчас на asibiont.com. Подключите свой первый PIR-датчик и настройте автоматизацию умного дома без единой строки кода — AI напишет её за вас.
Комментарии