Files
reptile_feeder/README.md

1.7 KiB

ESP32 automated reptile feeder and 3-zone climate monitor controlling up to 16 servo-driven feeding doors.

Adafruit PCA9685 16-channel PWM servo driver board and DHT22 climate sensor

Status: in progress

What it does

  • Controls up to 16 independent servo motors via PCA9685 I2C driver to open and close feeder hatch doors
  • Reads temperature and humidity across 3 enclosure zones using DHT22 sensors every 30 seconds
  • Exposes Web UI on port 80 and streams real-time MQTT telemetry to Home Assistant
  • Supports Over-The-Air (OTA) firmware updates for hands-off maintenance

Bill of Materials

Part Quantity Purpose
ESP32 Development Board 1 Microcontroller running Wi-Fi web server, MQTT, and OTA
Adafruit PCA9685 PWM Driver 1 16-Channel 12-bit PWM I2C servo controller board
TowerPro Servos (SG90/MG996R) Up to 16 Actuators for opening/closing reptile feeding hatch doors
DHT22 Temperature/Humidity Sensors 3 Multi-zone climate sensors on GPIO 6, 7, and 18
5V 5A External DC Power Supply 1 High-current power source for servo motor rails

How it works

Firmware uses I2C (SDA GPIO 10, SCL GPIO 11) to offload PWM servo timing to the PCA9685 chip, avoiding ESP32 interrupt jitter. Sensor readings from 3 DHT22 pins are published to Home Assistant via MQTT every 30 seconds.

What broke

  • Initial simultaneous movement of multiple SG90 servos caused voltage sags on the 5V rail, causing the ESP32 to brown out until a dedicated 5V 5A external power supply was separated from the ESP32 logic power.