I'm working on a remote (off grid) nest box monitoring project, which should be both low-cost (volunteer-funded) and low-power. No video streaming required, only a snapshot over mobile network every 24 hours (deep sleep most of the time). Looking for 100+ days on one set of batteries to avoid disturbing the location during the nesting season - target current < 1 mA during the sleep period.
High level architecture:
- ESP32-based board (or similar)
- 2G/LTE module (depending on coverage)
- camera module (this is the big question...)
Ideally this would be at least 2 Mpix module providing JPEG output over a serial interface, with no IR filter and an M11 lens mount (or similar) and support for a sleep/power down mode so that no extra circuitry is needed to cut the power for the camera module; price range of about 20 USD/EUR.
There's a number of CSI/MIPI modules for Raspberry Pi and the like, or various USB UVC cameras, but options for microcontrollers are pretty limited.
Most of the time, I'm seeing parallel camera modules (18/20 pins) based on either OV7670 (300 kpix) or OV2640 (2Mpix) sensor (poor image quality, but if there was a no-IR filter version of these, it would be OK considering the price of about $4). If there was a camera module with the same image quality as the Pi Camera v1.3 (5 Mpix) or something like Sony IMX323 (2 Mpix) that would be a much a better choice.
The module that is closest to the requirements is probably the SPI/I2C Arducam, OV2640 version at $26 / OV5642 version at $40. This is using a combination of I2C (config) and SPI (data) 8pin interface, has M12 lens mount and no built-in IR filter but at a higher cost.
Side note: we're already using an "offline" monitoring system (nest locations are visited by someone who connects a cable to a portable monitor and takes a snapshot) with AHD CCTV cameras (e.g. Sony IMX323 CMOS sensor). These are really great when it comes to image quality and low-light sensitivity, and available at a reasonable cost of about 13 €. If there was a similar camera with a digital output, that would be great, but so far I was unable to find something like that (other than the USB UVC or MIPI cameras).
Any ideas on a suitable camera module are welcome. Or if you believe that the overall architecture is wrong and this would be easier to achieve with a more powerful configuration (using something capable of handling a USB UVC camera) that's of course a welcome input as well. For handling the low power operation though, it would probably require a low power microcontroller with RTC to power on the Pi only when needed, so this would increase the cost/complexity of the project. Or maybe it would be possible to handle USB UVC on ESP32 using bit-banging or an external USB host? Not sure if this is feasible at all.