Background
I wanted to create a snake enclosure that I did not have to monitor 24/7 and tend to all change from daylight to night. It started out as a project to switch from day to night and it grew from there. I wanted to mirror their natural habitat in temperature that changes daily to replicate the changing of the seasons with fans and various heat elements, sunrise and set to match their natural habitat, humidity to keep them healthy. But I also wanted to be able to manipulate these settings for various reasons.

How It Works
It uses a RTC to save the date and time at restarts (happens every hour to prevent SRAM fill up from the webserver). Then it reads the SD from the TFT touch screen by Seeed, for any data that is not preset in order to maintain different settings (like increased humidity for shedding).

Reads the ambient temperature and humidity from the DHT 22.


Two temperature sensors read each rock to make sure they do not overheat.
Using the data received it will control two relay shields enclosed in a project box


These relays control the Night light, Day Light, Heat Lamp, Heat rocks 1 & 2, fogger and the fans.


The fogger needed to be hacked so I could monitor water levels remotely. fist you need to take the wires off the float switch and connect them to each other ( this will make the fogger believe it is always full). connect two wires to the float switch one will go to the 5v pin and the other will go to the selected input pin (mine is pin 31) with a 220 resistor to the ground (dont know how important the resistor number is as long as you have one, I have tested a few and they all work),
Not going to go into too much detail on the relays as I have a diagram and it is not that important on placement.





These are the screens I made to show me the readouts. (My snakes names are Harold and Kumar.) The Home screen just shows data about the snakes like Latin name and native countries. The Temperature screen shows current temperatures and set temperatures and a switch button that shows the same screen but with the opposite time (Day/Night). The Humidity screen shows the current and set humidity. The Sunrise/set screen shows daily sunrise and set times. The Setting Page shows what sensors are active and what devices are on. if any variable is changed it will also have a correlating days variable for each, this is subtracted by one at midnight.

I added a camera for remote monitoring


The Ethernet has a web-server the gives me the ability to read current readouts above is an example.
Here are some other photos...









here is a diagram:


The full code is attached.
EXPANDED TECHNICAL DETAILS
Reptile Bio-Automation
This system maintains the delicate ecosystem required for snakes and other reptiles, integrating visual monitoring for safety.
- Climate Control Hub: Uses a DHT22 (Humidity/Temp) and a waterproof DS18B20 sensor for the heating mat. The Arduino uses Hysteresis logic to toggle a relay, keeping the "Basking Spot" within a strict 2-degree window.
- ESP32-CAM Integration: Includes a WiFi-enabled camera module. The user can view a live MJPEG stream of their snake from any web browser and remotely check the current temperature readings.
Safety Alarms
- Thermal Cut-off: If the temperature exceeds a dangerous threshold (e.g., 35°C), the system kills all power to the heating elements and triggers an audible siren and a push notification to the owner's phone.