Умное видеонаблюдение на ESP32-CAM и ASI Biont: интеграция камер OV2640/OV7670 с AI-агентом без кода

Умное видеонаблюдение на ESP32-CAM и ASI Biont: интеграция камер OV2640/OV7670 с AI-агентом без кода

Рынок умного видеонаблюдения растёт взрывными темпами: по данным MarketsandMarkets, к 2027 году его объём достигнет $74,2 млрд. Однако большинство решений требуют либо дорогих IP-камер с облачными сервисами, либо написания сложного кода для DIY-проектов. Камеры на базе дешёвых сенсоров OV2640 и OV7670 (цена от $5) в связке с ESP32-CAM открывают доступ к видеонаблюдению за копейки. Но как заставить их работать «с умом» — детектировать движение, распознавать лица и присылать уведомления в Telegram без ручного программирования? Ответ — AI-агент ASI Biont.

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

Что такое OV2640/OV7670 и почему они интересны?

OV2640 и OV7670 — это CMOS-сенсоры изображения, разработанные компанией OmniVision. Основные характеристики:

Параметр OV2640 OV7670
Разрешение до 2 Мп (1600×1200) VGA (640×480)
Интерфейс DVP (parallel) + SPI DVP
Скорость 30 fps при UXGA 30 fps при VGA
Размер пикселя 2.2 µm 3.6 µm
Цена (на AliExpress) ~$5-7 ~$3-5

Оба сенсора широко используются в модулях ESP32-CAM, AI-Thinker и OV7670 для Arduino. Их главное преимущество — низкое энергопотребление и простота подключения к микроконтроллерам. Однако для полноценного компьютерного зрения (распознавание лиц, детекция объектов) нужен мощный процессор, например Raspberry Pi, или облачный AI. ASI Biont решает эту задачу, выступая в роли «мозга», который анализирует изображения из любого места.

Как ASI Biont подключается к камере?

ASI Biont — это AI-агент, который умеет подключаться к устройствам через несколько промышленных протоколов. Для камер на ESP32-CAM лучше всего подходит MQTT — лёгкий протокол IoT, который поддерживается на ESP32 из коробки и позволяет передавать изображения в реальном времени. AI-агент использует execute_python — он пишет Python-скрипт с библиотекой paho-mqtt, который подписывается на MQTT-топик, получает base64-кодированные кадры и анализирует их с помощью PIL и numpy. Другие варианты:

  • SSH — для Raspberry Pi с камерой, AI запускает скрипты OpenCV удалённо.
  • HTTP API — если ESP32-CAM отправляет изображения по HTTP, AI может получать их через aiohttp.

Но MQTT — самый экономичный по трафику и удобный для ESP32-CAM. Всё подключение описано в документации ASI Biont (раздел Devices → MQTT Integration).

Конкретный сценарий: ESP32-CAM → MQTT → ASI Biont → Telegram

Представьте, что вы хотите установить камеру в гараже или офисе, чтобы следить за движением и получать фото при срабатывании датчика. В классическом подходе вам нужно:

  1. Написать прошивку ESP32-CAM для захвата изображения.
  2. Написать код для отправки по MQTT.
  3. Написать серверный код на Python/Nod для подписки и анализа.
  4. Написать код для отправки уведомлений в Telegram.

С ASI Biont шаги 2-4 выполняет AI. Вы просто описываете задачу в чате, и AI генерирует и запускает нужный скрипт.

Шаг 1: Прошивка ESP32-CAM

Установите на ESP32-CAM базовую прошивку, которая захватывает кадр с OV2640 и отправляет его в MQTT-топик camera/image в формате Base64. Пример на Arduino IDE (библиотеки ESP32Camera и PubSubClient):

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

const char* ssid = "Ваш WiFi";
const char* password = "Ваш пароль";
const char* mqtt_server = "mqtt.eclipseprojects.io";
const char* topic = "camera/image";

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);
  // Настройка камеры
  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  // ... стандартная инициализация ESP32-CAM
  esp_camera_init(&config);
}

void loop() {
  if (!client.connected()) client.connect("ESP32CAM");
  client.loop();
  camera_fb_t *fb = esp_camera_fb_get();
  if (fb) {
    String base64Image = base64::encode(fb->buf, fb->len);
    client.publish(topic, base64Image.c_str());
    esp_camera_fb_return(fb);
  }
  delay(5000); // каждые 5 секунд
}

Важно: в реальном проекте используйте локальный MQTT-брокер (Mosquitto) или облачный (HiveMQ Cloud), чтобы не перегружать публичный сервер.

Шаг 2: Получение API-ключа и запуск интеграции

  1. Зарегистрируйтесь на asibiont.com.
  2. Зайдите в раздел DevicesCreate API Key, скачайте bridge.py (если нужно — но для MQTT bridge не обязателен, AI работает напрямую).
  3. Откройте чат с AI-агентом и напишите, например:

    Подпишись на MQTT-брокер mqtt.eclipseprojects.io:1883, топик camera/image, каждые 10 секунд получай текущий кадр, обнаруживай движение, сравнивая с предыдущим кадром (если среднее изменение яркости > 20%), и при обнаружении отправь мне в Telegram фото и сообщение.

AI уточнит ваш Telegram chat ID и токен бота, после чего сгенерирует и выполнит следующий скрипт (он будет работать в sandbox-окружении на сервере ASI Biont):

import paho.mqtt.client as mqtt
import numpy as np
from PIL import Image
import io
import base64
import requests
import time

# Настройки
BROKER = "mqtt.eclipseprojects.io"
TOPIC = "camera/image"
TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "ваш_чат_ид"

previous_frame = None

def send_telegram_photo(base64_img, caption):
    url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendPhoto"
    # декодируем Base64 в байты
    img_bytes = base64.b64decode(base64_img)
    files = {'photo': ('image.jpg', img_bytes)}
    data = {'chat_id': CHAT_ID, 'caption': caption}
    requests.post(url, files=files, data=data)

def on_message(client, userdata, msg):
    global previous_frame
    try:
        # Декодируем Base64 в изображение
        image_bytes = base64.b64decode(msg.payload.decode())
        image = Image.open(io.BytesIO(image_bytes)).convert('L')  # переводим в серый
        current_frame = np.array(image)

        if previous_frame is not None:
            diff = np.abs(current_frame.astype(int) - previous_frame.astype(int))
            mean_diff = np.mean(diff)
            if mean_diff > 20:  # порог движения
                caption = f"Движение обнаружено! Среднее изменение: {mean_diff:.1f}"
                send_telegram_photo(msg.payload.decode(), caption)

        previous_frame = current_frame
    except Exception as e:
        print(f"Ошибка: {e}")

client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC)
client.loop_start()

# Держим скрипт активным 25 секунд (таймаут sandbox)
time.sleep(25)
client.loop_stop()

Этот код AI сгенерировал сам, используя только библиотеки из sandbox (paho-mqtt, numpy, PIL, requests, base64). Вы можете попросить его запускать скрипт каждые 10 минут или настроить вебхук через Telegram.

Шаг 3: Результат

Как только ESP32-CAM отправит кадр, AI обнаружит движение и пришлёт вам в Telegram фото с подписью. Причём если вы захотите добавить распознавание лиц — просто скажите: «Теперь при обнаружении движения сравнивай лицо с базой известных, если незнакомое — отправь alert». AI допишет код, задействуя, например, API сервиса Face++ или Hugging Face (также доступны в sandbox через requests).

Почему это выгодно?

  • Ноль строк кода вручную. Вы описываете логику на естественном языке, AI реализует её за секунды.
  • Гибкость. Можете менять сценарий в любой момент — просто напишите новое требование.
  • Доступность. ESP32-CAM с OV2640 стоит $7, а AI-агент заменяет серверную часть за $0 (до определённого лимита).
  • Открытый код. Вы всегда можете посмотреть и модифицировать сгенерированный скрипт.

Подключаем любую камеру к ASI Biont

Не обязательно использовать MQTT. Если у вас USB-камера на Arduino — AI подключится через Hardware Bridge (COM-порт). Если Raspberry Pi с камерой — через SSH. ASI Biont поддерживает 13 протоколов (список — в документации), и AI сам выбирает нужный и пишет код. Пример для Raspberry Pi с OpenCV:

Подключись по SSH к 192.168.1.100, загрузи скрипт на Python, который запускает OpenCV для детекции лиц, и при обнаружении нового лица отправляй мне в Telegram фото.

AI сгенерирует paramiko-скрипт, загрузит его на Raspberry Pi и запустит.

Заключение

Интеграция дешёвых камер OV2640/OV7670 с AI-агентом ASI Biont превращает «железку» за $5 в полноценную систему компьютерного зрения с уведомлениями в Telegram. Вам не нужно быть программистом — всё делает AI. Попробуйте сами:

  1. Возьмите ESP32-CAM или Raspberry Pi с камерой.
  2. Зарегистрируйтесь на asibiont.com.
  3. Опишите в чате, что хотите получить — AI сделает всё остальное.

Умное видеонаблюдение без кода — это реальность. Присоединяйтесь!

← Все статьи

Комментарии

Читайте также

10 проверенных промтов для Docker: от Dockerfile до multi-stage сборок

26 июля 2026

WebAssembly (WASM) — от браузера до сервера: практический курс для бэкенд-разработчиков и DevOps на asibiont.com

26 июля 2026

Автоматизация Cloudflare DNS, кэша и безопасности с помощью no-code AI-агента ASI Biont

26 июля 2026

Как подключить шаговые двигатели A4988 и TMC2209 к AI-агенту: управление лабораторным оборудованием через ASI Biont

26 июля 2026

STM32 + AI: Как подключить Blue Pill или Nucleo к ASI Biont через COM-порт за 5 минут

26 июля 2026

Production ML (MLOps): как перестать быть «джунном» в Data Science и начать строить production-системы с доходом от 300 000 ₽

26 июля 2026

Как автоматизировать Twitter/X с помощью AI-агента ASI Biont: пошаговое руководство по интеграции (без программирования)

26 июля 2026

Освойте PAT с курсом Кембриджские поступления: PAT (Физический тест на способности) — Оксфорд на Asibiont

26 июля 2026

Курс по логистике и управлению цепочками поставок (SCM): почему обучение с использованием ИИ — это будущее образования в области цепочек поставок

26 июля 2026