Введение
PIR (Passive Infrared) датчик движения — один из самых популярных сенсоров в умном доме и промышленной безопасности. Он реагирует на тепловое излучение движущихся объектов (человек, животные) и выдает сигнал "движение есть" или "движения нет". Подключение такого датчика к AI-агенту ASI Biont превращает обычный сенсор в интеллектуальную систему оповещения, аналитики и управления. В этой статье мы разберем, как за 5 минут настроить интеграцию PIR-датчика с ASI Biont через ESP32 и Telegram, без написания кода вручную — AI сделает всё сам.
Зачем подключать PIR-датчик к AI-агенту?
Обычный PIR-датчик просто замыкает контакт при движении. Но когда он подключен к AI-агенту, открываются возможности:
- Умные уведомления — AI присылает сообщение в Telegram только при значимых событиях (например, движение ночью, а не днем).
- Прогнозирование — AI анализирует тренды: в какое время суток чаще всего фиксируется движение, и предупреждает о нештатных паттернах.
- Автоматизация — при обнаружении движения AI может включить свет, записать видео, отправить сигнал тревоги.
- Интеграция с другими устройствами — PIR-датчик работает в связке с реле, камерами, сиренами.
Какой способ подключения используем?
Мы выберем ESP32 + MQTT + Hardware Bridge. Почему именно так?
- ESP32 — дешевый и мощный микроконтроллер с Wi-Fi, легко подключается к PIR-датчику.
- MQTT — легковесный протокол для IoT, идеален для передачи данных с датчиков.
- Hardware Bridge — приложение bridge.py от ASI Biont, которое запускается на вашем ПК и соединяет устройство с облаком через WebSocket. Bridge не требует открытия портов или статического IP.
Альтернатива: если ESP32 подключен к ПК через USB, можно использовать COM-порт (serial) через тот же bridge. Но MQTT удобнее для удаленного доступа.
Пошаговая интеграция PIR-датчика с ASI Biont
Шаг 1. Аппаратная часть
Подключите PIR-датчик (например, HC-SR501) к ESP32:
- VCC → 3.3V
- GND → GND
- OUT → GPIO 4 (можно любой цифровой пин)
Установите на ESP32 прошивку, которая публикует состояние датчика в MQTT-топик. Пример кода на MicroPython (вы можете загрузить его через Thonny или Arduino IDE):
import machine
import time
import umqtt.simple as mqtt
# Настройки Wi-Fi и MQTT
WIFI_SSID = "home_wifi"
WIFI_PASS = "password"
MQTT_BROKER = "192.168.1.100" # IP вашего MQTT-брокера (например, Mosquitto)
MQTT_TOPIC = b"home/pir/motion"
# Пин PIR-датчика
pir = machine.Pin(4, machine.Pin.IN)
# Подключение к Wi-Fi
def connect_wifi():
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
time.sleep(1)
print("WiFi connected")
# Подключение к MQTT-брокеру
connect_wifi()
client = mqtt.MQTTClient("esp32_pir", MQTT_BROKER)
client.connect()
# Основной цикл
while True:
motion = pir.value() # 1 — движение есть, 0 — нет
client.publish(MQTT_TOPIC, str(motion).encode())
time.sleep(1)
Шаг 2. Запускаем Hardware Bridge
- Зайдите в дашборд ASI Biont → Devices → Create API Key. Скачайте bridge.py.
- Установите зависимости:
pip install pyserial requests websockets. - Запустите bridge:
python bridge.py --token=ВАШ_ТОКЕН --rate=10
Где --rate=10 означает, что bridge будет отправлять данные в облако не чаще 10 раз в секунду (чтобы не перегружать канал).
Шаг 3. Подключаемся к датчику через чат с AI
Теперь откройте чат с ASI Biont (Telegram или веб-интерфейс) и напишите:
Подключись к MQTT-брокеру по адресу 192.168.1.100, порт 1883, без пароля. Подпишись на топик "home/pir/motion". При получении значения "1" (движение) отправляй мне уведомление в Telegram: "Обнаружено движение в доме!" и записывай время события в файл motion_log.csv. Если за последние 5 минут было больше 10 событий, добавь в сообщение: "Возможна аномальная активность".
AI-агент проанализирует запрос и автоматически сгенерирует Python-скрипт, который запустится в sandbox-окружении ASI Biont. Вот как будет выглядеть этот скрипт (упрощенно):
import paho.mqtt.client as mqtt
import requests
import csv
import time
from datetime import datetime
TELEGRAM_BOT_TOKEN = "YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID = "YOUR_CHAT_ID"
event_times = []
def on_message(client, userdata, msg):
value = msg.payload.decode()
if value == "1":
now = datetime.now()
event_times.append(now)
# Отправляем уведомление в Telegram
message = "Обнаружено движение в доме!"
# Проверяем аномальную активность за последние 5 минут
five_min_ago = now.timestamp() - 300
recent_events = [t for t in event_times if t.timestamp() > five_min_ago]
if len(recent_events) > 10:
message += "\nВозможна аномальная активность (более 10 событий за 5 минут)"
# Отправка через Telegram API
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": TELEGRAM_CHAT_ID, "text": message})
# Запись в CSV
with open("motion_log.csv", "a", newline="") as f:
writer = csv.writer(f)
writer.writerow([now.isoformat(), "movement"])
client = mqtt.Client()
client.on_message = on_message
client.connect("192.168.1.100", 1883, 60)
client.subscribe("home/pir/motion")
client.loop_forever()
Обратите внимание: скрипт использует только разрешенные библиотеки (requests, paho-mqtt, csv) и не содержит бесконечных циклов с while True (client.loop_forever() — это корректный способ для MQTT, так как sandbox поддерживает длительные подключения).
Шаг 4. Результат
Теперь при каждом срабатывании PIR-датчика вы получаете уведомление в Telegram. AI также ведет лог и анализирует частоту срабатываний. Если активность превышает норму — вы узнаете об этом первым.
Другие сценарии интеграции PIR-датчика с ASI Biont
| Сценарий | Способ подключения | Что делает AI |
|---|---|---|
| Охрана периметра | ESP32 + MQTT | При движении включает сирену через реле и отправляет фото с камеры |
| Умный дом | COM-порт (Arduino) | Включает свет при входе в комнату, выключает через 5 минут после ухода |
| Аналитика проходимости | Raspberry Pi + SSH | Собирает статистику за день, строит график активности (matplotlib) и отправляет отчет в Telegram |
Почему это выгодно?
Вам не нужно вручную писать код интеграции, разбираться в протоколах или ждать обновлений. Вы просто описываете задачу на естественном языке — ASI Biont сам генерирует и выполняет Python-скрипт с использованием paho-mqtt, requests, paramiko или других библиотек. Подключение занимает минуты, а не дни.
Подводные камни и советы
- MQTT-брокер должен быть доступен из облака. Если ваш брокер находится в локальной сети, используйте Hardware Bridge с MQTT-прокси или перенаправьте порт.
- PIR-датчик HC-SR501 имеет задержку после срабатывания (обычно 2-3 секунды). Учитывайте это при настройке — AI может пропустить быстрые движения.
- Не используйте бесконечные циклы в скриптах для execute_python. Sandbox ограничен по времени (30 секунд). Для длительных задач используйте MQTT subscribe или WebSocket.
- Для работы с COM-портами обязательно запускайте bridge.py на том же ПК, к которому подключено устройство.
Заключение
Интеграция PIR-датчика движения с AI-агентом ASI Biont — это простой и мощный способ сделать ваш умный дом или офис по-настоящему "умным". Вы получаете не просто сигнал о движении, а интеллектуальную систему оповещения, аналитики и автоматизации, которая работает через Telegram. И всё это — без написания кода вручную.
Попробуйте сами: зайдите на asibiont.com, создайте API-ключ, скачайте bridge.py и опишите в чате, к какому устройству хотите подключиться. AI сделает всю интеграцию за секунды.
Комментарии