State: active
Future development
The current setup uses a mixed codebase with Go, Python and shell code to provide a webinterface with the following functionality:
- take single picture
- show current state in real-time (capturing, ready, not connected)
- reboot / shutdown the Raspberry Pi
As the project is still very useful for me it would be good to improve this. The idea for this improvement is to split up the architecture into three components:
- birdscan component on the Raspberry Pi
- webiot on the same or another host
- mosquitto MQTT server also on the same or another host
The MQTT broker comes basicly for free because it is just one Linux package and the default configuration is just fine.
webiot should contain the user interface. This reduces the effort to develop birdscan because the web-related part can be skipped.
The relevant part is the birdscan component itself. My idea is to use the pure v4l2 interface of the Linux kernel to access the camera directly. Because the Linux kernel is programmed in C the easiest way is probably to also implement birdscan in C. MQTT libraries are available for C too.
To get started I will have a closer look at megapixels which is a camera app written in C and with similar ideas about how to connect to the camera.
Hopefully I find some time for this project in the next weeks / months. If you have some ideas about the project you can just write me a mail to me@xengineering.eu.