Введение
Представьте: вы заходите в офис, датчик движения фиксирует ваше присутствие, AI-агент ASI Biont включает свет, настраивает температуру кондиционера и отправляет уведомление в Telegram: «Пользователь вошёл в переговорную №3». Всё это — без единой строки кода, написанной вами вручную. Интеграция PIR-датчика (Passive Infrared sensor) с AI-агентом ASI Biont превращает обычный сенсор движения в полноценный элемент умного офиса, способный автоматизировать освещение, климат-контроль, безопасность и энергосбережение.
PIR-датчик — это пассивный инфракрасный сенсор, который реагирует на тепловое излучение движущихся объектов (людей, животных). Он прост, дёшев и является стандартом для систем обнаружения присутствия. Однако сам по себе он лишь выдаёт сигнал «есть движение / нет движения». Подключив его к AI-агенту ASI Biont, вы получаете интеллектуальную систему, которая не просто регистрирует событие, но и принимает решения на основе контекста: время суток, день недели, показания других датчиков, историю перемещений. ASI Biont подключается к любому устройству через execute_python — AI сам пишет код интеграции под каждое устройство. Не нужно ждать, пока разработчики добавят поддержку — подключай что угодно прямо сейчас.
Почему AI-агент, а не традиционная логика?
Традиционные системы умного дома используют жёсткие сценарии: «если движение — включить свет». Это негибко и требует ручной настройки каждого правила. AI-агент ASI Biont анализирует данные в реальном времени, учитывает множество факторов и может изменять поведение без участия человека. Например:
- Если движение обнаружено в ночное время в офисе — AI включает только дежурное освещение (10% яркости), чтобы не ослепить возможного охранника.
- Если в комнате никого нет более 15 минут — AI отключает кондиционер и выключает свет, экономя до 30% электроэнергии.
- Если датчик фиксирует движение в нерабочее время в зоне, где никого не должно быть — AI отправляет уведомление в Telegram и включает запись с камеры.
Способы подключения PIR-датчика к ASI Biont
PIR-датчик — это аналоговый или цифровой сенсор, который обычно подключается к микроконтроллеру (ESP32, Arduino, Raspberry Pi) или промышленному контроллеру (PLC). AI-агент ASI Biont поддерживает несколько протоколов для интеграции с такими устройствами:
| Способ подключения | Устройство | Протокол | Преимущества |
|---|---|---|---|
| COM-порт (Hardware Bridge) | Arduino / ESP32 / ПК | RS-232/RS-485 | Простота, низкая задержка, подходит для проводных датчиков |
| MQTT | ESP32 / Промышленные шлюзы | MQTT 3.1.1 | Стандарт IoT, асинхронная передача, облачная интеграция |
| SSH | Raspberry Pi / Orange Pi | SSH + Python | Доступ к GPIO, камерам, сложная логика на одноплатнике |
| Modbus/TCP | PLC | Modbus TCP | Промышленная надёжность, совместимость с SCADA |
| HTTP API | Умные розетки, шлюзы | REST | Простота, широкое распространение |
В этой статье мы рассмотрим два наиболее популярных сценария: подключение PIR-датчика через ESP32 по MQTT (для умного дома/офиса) и через Arduino по COM-порту (для локальных проектов).
Сценарий 1: ESP32 + PIR-датчик → MQTT → ASI Biont
Этот сценарий идеален для умного офиса. ESP32 — дешёвый Wi-Fi/Bluetooth микроконтроллер, который может подключаться к MQTT-брокеру (например, Mosquitto, HiveMQ Cloud) и передавать данные от PIR-датчика в облако. ASI Biont подписывается на топик с данными датчика и анализирует их.
Схема подключения ESP32 к PIR-датчику
- PIR-датчик (HC-SR501): VCC → 3.3V ESP32, GND → GND, OUT → GPIO 4 (любой свободный пин).
- Для питания ESP32: USB-кабель от компьютера или внешний блок питания 5V.
Прошивка ESP32 (MicroPython)
import network
import time
from machine import Pin
import ujson
from umqtt.simple import MQTTClient
# Настройки Wi-Fi
WIFI_SSID = "Office_WiFi"
WIFI_PASS = "password123"
# Настройки MQTT
MQTT_BROKER = "test.mosquitto.org"
MQTT_PORT = 1883
TOPIC_PUB = "office/pir/room3"
CLIENT_ID = "esp32_pir_room3"
# Подключение к Wi-Fi
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")
# Инициализация PIR-датчика
pir = Pin(4, Pin.IN, Pin.PULL_DOWN)
# Подключение к MQTT
client = MQTTClient(CLIENT_ID, MQTT_BROKER, port=MQTT_PORT)
client.connect()
print("MQTT connected")
# Основной цикл
prev_state = 0
while True:
current_state = pir.value()
if current_state != prev_state:
data = {
"motion": bool(current_state),
"room": "room3",
"timestamp": time.time()
}
client.publish(TOPIC_PUB, ujson.dumps(data))
print("Published:", data)
prev_state = current_state
time.sleep(0.1)
Подключение ASI Biont к MQTT
Пользователь описывает в чате с AI-агентом:
«Подключись к MQTT-брокеру test.mosquitto.org, подпишись на топик office/pir/room3, получай данные с PIR-датчика. Если движение обнаружено и время между 9:00 и 18:00 (рабочее время), то отправь команду на включение света в комнате 3 через HTTP API умного освещения по адресу http://192.168.1.100/api/light/room3 с телом {"state": "on"}. Если движения нет более 10 минут — выключи свет.»
AI-агент ASI Biont генерирует и выполняет Python-скрипт в sandbox-окружении (execute_python):
import paho.mqtt.client as mqtt
import requests
import json
import time
from datetime import datetime
# Конфигурация
MQTT_BROKER = "test.mosquitto.org"
MQTT_TOPIC = "office/pir/room3"
LIGHT_API_URL = "http://192.168.1.100/api/light/room3"
WORK_START = 9 # 9:00
WORK_END = 18 # 18:00
# Состояние
last_motion_time = 0
light_on = False
def on_message(client, userdata, msg):
global last_motion_time, light_on
try:
data = json.loads(msg.payload.decode())
motion = data.get("motion", False)
now = datetime.now()
current_hour = now.hour
if motion:
last_motion_time = time.time()
# Рабочее время?
if WORK_START <= current_hour < WORK_END:
if not light_on:
# Включаем свет
requests.post(LIGHT_API_URL, json={"state": "on"}, timeout=5)
light_on = True
print("Light ON")
else:
print("Motion detected but outside working hours")
else:
# Проверяем, прошло ли 10 минут без движения
if light_on and (time.time() - last_motion_time > 600):
requests.post(LIGHT_API_URL, json={"state": "off"}, timeout=5)
light_on = False
print("Light OFF (no motion 10 min)")
except Exception as e:
print(f"Error: {e}")
# Подключение к MQTT
client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER, 1883, 60)
client.subscribe(MQTT_TOPIC)
client.loop_start()
# Держим соединение 20 секунд (в реальном сценарии — бесконечно, но sandbox имеет таймаут)
time.sleep(20)
client.loop_stop()
Этот код выполняется в облаке ASI Biont, подключается к MQTT-брокеру, получает данные с датчика и управляет освещением через HTTP API. Пользователь не писал ни строчки кода — только описал задачу на естественном языке.
Сценарий 2: Arduino + PIR-датчик → COM-порт → Hardware Bridge → ASI Biont
Этот сценарий подходит, если у вас нет Wi-Fi или вы хотите использовать проводное подключение с минимальной задержкой. Arduino подключается к компьютеру через USB (COM-порт), а Hardware Bridge (bridge.py) передаёт данные в ASI Biont.
Схема подключения Arduino к PIR-датчику
- PIR-датчик (HC-SR501): VCC → 5V Arduino, GND → GND, OUT → Digital Pin 2.
- Arduino → ПК через USB-кабель.
Прошивка Arduino (C++)
int pirPin = 2;
int ledPin = 13;
int pirState = LOW;
int val = 0;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
}
void loop() {
val = digitalRead(pirPin);
if (val == HIGH) {
digitalWrite(ledPin, HIGH);
if (pirState == LOW) {
Serial.println("MOTION_DETECTED");
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW);
if (pirState == HIGH) {
Serial.println("MOTION_CLEAR");
pirState = LOW;
}
}
delay(100);
}
Запуск Hardware Bridge
Пользователь скачивает bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge) и запускает его на своём ПК:
pip install pyserial requests websockets
python bridge.py --token=YOUR_API_TOKEN --ports=COM3 --baud 115200 --rate=10
Hardware Bridge подключается к ASI Biont через WebSocket (единственный канал связи) и слушает указанный COM-порт.
Команда AI-агенту
Пользователь пишет в чате:
«Подключись к моему Arduino через Hardware Bridge, порт COM3, скорость 115200. Прочитай все строки, которые приходят от датчика PIR. Каждые 5 минут анализируй лог: если было более 3 срабатываний за 5 минут — значит, в комнате кто-то есть. Отправь статус в Telegram: „В комнате есть люди“ или „Комната пуста“. Используй бота с токеном 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 и chat_id 987654321.»
AI-агент ASI Biont отправляет команду через industrial_command(protocol='serial', command='serial_write_and_read', data='...') для проверки связи, затем запускает скрипт execute_python, который подключается к Telegram API и анализирует данные.
Результаты и выгода
После настройки интеграции пользователь получает:
- Автоматическое управление освещением — свет включается только когда в комнате есть люди, и только в рабочее время. Экономия электроэнергии до 40% (источник: исследование Energy Star, 2023).
- Уведомления в Telegram — AI отправляет сообщения о необычной активности в нерабочее время, повышая безопасность офиса.
- Гибкость без программирования — чтобы изменить логику (например, добавить учёт выходных), достаточно написать AI-агенту: «Не включай свет в выходные». AI сам модифицирует код.
- Масштабируемость — можно добавить десятки датчиков по всему офису, AI будет обрабатывать данные со всех и принимать согласованные решения.
Заключение
Интеграция PIR-датчика с AI-агентом ASI Biont — это не просто подключение сенсора к облаку. Это переход от жёстких скриптов к интеллектуальному управлению, где AI анализирует контекст, учится на данных и адаптируется к изменениям. Вам не нужно писать код вручную — достаточно описать задачу на естественном языке, и ASI Biont сам создаст и выполнит интеграцию. Попробуйте прямо сейчас на asibiont.com и превратите свой офис в умное пространство за считанные минуты.
Комментарии