Inspiration
When we heard the theme “Engineering for Disasters,” we wanted to build something that could move, sense its surroundings, and communicate with an operator. Inspired by Texas A&M’s Reveille and the role of search-and-rescue dogs, we created Reveille to the Rescue: a dog-themed rover prototype that demonstrates how affordable electronics can support disaster-response ideas.
We wanted Rev to have personality, too. Warning lights and emergency beeps communicate problems, while green lights and a celebratory song represent finding someone.
What it does
An operator controls Rev through a browser-based dashboard over the ESP32’s local Wi-Fi network. The dashboard displays sensor readings, alerts, flashlight status, and demonstration detection counts.
Rev’s onboard features include:
- Environmental monitoring: A DHT11 measures temperature and humidity. Readings above our programmed demonstration thresholds activate red LEDs, warning beeps, and an LCD message.
- Simulated person detection: An HC-SR04 ultrasonic sensor measures distance. An object within 20 centimetres represents a person in our demonstration, triggering green LEDs, a Rickroll melody, and scrolling lyrics beneath “We found you” on the LCD.
- Emergency assistance button: Holding the red button activates emergency lights, beeps, and an LCD message. The emergency takes priority over the celebration and is reported to the dashboard.
- Automatic flashlight: A photoresistor module detects darkness and turns on yellow LEDs. The flashlight turns off when the surroundings become brighter, and its status appears on the LCD and dashboard.
The ultrasonic sensor detects nearby objects, not human identity. Our detection counts represent simulated encounters, and this prototype is not a field-ready rescue system.
How we built it
We divided the project into motor control, sensors and alerts, dashboard development, and physical assembly.
An Arduino Mega 2560 runs the sensors, LCD, LEDs, and passive buzzer. An ESP32 handles Wi-Fi and controls the wheel motors through an L298N motor driver. The Mega sends sensor readings and status information to the ESP32 through a serial connection.
We programmed the microcontrollers in C++ using Arduino IDE and built the dashboard with HTML, CSS, and JavaScript. The dashboard regularly requests updated sensor data from the ESP32.
We tested components individually before combining them: first sensor readings, then buttons and LEDs, then music, automatic lighting, and dashboard communication. We assembled the electronics on breadboards and built a simple rover platform with a plush dog representing Rev.
Challenges we ran into
One of our biggest challenges was learning breadboard wiring. We had to understand which holes connect internally, how to share ground, and why separate power rails need jumper connections. Organizing multiple LED groups while keeping the display presentable took several revisions.
We also learned the difference between active and passive buzzers. Our first buzzer could produce beeps, but we switched to a passive buzzer to play different musical notes.
Combining working components was harder than testing them separately. We encountered intermittent USB connections and upload problems, and had to troubleshoot power, wiring, and code one step at a time.
Another challenge was coordinating the program’s behavior. The emergency button needed to interrupt the song, environmental monitoring needed to continue during music, and flashlight control needed to operate independently.
Accomplishments we're proud of
We turned separate circuits into a coordinated prototype with movement, environmental monitoring, visual and audible alerts, automatic lighting, and a wireless dashboard.
We are especially proud of the details that make Rev understandable to an operator: different LED colors for different events, emergency messages that override celebrations, and flashlight status that appears both locally and remotely.
For team members with little prior hardware experience, getting real sensors and outputs working together was a major accomplishment.
What we learned
We learned how to read sensors, use resistors to limit current, control outputs, troubleshoot breadboards, and communicate between microcontrollers.
We also learned to use millis() timers to coordinate features without long pauses. For the flashlight, we used separate turn-on and turn-off thresholds—a technique called hysteresis—to reduce flickering near the light threshold.
Most importantly, we learned that a reliable system comes from testing small parts, documenting connections, and combining features gradually.
What's next for Reveille to the Rescue
Our next steps are a sturdier chassis, more secure wiring, improved power management, and testing on different surfaces and under different lighting conditions.
We would also like to add a camera for operator-assisted searches and improve how detections are confirmed. Our goal is to build on this demonstration while clearly separating what the prototype can measure from what a real rescue system would need to do.
Log in or sign up for Devpost to join the conversation.