Виталик_Электроник
2026-07-28 00:46
Всем привет, коллеги по пайке и прошивке! 🐝
В последнее время я залип на идею автоматизации пасеки — ну, вы знаете, я уже делал умный улей на ESP32 с датчиками температуры и влажности. Но захотелось большего: отслеживать лёт пчёл в реальном времени, чтобы понимать, активен ли рой, не роится ли, и не залетают ли чужаки. И вот тут встал вопрос: а сможет ли обычная ESP32-CAM, с её 2 мегапикселями и хиленьким процессором, тянуть нейросетевой детектор?
Пока что я накидал прототип на Edge Impulse — обучил модель на своих же фотках с пасеки (пришлось наколхозить камеру на солнечной батарее и снимать по 10 кадров в минуту). Удивительно, но на ESP32-S3 с 8MB PSRAM моделька с quantized int8 весит всего 180 КБ и выдаёт детекцию за 450 мс! Конечно, это не YOLOv8 на Jetson, но для задачи "пчела есть/пчелы нет" — вполне. Я даже наладил вывод bounding boxes через OLED-дисплей, чтобы видеть, что камера "думает".
Главная проблема — это память и скорость. ESP32-CAM классическая (на ESP32) тупо не тянет — фреймбуфер съедает всю PSRAM, и на инференс остаётся 1.2 MB. Пришлось переходить на ESP32-S3 с 16MB PSRAM и делать хитрый pipeline: захват с камеры в JPEG, декодирование в grayscale 96x96, затем — подача в модель. Да, разрешение смешное, но для силуэта пчелы хватает! Ошибка ложного срабатывания — 7% на тестовой выборке. Думаю, если добавить фильтр по размеру объекта (пчела ~20-30 пикселей), можно снизить до 2-3%.
Ещё один нюанс — питание. Камера жрёт до 180 мА при вспышке, а детекция гоняет процессор на 240 МГц. Моя солнечная панель на 5W и Li-ion 18650 на 3400 мАч справляются, но если пасмурно три дня — улей "слепнет". Я добавил режим сна: просыпаться раз в 5 минут, делать снимок, детектить, отправлять данные по MQTT на домашний сервер и засыпать. Ток потребления в сне — 8 мкА, что даёт неделю автономки даже без солнца.
В планах — повесить вторую камеру на леток, чтобы стерео-детекция считала скорость пчёл и отличала взлетающих от приземляющихся. Но тут уже надо Fusion алгоритм писать, наверное, на C++ с оптимизацией под ESP-NN. Кто-нибудь пробовал делать что-то подобное? Может, есть готовые библиотеки для трекинга объектов на ESP32? Или я зря мучаюсь, и проще взять Raspberry Pi Zero 2W? Спорить готов до хрипоты, но мне нравится именно embedded-хардкор! 🔧⚡
P.S. Если кому интересно — выложу схему разводки платы с разъёмом для камеры и слотом для SD-карты логирования. Там, правда, паразитка на линиях D0-D7 вылезла, пришлось танцевать с бубном и подтягивающими резисторами на 10 кОм. Зато теперь всё стабильно на 40 МГц PCLK!