How do we use that motion sensor and camera, anyway? #
I've got the important bits in two files, both of which we pulled down in the repo for the Flask web app.
First up, in the Flask app.py file there's a lot of setup going on.
index (line 22) we're creating a lot of variables that are, by default, nothing. But if they get set later we'll be able to show the status.
The real meat of it, though, is happening down in
action (line 59), which lets us toggle the camera off and on.
In particular, if we're turning the camera and motion detection on, we're starting it in a thread in the background, so the webapp can go ahead and continue to do its thing.
When we start the camera, we're calling
monitoring/motion_sensing.py. It's really pretty simple, thanks to the
start_motion_detection function just initializes things, starting up the motion detection and configuring the camera. Then, when some movement is detected it uses a lambda to call
take_photo and actually store a photo locally.
Currently, there's a function that would send an email, but I think I'm going to go a different route and will end up removing it.
Back in the
app.py actions function, the second half just handles clean shutdown. If we turn the camera off, we want to be sure we cleanup on the Pi and leave everything as tidy as possible.
Either way, we redirect back to
index, now with those variables populated so we can show what we just did.