I had just recently moved the birds to their new outdoor cage now about month after they hatched when I had to leave for the weekend. Not knowing how the birds would be when left alone for any period of time, I wanted to put a camera in the cage so I could check in on them from anywhere. With an old Wyze Cam v1 laying doing nothing but collecting dust, I figured the remainder of it’s life would be better spend the outside in the Quail cage; this began the QuailCam project.
Be sure to check out Hatching Quail for more details on my birds!
After just a few hours of PHP and HTML, the simple Web UI was up and running pulling live images directly from the camera using the WebServer as a proxy. After sharing the link around to a few friends, I found this method would quickly overwhelm the camera, it’s very limited resources could not handle serving this number of requests.
A simple solution to this was to implement a background process on the WebServer which itself would fetch images from the camera at a measly 1FPS. These images would then be cached locally and served to clients by the webserver. This greatly reduced the demand on the camera and allows the WebUI to be accessed by a large number of people at once.
In the days since the first version, BirbBeta has been improved several times to load information about the birds themselves from a MySQL database and current weather conditions provided by my EnvSense project and an ESP32 located below the cages. I frequently use this page myself to keep track of my birds using the tags on their legs.