ESP32-CAM с OV2640 + ASI Biont: создаём систему распознавания лиц с уведомлениями в Telegram за вечер

Введение

Представьте: вы открываете дверь в офис, и камера мгновенно узнаёт вас, отправляет отчёт в Telegram, а если видит незнакомца — включает сирену. Раньше для такого сценария пришлось бы писать с десяток интеграций, поднимать свой MQTT-брокер, разбираться с протоколами и дашбордами. Сегодня достаточно одного ESP32-CAM с камерой OV2640 и AI-агента ASI Biont, который сам напишет весь код связи.

В этой статье мы разберём, как подключить ESP32-CAM к ASI Biont через MQTT, настроить автоматические уведомления и управлять сценарием через чат. Вы увидите, что для этого не нужен опыт в backend-разработке — AI сделает интеграцию за секунды, а вам останется только описать задачу словами.

Что такое ESP32-CAM и OV2640

ESP32-CAM — это компактный модуль на базе чипа ESP32 с камерой OV2640. Камера умеет снимать фото в разрешении до 1600×1200, а сам ESP32 — работать на частоте до 240 МГц. Фишка модуля — встроенный акселератор для нейросетей, поэтому он может запускать простые модели распознавания лиц прямо на устройстве (edge AI).

Для детекции лиц обычно используют библиотеку ESP-Face от Espressif: она умеет находить лица и даже определять их принадлежность по заранее загруженным эмбеддингам. Но даже без этой библиотеки ESP32-CAM может сообщать, что «лицо обнаружено» на основе простых алгоритмов (например, по изменению кадра или встроенному детектору в Arduino-библиотеке).

Зачем это AI-агенту? Камера — это «глаза», а ASI Biont — «мозг». ESP32-CAM работает на периферии, а AI-агент принимает решения, отправляет уведомления в Telegram, ведёт журнал событий и может управлять другими устройствами — от сервопривода до умного замка.

Зачем подключать к ASI Biont?

ASI Biont — это AI-агент, который умеет подключаться к устройствам через разные протоколы: MQTT, Modbus, HTTP, COM-порт и даже через универсальный execute_python (AI сам пишет Python-скрипт для любого устройства). Подключение происходит в чате: вы пишете, какое устройство у вас есть и что хотите получить, а агент автоматически генерирует код и запускает его в безопасной песочнице.

В случае с ESP32-CAM это даёт два главных преимущества:
- Быстрая интеграция: не нужно вручную настраивать MQTT-клиент, хранить подключения или писать код для каждой функции.
- Умная автоматизация: AI может комбинировать события с камеры с другими данными — температурой, временем суток, данными с других датчиков — и принимать решения.

Какой способ подключения используем и почему

Для ESP32-CAM оптимален протокол MQTT — лёгкий, асинхронный и идеально подходящий для IoT-устройств с нестабильной сетью. ESP32 публикует события (например, face_detected), а ASI Biont подписывается на нужный топик через библиотеку paho-mqtt. Это проще, чем COM-порт (ESP32-CAM обычно не имеет USB-UART на борту), и не требует прямого IP-доступа к камере.

Почему не Modbus или COM? Они больше подходят для промышленных контроллеров. Камера же «родилась» для MQTT: в ESP32 достаточно установить библиотеку PubSubClient, и устройство готово общаться с брокером.

Как выглядит интеграция через ASI Biont

Интеграция в ASI Biont строится вокруг диалога. Вы открываете чат с агентом и пишете, например:

«У меня ESP32-CAM на 192.168.1.100, она публикует в MQTT топик cam/face сообщение {"face":true}. Подключись и при появлении лица пришли мне уведомление в Telegram».

AI-агент сам определит, какой протокол использовать (MQTT), сгенерирует Python-код с paho-mqtt, подпишется на топик, а для уведомления вызовет Telegram Bot API через requests.post. Вам не нужно трогать код интеграции — всё происходит в фоне. Это работает и для более сложных случаев: если устройство не говорит по MQTT, AI может использовать execute_python и написать код для любого протокола — pyserial, paramiko, pymodbus или opcua-asyncio. Главное — описать в чате параметры подключения (порт, IP, baud rate, API-ключ).

Практический пример: контроль доступа с распознаванием лиц

Рассмотрим реальный сценарий: ESP32-CAM установлена у входной двери, она детектирует лица и отправляет событие в MQTT. ASI Biont подписан на топик, получает событие, и если лицо распознано как «свой» — открывает замок через сервопривод и славит уведомление в Telegram. Если человек неизвестен — отправляет alert.

Код на стороне ESP32 (Arduino)

Для минимальной демонстрации возьмём библиотеки WiFi и PubSubClient. Код публикует сообщение face_detected в топик cam/face каждый раз, когда камера обнаруживает лицо (в реальности вы подключите результат работы ESP-Face).

#include <WiFi.h>
#include <PubSubClient.h>

const char* ssid = "YOUR_WIFI";
const char* password = "YOUR_PASS";
const char* mqtt_server = "192.168.1.50"; // адрес брокера
const char* mqtt_topic = "cam/face";

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  client.setServer(mqtt_server, 1883);
  client.connect("esp32cam");
}

void loop() {
  client.loop();
  if (faceDetected()) { // вместо этого — вызов детектора лица
    String payload = "{\"face\":true,\"time\":" + String(millis()) + "}";
    client.publish(mqtt_topic, payload.c_str());
  }
  delay(1000);
}

bool faceDetected() {
  // Тут должна быть логика на основе ESP-Face или встроенного детектора
  // Для примера — возвращаем true, чтобы проверить интеграцию
  return true;
}

Загрузите этот скетч в ESP32-CAM через программатор (например, через USB-UART на платах с конвертером). Не забудьте указать реальные SSID, пароль и адрес брокера.

Код на стороне ASI Biont (Python)

Теперь посмотрим, как выглядит обработка на стороне AI-агента. По сути, это скрипт, который AI сгенерирует для вас. Он подключается к брокеру MQTT, слушает топик cam/face и при получении события вызывает Telegram Bot API.

import paho.mqtt.client as mqtt
import requests
import json

# Telegram bot settings (вы получите их от @BotFather)
BOT_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"

def send_telegram(text):
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    payload = {"chat_id": CHAT_ID, "text": text}
    requests.post(url, json=payload)

# MQTT callback
def on_message(client, userdata, msg):
    # msg.payload содержит JSON: {"face":true}
    data = json.loads(msg.payload)
    if data.get("face"):
        send_telegram("⚠️ Обнаружено лицо у двери!")
        # Здесь можно добавить логику: проверить базу известных лиц и управлять замком

# MQTT client
client = mqtt.Client()
client.on_message = on_message
client.connect("192.168.1.50", 1883, 60)
client.subscribe("cam/face")
client.loop_forever()

Этот код запускается в execute_python ASI Biont или как отдельный скрипт. В реальной интеграции AI-агент сам добавит проверку по базе лиц, обработку ошибок и, возможно, команду на сервопривод.

Автоматические сценарии через чат

После подключения вы можете управлять системой прямо в чате с ASI Biont. Например:
- «При обнаружении неизвестного лица отправь мне фото в Telegram и заблокируй дверь».
- «Каждое утро в 9:00 снимай камеру и присылай отчёт».

Агент сам напишет нужный код и запустит его. Вы можете менять поведение системы без перепрошивки ESP32 — достаточно изменить логику на стороне Biont.

Подключение к любому устройству через execute_python

Важно понимать: ESP32-CAM — только один из примеров. ASI Biont подключается к любому устройству через execute_python — это универсальный механизм, где AI сам пишет код интеграции под ваше оборудование. Не нужно ждать, пока разработчики добавят официальную поддержку вашего датчика или контроллера. Вы просто описываете в чате:

«У меня устройство на COM3, шлёт строки по протоколу Modbus RTU, slave ID 5. Считай регистр Holding Register 100 и выведи значение».

AI сгенерирует код на Python с использованием pyserial и pymodbus, сам определит настройки порта и даже предложит, как обрабатывать данные. Для MQTT-устройств, как ESP32, он использует paho-mqtt; для IP-камер — aiohttp; для промышленных контроллеров — opcua-asyncio или snap7. Все подключения происходят через диалог в чате — никаких панелей управления и кнопок «добавить устройство».

Преимущества интеграции через AI-агента

  • Скорость: интеграция, которая раньше занимала день, теперь выполняется за минуты. AI пишет код за вас.
  • Гибкость: вам не нужно изучать протоколы — достаточно описать устройство словами.
  • Масштабируемость: один AI-агент может обслуживать десятки устройств разных типов, объединяя их в единые сценарии.
  • Актуальность: вы не зависите от официальных SDK — если устройство умеет говорить по любому стандартному протоколу, AI его подключит.

Заключение

ESP32-CAM с OV2640 — это мощный и недорогой инструмент для edge AI, но его потенциал раскрывается в полной мере, когда «глаза» соединяются с «мозгом» — AI-агентом ASI Biont. Через MQTT и execute_python вы получаете систему умного контроля доступа, которая умеет уведомлять в Telegram, запускать сценарии и подстраиваться под ваши задачи без перепрошивки.

Попробуйте сами: возьмите ESP32-CAM, загрузите простой MQTT-скетч, создайте бота в Telegram и скажите ASI Biont «подключись к этой камере и присылай уведомления». AI сделает всё остальное. Начните на asibiont.com — и уже через вечер ваша дверь станет «умной».

Источники

← Все статьи

Комментарии