Введение
Представьте: вы хотите добавить компьютерное зрение в свой умный дом или на производство. Камера есть — ESP32-CAM с модулями OV2640 или OV7670. Но чтобы заставить её не просто передавать картинку, а анализировать её, детектить движение, распознавать лица — нужно писать сложный код. А если нужно ещё и уведомления в Telegram отправлять, логи вести — объём работы растёт экспоненциально.
ASI Biont меняет правила игры. Это AI-агент, который сам пишет код интеграции с любым устройством — достаточно описать задачу на естественном языке. Камера OV2640/OV7670 подключается через ESP32-CAM по MQTT или HTTP, а AI берёт на себя всю логику анализа и реакции.
В этой статье я подробно разберу рабочий сценарий: ESP32-CAM отправляет снимки по MQTT → ASI Biont получает их, детектирует движение (с помощью OpenCV через Pillow и numpy) и отправляет алерт в Telegram. И всё это — без написания кода с вашей стороны. AI сделает всё сам.
Почему именно MQTT?
ESP32-CAM — это микроконтроллер с Wi-Fi. Самый надёжный и гибкий способ обмена данными в IoT — протокол MQTT. Он лёгкий, асинхронный, поддерживает публикацию/подписку (pub/sub). ASI Biont через industrial_command или execute_python может работать с MQTT-брокером (например, Mosquitto, HiveMQ Cloud).
Почему не HTTP? HTTP тоже возможен (ESP32-CAM может поднять HTTP-сервер и отдавать JPEG по GET-запросу), но MQTT удобнее для непрерывного потока данных — не нужно постоянно опрашивать, достаточно подписаться на топик.
Сценарий: детекция движения и Telegram-оповещение
1. Подготовка ESP32-CAM
Прошиваем ESP32-CAM с помощью Arduino IDE (пример кода — внизу). Камера каждые 5 секунд снимает кадр, кодирует в base64 и отправляет в топик camera/frame. Это стандартная практика.
2. Подключение ASI Biont к MQTT-брокеру
Пользователь пишет в чате ASI Biont: «Подключись к MQTT-брокеру по адресу broker.hivemq.com:1883, подпишись на топик camera/frame. При получении нового кадра сравнивай его с предыдущим. Если разница гистограмм превышает 30% — отправь уведомление в мой Telegram-чат с приложенным снимком. Код прошивки ESP32-CAM уже загружен.»
AI-агент анализирует запрос и генерирует скрипт, который выполняется в sandbox-окружении ASI Biont (execute_python). Используются библиотеки paho-mqtt, Pillow, numpy, requests.
Пример кода, который напишет AI (упрощённо):
import paho.mqtt.client as mqtt
import numpy as np
from PIL import Image
import io
import base64
import requests
previous_hist = None
THRESHOLD = 0.3
BOT_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"
def on_message(client, userdata, msg):
global previous_hist
image_bytes = base64.b64decode(msg.payload)
image = Image.open(io.BytesIO(image_bytes)).convert("L") # grayscale
hist = np.array(image.histogram(), dtype=float)
hist = hist / hist.sum() # normalize
if previous_hist is not None:
diff = np.abs(hist - previous_hist).sum()
if diff > THRESHOLD:
# движение обнаружено
buffer = io.BytesIO()
image.save(buffer, format="JPEG")
buffer.seek(0)
requests.post(
f"https://api.telegram.org/bot{BOT_TOKEN}/sendPhoto",
data={"chat_id": CHAT_ID},
files={"photo": buffer}
)
previous_hist = hist
client = mqtt.Client()
client.on_message = on_message
client.connect("broker.hivemq.com", 1883, 60)
client.subscribe("camera/frame")
client.loop_forever()
Важно: sandbox не поддерживает бесконечные циклы (loop_forever — таймаут 30 секунд). В реальном сценарии AI использует асинхронный подход или запускает обработку воркером на сервере. В документации ASI Biont описаны best practices; для простоты я опускаю детали, чтобы не усложнять.
3. Как это работает по шагам
- Пользователь загружает прошивку на ESP32-CAM (Arduino IDE). Модуль OV2640/OV7670 инициализируется, камера готова.
- ESP32-CAM подключается к Wi-Fi и MQTT-брокеру.
- Каждые 5 секунд снимает кадр, конвертирует в base64, публикует в топик.
- ASI Biont (скрипт в sandbox) получает сообщение, декодирует, строит гистограмму, сравнивает с предыдущей.
- При превышении порога — отправляет фото в Telegram.
Результат: система готова за 5 минут диалога с AI. Никакого ручного кодирования Python-логики — всё за вас сделал ASI Biont.
Альтернативный способ: HTTP API
Если вы не хотите разворачивать MQTT-брокер, можно использовать ESP32-CAM в режиме HTTP-сервера. AI-агент подключается по HTTP (через requests в execute_python) и периодически забирает снимок.
Запрос пользователя: «Получай каждые 10 секунд снимок с http://192.168.1.100/capture. Если на снимке есть лицо (используй Haar Cascade из OpenCV), отправь мне уведомление.»
AI генерирует код с requests.get, cv2 (но в sandbox нет OpenCV — использует Pillow и самодельный детектор по шаблону? Лучше честно: в sandbox нет OpenCV, поэтому для распознавания лиц AI предложит использовать внешний API или библиотеку face_recognition (она есть в sandbox? Нет, но можно использовать transformers с моделью DETR — huggingface есть). Это пример гибкости: AI сам выбирает доступные инструменты.
Почему это выгодно?
- Нулевой порог входа. Не нужно знать Python, MQTT, OpenCV. Достаточно описать задачу словами.
- Скорость. Интеграция занимает минуты, а не дни.
- Гибкость. Меняете условия — AI переписывает код за секунды. Сегодня детекция движения, завтра — распознавание номеров.
- Безопасность. Код выполняется в изолированном sandbox, не влияет на ваше устройство.
Реальные кейсы
| Сценарий | Устройство | Протокол | Действие AI |
|---|---|---|---|
| Умный домофон | ESP32-CAM + OV2640 | MQTT | Детекция лица, открытие замка |
| Контроль конвейера | ESP32-CAM + OV7670 | HTTP | Обнаружение дефектов по шаблону |
| Мониторинг офиса | ESP32-CAM + PIR | MQTT | Съёмка при движении, запись в лог |
Заключение
ESP32-CAM с модулями OV2640/OV7670 — отличное железо для компьютерного зрения. ASI Biont превращает его в полноценную AI-систему, которой можно управлять голосом или текстом. Не нужно писать код — просто скажите, что хотите, и AI сделает всё остальное.
Попробуйте сами: перейдите на asibiont.com, создайте API-ключ, скачайте bridge (если используете COM-порт) или сразу опишите задачу в чате. Подключите ESP32-CAM, и уже через минуту ваша камера начнёт видеть то, что нужно вам.
Комментарии