AlarmBot - the IoT wake up buddy
Fred Chu, Lucas Wolter
Website | Git Repo | DEMO | Presentation
Waking up for classes in the middle of a pandemic can be a nightmare. With your bed so close to your zoom class, its harder now than ever to get up for that 8am lecture. Worry no longer, your days of sleeping through class are over! According to a recent study at Harvard, only 11% of college students sleep well. Sleep deprivation causes some pretty difficult mornings and dangerous potential to oversleep and miss morning classes. To remedy this problem, we developed Alarmbot, an IOT mobile alarm clock guaranteed to wake you up.
AlarmBot, the IoT quick wake-up buddy. AlarmBot is a practical wake up system that stops you from snoozing the morning away. AlarmBot features a stationary clock module, a bot module that rolls away from your bed when the alarm goes off, and a website to remotely set alarms and send messages. These features enable users to end that vicious snooze cycle and actually get out of bed, as well as allow parents or friends to set their forgetful buddy’s alarm remotely.
From of the parts provided in the audiovisual box and base set, we utilized the esp32 microcontroller, OLED display, 7-segment display, audio transducer, and RGB LED in our design.
After fully utilizing the parts of the AV box, we used additional parts to make our vision become reality such as nRF radio modules, an Arduino nano, a speaker, 2 gear-motors, and an H-bridge.
The bot portion of our design is controlled by the ESP32 microcontroller and interfaces with an nRF radio using a modified SPI library in order to communicate with the clock module. The OLED display is connected via I2C, the H-bridge is used to control the motors, and the push button is paired with an RC debouncing circuit.
The code that runs on AlarmBot is under the respective Bot Module and Alarm Module folders in the Github repo. The Alarm module was connected to the Bot using two radio modules, implemented on the ESP32 with customized API libraries. By using the Firebase API, we connected the Bot module to a backend database,. This connection was done using the ESP-32 Wi-Fi connection API. The bot module was then connected to the database to a custom made website in HTML/CSS/js. The website is constantly updated by a live clock updated to the millisecond.
- OLED Display
- Audio Piezo transducer
- RGB LED
- nRF24 Radio Module
- Gear-motor x2
- Tin Can
- Arduino Nano
- nRF24 Radio Module
- 4 Digit 7-Segment Display
- Cardboard Box
- Adafruit SSD1306 (for OLED)
- Adafruit GFX (for OLED)
- Adafriut SSD1306 *ESP32 AnalogWrite *SevSeg
- pitches (labelled notes for ease of use with speaker)