Final Project: Smart Reptile Habitat System


Section 1: Final Project Proposal

What I prepared for Week 01

Concept

Project Sketch

I want to build an automatic environment control system for my reptile terrarium.

My pet reptiles (geckos and snakes) need specific temperature and humidity. It is hard to keep the perfect environment all the time by hand.

The system will: - Monitor temperature and humidity inside the enclosure (two positions) - Automatically control the fan, heater, lighting, and humidifier - Let the user control each device manually from a web dashboard

What I Planned to Build

Component Plan
Custom PCB Microcontroller board with sensors, fan driver, relay, Grove connectors
Terrarium Rack CNC-milled wooden shelf to hold the tank
Web Dashboard Real-time browser dashboard with history graph and device control
Gecko Emblem Decorative emblem using molding and casting

See Week 1 Documentation for the original project proposal.


Section 2: Final Project Development

What I built during the course — week by week

What I Made

Control Board — Reptile Monitor PCB

Reptile Monitor PCB

I designed and milled a custom PCB using KiCad and a CNC router.

Component Purpose
Seeed XIAO ESP32C6 Main microcontroller (WiFi built-in)
SHT31 × 2 (I2C 0x44 / 0x45) Temperature and humidity sensors (bottom / top)
Grove I2C Motor Driver TB6612FNG Fan PWM speed control
Grove 2-ch SPDT Relay Lighting and heater ON/OFF
Grove Water Atomization Humidifier control
SMD LED + 1kΩ Status indicator

Gecko Shelf (Terrarium Rack)

I CNC-milled a wooden shelf (394 × 359 × 1094 mm) from 12 mm plywood. The terrarium sits on the top section. The shelves below store supplies.

Web Dashboard

A real-time browser-based dashboard running on my NAS.

  • Sensor display (temperature and humidity, two positions)
  • History graph — 1D / 1W / 1M (Chart.js + Flask + SQLite)
  • 5 device controls: lighting, intake fan, exhaust fan, heater, humidifier
  • MQTT over WebSocket for real-time updates and control

Gecko Emblem

A decorative gecko emblem made by silicone molding and UV resin casting.


System Architecture

Physical Integration

System Integration Overview Full system — top lid (enclosure + fans), in-tank modules, and web dashboard

Software Architecture

Software Architecture ESP32C6 (device) → MQTT → NAS Docker → Browser dashboard


How It Works

  1. The ESP32C6 reads two SHT31 sensors every 30 seconds
  2. Sensor data is published via MQTT over WiFi
  3. The web dashboard receives data in real time (MQTT over WebSocket)
  4. The user can enable manual override and send control commands from the dashboard
  5. The ESP32C6 receives commands and controls the fan, heater, light, or humidifier

System Integration

To complete the Smart Reptile Habitat System, all components built in previous weeks must be connected into one working unit.

The integration consists of four parts:

Part Description Method
Integration Board New PCB combining power input (AC 100V), AC-DC converters (5V / 12V), relay outputs, and fan connectors KiCad design → CNC milling → hand soldering
Enclosure Box to hold the integration board, power modules, and relay modules Fusion 360 → 3D print (PETG)
In-Tank Modules Pet bottle mount, water dish, humidifier mount, sensor mount, cable guide Fusion 360 → 3D print (PETG)
Top Lid Lid that attaches to the tank frame and holds the enclosure, two 12V fans, and power connectors JW-CAD → laser cut (MDF)

For full details including methods, schedule, and design files, see Week 15: System Integration.


Weekly Progress

Week 1: Planning & Documentation ✅

Week 2: Computer-Aided Design ✅

  • 3D modeled terrarium and control box in Fusion 360
  • Technical drawings with JW-CAD
  • Gecko mascot vector in Inkscape
  • See Week 2 Documentation

Week 3: Computer-Controlled Cutting ✅

Week 4: Embedded Programming ✅

Week 5: 3D Scanning and Printing ✅

Week 6: Electronics Design ✅

  • Circuit simulation with Falstad
  • Schematic and PCB design with KiCad
  • Test Board: XIAO SAMD21 + button + LED
  • See Week 6 Documentation

Week 7: Computer-Controlled Machining ✅

Week 8: Electronics Production ✅

  • Reptile Monitor PCB designed with KiCad
  • CNC milled with pcb2gcode
  • Soldered XIAO ESP32C6, Grove connectors, SMD LED
  • See Week 8 Documentation

Week 9: Input Devices ✅

  • Dual SHT31 temperature/humidity sensors connected via I2C
  • I2C address configuration with solder jumper (0x44 / 0x45)
  • See Week 9 Documentation

Week 10: Output Devices ✅

Week 11: Networking and Communications ✅

Week 12: Machine Design ✅

Week 13: Molding and Casting ✅

  • Gecko emblem mold — Fusion 360 design
  • CNC wax milling + handy router surface finishing
  • Silicone mold → UV resin casting
  • See Week 13 Documentation

Week 14: Interface and Application Programming ✅

  • Full MQTT dashboard: Bootstrap 5.3, Chart.js 4, MQTT.js 5
  • Flask + SQLite backend (5-min buckets, up to 1 month history)
  • 5-device control with manual override and time scheduling
  • See Week 14 Documentation

Week 15: System Integration 🚧

  • Integration plan: power board, enclosure, in-tank modules, and top lid
  • Build phase: May 14 – 28 / Integration: May 29 – 31
  • See Week 15 Documentation

Week 16: Wildcard ✅

  • Automatic embroidery with Brother Skitch PP1
  • Inkscape + Ink/Stitch → .pes → Artspira (iOS) → machine
  • See Week 16 Documentation

Week 17: Applications and Implications ✅

Week 18: Invention, IP and Income ✅


Schedule

Phase 5/7 5/14 5/21 5/28 5/29 6/1 6/4 6/7
Design May 7 – 13
Build May 14 – 28
Integration May 29 – 31
Testing Jun 1 – 3
Presentation Jun 4 – 7

Section 3: Final Project

Final deliverables — to be completed by June 7, 2026

Final Video

🔜 Coming Soon — 1-minute video showing the completed system in operation


Summary Slide

🔜 Coming Soon — One-page summary slide


Bill of Materials (BOM)

Item Qty Unit Price (JPY) Total (JPY) Source
Seeed XIAO ESP32C6 1 1,000 1,000 Seeed Studio
Sensirion SHT31 (Grove) 2 1,600 3,200 Switch Science
Grove I2C Motor Driver TB6612FNG 1 1,000 1,000 Switch Science
Grove 2-ch SPDT Relay 1 1,200 1,200 Switch Science
Grove Water Atomization 1 1,000 1,000 Switch Science
SSD1306 OLED Display (Grove) 1 900 900 Switch Science
FR1 PCB blank (100×100mm) 2 200 400 FabLab
12mm plywood (1220×2440mm) 1 3,500 3,500 Home center
12V DC fan (60mm) 2 600 1,200 Amazon
AC-DC converter 5V 2A 1 800 800 Amazon
AC-DC converter 12V 2A 1 900 900 Amazon
PETG filament (250g) 1 800 800 Bambu Lab
MDF 3mm (300×300mm) 1 300 300 Home center
Silicone rubber (200g) 1 1,500 1,500 Amazon
UV resin (50g) 1 600 600 Amazon
Wax block (CNC) 1 500 500 FabLab
Miscellaneous (wire, screws, connectors) 1,000
Total ~18,800

Questions and Answers

What does it do? An automated environment control system for reptile terrariums. It monitors temperature and humidity with two sensors, and automatically controls fans, heater, lighting, and humidifier. The user can also control devices manually from a web dashboard.

Who has done what before? Commercial reptile controllers exist (e.g., Inkbird, Herpstat), but they are expensive and not customizable. This project uses open-source tools and custom-made PCBs so that other reptile keepers can adapt it to their own setup.

What did you design? - Custom PCB (Reptile Monitor) — KiCad schematic and PCB layout - Gecko Shelf — CNC-milled plywood rack - Integration enclosure and in-tank modules — 3D-printed PETG - Top lid — laser-cut MDF - Web dashboard — HTML/JS/CSS frontend + Python Flask backend

What materials and components were used? See BOM above.

Where did they come from? Seeed Studio, Switch Science, Amazon Japan, home centers, FabLab Nagoya stock.

How much did they cost? Approximately 18,800 JPY (~125 USD) total.

What parts and systems were made? PCB, firmware (Arduino/ESP32), dashboard (HTML + Python), enclosure (3D printed), shelf (CNC), gecko emblem (molded + cast).

What processes were used? CNC milling (PCB + shelf + wax mold), 3D printing, laser cutting, hand soldering, silicone molding, UV resin casting, embedded programming, web development.

What questions were answered? - Can a custom PCB control multiple devices (fan, relay, humidifier) over MQTT? → Yes - Can dual I2C sensors share the same bus with different addresses? → Yes (solder jumper) - Can a Flask + SQLite backend store 1-month sensor history efficiently? → Yes (5-min buckets)

What worked? What didn't? - Worked well: MQTT communication, dual SHT31 sensing, OLED display, web dashboard - Challenges: Thread quality issues in embroidery (week 16), Android Bluetooth app problems

How was it evaluated? System tested end-to-end: sensors → MQTT → dashboard → device control response confirmed.


Files for Replication

🔜 Coming Soon — Final file package to be released after June 7, 2026

Files will include: - PCB design files (KiCad) - Firmware source code (Arduino) - Dashboard source code (HTML + Python) - 3D print files (Fusion 360 + STL) - Laser cut files (DXF) - CNC toolpath files (G-code)


References


Last updated: May 2026