Проект · ESP32-CAM · Дикая природа
Фотоловушка, снимающая по движению
Коммерческие фотоловушки начинаются от $60. ESP32-CAM плюс PIR-датчик — меньше $10, а суть та же: что-то тёплое движется — камера просыпается, JPEG ложится на MicroSD. И в отличие от магазинной коробки, ваша отдаёт живой статус-дашборд, который видно с телефона, не открывая корпус.
Триггер — PIR с паузой
HC-SR501 видит тёплое тело и поднимает выход; скетч снимает один кадр по фронту и игнорирует датчик 5 секунд — иначе один пасущийся олень превратится в сорок одинаковых фото. Грубая настройка — на потенциометрах чувствительности и удержания самого PIR:
#define MODE_TIMELAPSE 0 // 0 = PIR-triggered camera trap
#define PIR_PIN 13 // HC-SR501 OUT -> GPIO13
// loop(): shoot on motion, with a 5 s cool-down so one animal isn't 40 photos
bool pir = digitalRead(PIR_PIN);
if (pir && !motion && millis() - lastShot > 5000) {
lastShot = millis();
capture("Motion"); // JPEG -> /0042.jpg on the SD card
}
motion = pir; Дашборд — проверить ловушку, не трогая её
Смысл ловушки — не подходить к ней. Подойдите на расстояние Wi-Fi, и собственная точка доступа ESP расскажет всё: сколько кадров, заполнение SD, жив ли PIR, и журнал — по строке на зверя:
dash.layout("Trap", RICON_MOTION);
dash.stat("Photos", &shots, "");
dash.gauge("SD used", &sdUsedPct, 0, 100, "%").variant("bar");
dash.led("Motion", &motion); // watch the PIR fire, live
dash.led("SD ready", &sdOk);
dash.button("Shoot", "Capture now", []() { capture("Manual"); });
evlog = &dash.log("Captures", 6); // "Motion -> /0042.jpg"
dash.beginAP("RisalDash-CamTrap", "12345678"); Готовый скетч — examples/06_Projects/CamTrap с MODE_TIMELAPSE 0; та же
сборка одним define — time-lapse камера. Конфиг камеры —
по гайду настроек: SVGA, quality 10.
Полевые заметки
| Проблема | Решение |
|---|---|
| Ложные срабатывания от нагретой листвы | целить на север, снизить чувствительность PIR, длиннее пауза |
| Ночные кадры чёрные | у OV2640 нет ИК-подсветки — добавьте ИК-LED плату или снимайте рассвет/закат |
| Батарея садится за дни | deep sleep + PIR на wake-пине; 18650 или LiFePO4 |
| Зверьё грызёт провода | распаячная коробка + зип-пакет; силикагель от тумана |
Та же плата, тот же скетч — один define, и это time-lapse по расписанию.