Final Project: Smart Reptile Habitat System
Section 1: Final Project Proposal
What I prepared for Week 01
Concept

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

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
Full system — top lid (enclosure + fans), in-tank modules, and web dashboard
Software Architecture
ESP32C6 (device) → MQTT → NAS Docker → Browser dashboard
How It Works
- The ESP32C6 reads two SHT31 sensors every 30 seconds
- Sensor data is published via MQTT over WiFi
- The web dashboard receives data in real time (MQTT over WebSocket)
- The user can enable manual override and send control commands from the dashboard
- 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 ✅
- Created project website
- Outlined project concept
- See Week 1 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 ✅
- Press-fit kit with laser cutter
- Gecko sticker with vinyl cutter
- See Week 3 Documentation
Week 4: Embedded Programming ✅
- Button + LED circuit with XIAO SAMD21
- Wio Node + Grove sensor via REST API
- See Week 4 Documentation
Week 5: 3D Scanning and Printing ✅
- 3D printed gearbox (Bambu Lab P2S)
- 3D scanned a figure with Hitem3D (multi-view AI)
- See Week 5 Documentation
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 ✅
- Gecko Shelf (CNC-milled plywood, 1094 mm tall)
- Maslow CNC + KrabzCAM toolpaths
- See Week 7 Documentation
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 ✅
- SSD1306 OLED display showing live sensor data
- Fan PWM control via Grove I2C Motor Driver
- See Week 10 Documentation
Week 11: Networking and Communications ✅
- MQTT publishing over WiFi (XIAO ESP32C6)
- Basic web dashboard on NAS
- See Week 11 Documentation
Week 12: Machine Design ✅
- Whiteboard drawing robot — motor mount design and 3D printing
- See Week 12 Documentation
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 ✅
- Final project planning: purpose, materials, cost, processes
- See Week 17 Documentation
Week 18: Invention, IP and Income ✅
- Dissemination plan and licensing
- Future possibilities and business models
- See Week 18 Documentation
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