Home - matt65/Lizard GitHub Wiki
Welcome to the Lizard wiki!
Project Aims Having adopted a Bearded Dragon lizard last Christmas it was my aim to develop a system using my Raspberry Pi to maintain a stable environment for the lizard, by stable I am aiming to achieve an ideal temperature of no more than 34 deg Celsius during the day and no less than 17 deg Celsius overnight, I also wanted to make sure the UV light was on long enough while being automated so that if we weren't home it can turn off when it needed to be.
Another side aim I had was tracking the environment inside the terrarium.
While implementation is simplistic, this project achieves:
- Using a Raspberry Pi (currently it is a Raspberry Pi 3, but I will move it to a Raspberry Pi Zero 1.2 shortly)
- Using a MySQL database backed to store configuration values and record sensor data
- Using python for the main program
- Using Flask for the web front end to see the current status of the system, set configuration values, and (not implemented yet) visualize environment in some graphs
- Using SSR's to turn on and off the UV light according to the calculated sunrise and sunset, and the heat lamp according to the configured minimum and maximum temperatures for the time of the day
This project is my first foray into using Python and Flask, I have some experience with MySQL and Linux. I expect there are some things which I have implemented which are probably not ideal, but where possible I have tried to develop using best practices.
I wanted the physical components to be neat and tidy, I also wanted some flexibility in potentially moving things around or even perhaps adding a third SSR to control a fan or a heat cable. Tom achieve flexibility and (hopefully) neatness, I have developed a simple interface board that is around the size of the Raspberry Pi Zero which will have five RJ12 (I went with RJ12 over RJ11 because I felt the bigger plugs would accommodate the larger cable of the temperature probes) modular plugs to enable ease of disconnecting device, it will sit ontop of the Raspberry Pi.
I have tried to maintain comments in the code as I went along, I know there are some definitions which need comments or edits to comments, I plan on going back and working on this, I also plan on documenting the requirements to make this all work, and plan on expanding this Wiki to provide greater commentary on what I did, why, and what I plan on implementing next.