Raspberry Pi backend
The backend on the Raspberry Pi offers the APIs to manage and control the piCamera module and the servo motor attached on the device.
The backend must be personal and you need to own your Raspberry Pi, camera and motor.
REST server
The server is developed in python. The choice of this programming language is given by the fact that python offers really good library to handle both the piCamera module and the GPIO pin in PWM mode (needed to handle the servo motor).
To develop the REST APIs it has been used the Flask library. But this library does not offer a server that can be used in production enviroment, to overcome this issue it is used Waitress, that on the contrary permits to use a Flask server in a production enviroment.
Handling the camera
It has been used the piCamera library to develop all the features relative to the camera (stream, motion detection, face recognition).
The camera and the servo motor can be controlled also with Alexa.
A big thanks to Adrian and his beatiful tutorials! Check his website it is really worth it!
In particular:
- Install OpenCV on Raspberry Pi
- Stream and simple motion detection
- Motion detection (complete)
- Face recognition