Введение
Ручной контроль качества на производстве — это узкое место, которое съедает до 30% времени операторов и приводит к пропуску дефектов из-за усталости. Камера с модулем OV2640 на базе OpenMV (STM32 + Python) позволяет захватывать изображения деталей, но самостоятельный анализ требует написания сложных алгоритмов. AI-агент ASI Biont решает эту задачу: он подключается к OpenMV через MQTT, получает снимки, анализирует их на наличие брака (царапины, сколы, перекосы) и отправляет уведомления в Telegram с архивацией в облаке. В этой статье — пошаговый гайд по интеграции с реальными примерами кода.
Что такое OpenMV и OV2640?
OpenMV — это микроконтроллерная платформа для компьютерного зрения на базе STM32F7 с поддержкой MicroPython. Модуль камеры OV2640 (2 Мп, 1600×1200) подключается через CSI-интерфейс и позволяет захватывать кадры с частотой до 30 FPS. OpenMV имеет встроенный Wi-Fi (модуль ESP8266) или внешний Wi-Fi-адаптер, что даёт возможность передавать изображения по сети. Подробнее — в официальной документации OpenMV.
Зачем подключать OpenMV к ASI Biont?
AI-агент ASI Biont — это программный агент, который умеет писать и выполнять Python-код для взаимодействия с оборудованием. Вместо того чтобы вручную писать прошивку для OpenMV и серверный код для анализа, вы просто описываете задачу в чате: «Подключись к OpenMV через MQTT, каждые 10 секунд получай снимок детали, анализируй на дефекты и при обнаружении брака отправляй фото в Telegram». AI сам генерирует код на MicroPython для OpenMV и Python-скрипт для приёма/анализа.
Какой способ подключения используется?
Мы используем MQTT через paho-mqtt. Почему именно MQTT?
- OpenMV поддерживает MQTT через MicroPython (библиотека umqtt.simple).
- MQTT — лёгкий протокол, работающий даже с низкой пропускной способностью.
- AI-агент ASI Biont подписывается на топик с изображениями и публикует команды (например, «сделай снимок»).
Альтернатива — SSH (если OpenMV подключён к Raspberry Pi) или COM-порт через Hardware Bridge, но MQTT — наиболее гибкий вариант для удалённой работы.
Сценарий: Автоматический контроль качества на конвейере
Задача: На производстве пластиковых деталей необходимо выявлять царапины глубиной более 0,1 мм. Камера OpenMV с OV2640 установлена над конвейером. При прохождении детали OpenMV делает снимок, отправляет его по MQTT на ASI Biont. AI анализирует изображение (используя OpenCV или предобученную модель) и при обнаружении дефекта отправляет фото в Telegram с пометкой «Брак».
Шаг 1. Подготовка OpenMV
На OpenMV загружается прошивка на MicroPython, которая:
- Подключается к Wi-Fi.
- Подключается к MQTT-брокеру (например, Mosquitto, работающему на сервере).
- По команде (подписка на топик cmd/camera) делает снимок и публикует JPEG-изображение в топик data/camera.
Пример кода для OpenMV (MicroPython):
import sensor, image, time
from umqtt.simple import MQTTClient
import network
# Настройка Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('your_ssid', 'your_password')
# Настройка камеры
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)
# MQTT клиент
client = MQTTClient('openmv', 'broker_ip', port=1883)
client.connect()
def capture_and_send():
img = sensor.snapshot()
buf = img.compress(quality=90)
client.publish('data/camera', buf)
print('Image sent')
# Подписка на команды
def callback(topic, msg):
if msg == b'capture':
capture_and_send()
client.set_callback(callback)
client.subscribe('cmd/camera')
while True:
client.check_msg()
time.sleep_ms(100)
Шаг 2. Подключение ASI Biont к MQTT
Пользователь пишет в чате ASI Biont: «Подключись к MQTT-брокеру по адресу 192.168.1.100:1883, подпишись на топик data/camera, каждые 10 секунд читай изображение, анализируй на наличие царапин (используй OpenCV с пороговой фильтрацией), если дефект обнаружен — отправь фото в Telegram chat_id -1001234567890».
AI генерирует и выполняет Python-скрипт в sandbox-окружении (execute_python):
import paho.mqtt.client as mqtt
import cv2
import numpy as np
import requests
import io
TELEGRAM_TOKEN = 'your_token'
CHAT_ID = '-1001234567890'
def on_message(client, userdata, msg):
# Преобразуем байты в изображение
nparr = np.frombuffer(msg.payload, np.uint8)
img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
# Анализ дефектов (простой пороговый метод)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150)
defect_area = np.sum(edges > 0)
if defect_area > 500: # порог брака
# Сохраняем фото и отправляем в Telegram
_, buffer = cv2.imencode('.jpg', img)
files = {'photo': ('defect.jpg', buffer.tobytes(), 'image/jpeg')}
requests.post(f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendPhoto',
data={'chat_id': CHAT_ID, 'caption': f'Обнаружен дефект! Площадь: {defect_area} пикселей'},
files=files)
print(f'Defect detected: {defect_area}')
mqtt_client = mqtt.Client()
mqtt_client.on_message = on_message
mqtt_client.connect('192.168.1.100', 1883, 60)
mqtt_client.subscribe('data/camera')
mqtt_client.loop_start()
# Ждём 30 секунд (таймаут sandbox)
import time
time.sleep(30)
mqtt_client.loop_stop()
Шаг 3. Результат
- Каждые 10 секунд ASI Biont получает снимок.
- При обнаружении дефекта (например, царапины площадью > 500 пикселей) отправляется фото в Telegram.
- Все снимки можно архивировать в облаке (например, через boto3 в S3).
Почему это выгодно?
- Экономия времени: AI пишет код за секунды, вместо часов ручной разработки.
- Гибкость: можно менять алгоритм анализа одной фразой: «Теперь ищи сколы, а не царапины».
- Масштабируемость: добавьте 10 камер — AI сам подпишется на все топики.
Как подключить OpenMV к ASI Biont?
- Установите MQTT-брокер (например, Mosquitto) на сервере или ПК.
- Загрузите приведённый выше MicroPython-код на OpenMV (через OpenMV IDE).
- Откройте чат с ASI Biont на asibiont.com и опишите задачу: «Подключись к MQTT брокеру IP 192.168.1.100, подпишись на data/camera, анализируй дефекты, отправляй в Telegram».
- AI сам сгенерирует и выполнит код — вы получите работающую систему за минуту.
Заключение
Интеграция OpenMV с OV2640 и AI-агента ASI Biont через MQTT — это готовое решение для автоматизации визуального контроля качества. Вам не нужно быть экспертом в Python или компьютерном зрении: AI сделает всю интеграцию за вас. Попробуйте прямо сейчас на asibiont.com — опишите своё оборудование и получите работающий код за секунды.
Комментарии