Введение
Датчик движения (PIR-сенсор) — одно из самых популярных устройств для умного дома и офисной автоматизации. Он фиксирует инфракрасное излучение от движущихся объектов (людей, животных) и выдает сигнал при обнаружении движения. Подключив такой сенсор к AI-агенту ASI Biont, вы получаете возможность создавать сложные сценарии: автоматически включать свет, отправлять уведомления в Telegram, запускать запись с камеры, управлять климатом и многое другое — без написания кода вручную. ASI Biont сам пишет код интеграции, адаптируясь под ваше оборудование и протоколы. В этой статье мы разберем, как подключить PIR-датчик к ASI Biont через MQTT и GPIO на примере ESP32, настроить автоматизацию и получить готовые скрипты для реальных задач.
Почему PIR-датчик и ASI Biont — идеальная пара?
PIR-сенсоры используются повсеместно: в системах безопасности, управлении освещением, учете посещаемости помещений. Однако традиционная настройка таких сценариев требует либо покупки дорогих контроллеров, либо написания кода на MicroPython/C++ для ESP32/Arduino. ASI Biont снимает этот барьер: AI-агент понимает вашу задачу на естественном языке, сам выбирает протокол (MQTT, GPIO через SSH, COM-порт через Hardware Bridge), пишет и выполняет код. Это особенно ценно, если вы хотите быстро прототипировать итерацию умного дома без глубоких знаний программирования.
Как ASI Biont подключается к PIR-датчику?
В зависимости от того, как подключен ваш PIR-датчик, ASI Biont может использовать несколько способов:
| Способ подключения | Когда применим | Пример оборудования |
|---|---|---|
| MQTT | Датчик подключен к ESP32, который публикует данные в MQTT-брокер | ESP32 + PIR, реле |
| GPIO через SSH | Датчик на Raspberry Pi или другом одноплатнике | Raspberry Pi + PIR |
| COM-порт (Hardware Bridge) | Датчик подключен к Arduino через USB | Arduino UNO + PIR |
| HTTP API | Датчик в составе системы умного дома с REST API | Контроллер Home Assistant |
Самый гибкий и популярный сценарий — ESP32 с MQTT. Почему? Потому что ESP32 стоит недорого (~300 руб.), имеет встроенный Wi-Fi, легко прошивается через Arduino IDE или MicroPython, а MQTT — легковесный протокол, идеальный для IoT. ASI Biont подключается к тому же MQTT-брокеру (например, Mosquitto на Raspberry Pi или облачный HiveMQ) и может как подписываться на топик с данными датчика, так и публиковать команды для управления нагрузкой.
Пошаговая интеграция: PIR-датчик на ESP32 + MQTT + ASI Biont
Шаг 1. Аппаратное подключение
Схема подключения PIR-датчика (например, HC-SR501) к ESP32:
PIR-сенсор HC-SR501:
- VCC → 3.3V ESP32
- GND → GND ESP32
- OUT → GPIO 4 (D4) ESP32
Реле (для управления светом):
- VCC → 3.3V ESP32
- GND → GND ESP32
- IN → GPIO 5 (D5) ESP32
Шаг 2. Скетч для ESP32 (MicroPython)
Загрузите на ESP32 следующий код (через Thonny или ampy). Этот код публикует состояние датчика в MQTT-топик home/pir и подписывается на топик home/light/command для управления реле:
import machine
import time
import network
from umqtt.simple import MQTTClient
# Настройки Wi-Fi и MQTT
WIFI_SSID = "your_wifi_ssid"
WIFI_PASS = "your_wifi_password"
MQTT_BROKER = "192.168.1.100" # IP вашего MQTT-брокера
CLIENT_ID = "esp32_pir"
TOPIC_PIR = "home/pir"
TOPIC_LIGHT_CMD = "home/light/command"
# Пины
pir = machine.Pin(4, machine.Pin.IN)
relay = machine.Pin(5, machine.Pin.OUT)
# Подключение к Wi-Fi
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("WiFi connected")
# Callback для подписки
def sub_cb(topic, msg):
if topic == TOPIC_LIGHT_CMD.encode():
if msg == b"ON":
relay.value(1)
elif msg == b"OFF":
relay.value(0)
# Основной цикл
def main():
connect_wifi()
client = MQTTClient(CLIENT_ID, MQTT_BROKER)
client.set_callback(sub_cb)
client.connect()
client.subscribe(TOPIC_LIGHT_CMD.encode())
print("Connected to MQTT broker")
last_state = -1
while True:
state = pir.value()
if state != last_state:
client.publish(TOPIC_PIR.encode(), b"1" if state else b"0")
last_state = state
client.check_msg()
time.sleep(0.1)
try:
main()
except KeyboardInterrupt:
print("Interrupted")
Шаг 3. Подключение ASI Biont к MQTT-брокеру
Теперь самое интересное. Откройте чат с ASI Biont и опишите задачу (на русском или английском):
«Подключись к MQTT-брокеру по адресу 192.168.1.100, порт 1883. Подпишись на топик home/pir. Если значение пришло 1 (движение), опубликуй в топик home/light/command сообщение ON, через 5 минут отправь OFF. Также отправь уведомление в Telegram: „Обнаружено движение в комнате“»
AI-агент ASI Biont выполнит следующие действия:
1. Сгенерирует Python-скрипт с использованием библиотеки paho-mqtt.
2. Запустит его в защищенном sandbox-окружении (таймаут 30 секунд, поэтому код не должен содержать бесконечных циклов — AI использует client.loop() с таймером).
3. Подпишется на топик, получит данные и выполнит логику.
4. Отправит уведомление через Telegram Bot API (если вы предоставили токен и chat_id).
Пример кода, который ASI Biont сгенерирует и выполнит:
import paho.mqtt.client as mqtt
import time
import requests
BROKER = "192.168.1.100"
TOPIC_PIR = "home/pir"
TOPIC_LIGHT = "home/light/command"
TELEGRAM_TOKEN = "your_token"
CHAT_ID = "your_chat_id"
def on_message(client, userdata, msg):
payload = msg.payload.decode()
if payload == "1":
# Включить свет
client.publish(TOPIC_LIGHT, "ON")
# Отправить уведомление в Telegram
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": "Обнаружено движение в комнате"}
)
# Через 5 минут выключить (здесь - однократный вызов, таймер в 300 сек)
time.sleep(300)
client.publish(TOPIC_LIGHT, "OFF")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC_PIR)
client.loop(timeout=1.0) # не блокирует надолго
Важно: Поскольку sandbox имеет таймаут, AI может запланировать выполнение скрипта с помощью внешнего триггера (например, по расписанию) или использовать подход с однократным запуском и
time.sleepв пределах 30 секунд. Для длительных сценариев рекомендуется настроить постоянный MQTT-клиент на вашем сервере или Raspberry Pi, а ASI Biont будет отправлять команды черезindustrial_commandпо мере необходимости.
Шаг 4. Альтернатива: управление через Hardware Bridge и COM-порт
Если вы используете Arduino с PIR-датчиком, ASI Biont может подключиться через Hardware Bridge. Для этого:
1. Скачайте bridge.py с портала ASI Biont.
2. Запустите на ПК, к которому подключена Arduino по USB:
bash
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --default-baud=115200
3. В чате с AI напишите: «Подключись к Arduino через COM3, скорость 115200. Читай данные с аналогового пина A0 (PIR). Если значение > 500, отправь уведомление».
ASI Biont использует industrial_command с протоколом serial:// или arduino:// для отправки команд на bridge, который локально читает/пишет в COM-порт.
Реальные сценарии автоматизации
| Сценарий | Действие ASI Biont | Команда в чате |
|---|---|---|
| Включение света при входе | Получает MQTT-сообщение 1, публикует ON в топик реле | «Если PIR показывает движение, включи свет через MQTT» |
| Охрана периметра | Отправляет Telegram-уведомление с фото с камеры | «При срабатывании PIR сделай снимок с камеры и отправь в Telegram» |
| Учет посещаемости | Логирует время каждого срабатывания в Google Sheets | «Записывай в Google Sheets время каждого события с PIR» |
| Умный климат | Если движения нет 30 минут — уменьши отопление | «Если PIR молчит 30 минут, отправь команду на термостат уменьшить температуру» |
Почему это выгодно?
- Нет необходимости писать код вручную. AI делает всю работу за секунды, генерируя Python-скрипты с использованием paho-mqtt, pyserial, paramiko и других библиотек.
- Любое устройство. Подключайте PIR-датчик, камеру, реле, умную розетку — ASI Biont поддерживает MQTT, Modbus, HTTP API, OPC-UA, SSH и COM-порт.
- Быстрое прототипирование. Вы можете за 5 минут настроить сценарий, который раньше занял бы час написания и отладки кода.
- Гибкость. Если нужно изменить логику — просто опишите новую задачу в чате. AI перепишет код.
Заключение
PIR-датчик движения — простой, но мощный элемент умного дома. Интеграция с AI-агентом ASI Biont превращает его в центр автоматизации, который не только детектирует движение, но и принимает решения: включает свет, отправляет уведомления, управляет климатом. При этом вам не нужно быть программистом — достаточно описать задачу на естественном языке. Попробуйте сами: зайдите на asibiont.com, создайте агента и подключите ваш PIR-датчик за несколько минут. ASI Biont сам напишет код и настроит интеграцию под ваше оборудование.
Комментарии