/2ndYr_Assignment3_OralBearduino

A notification system to motivate users to brush their teeth regularly!

Primary LanguageC++

2ndYr_Assignment3_OralBearduino

"Success is no accident. It is hard work, perseverance, learning, studying, sacrifice and most of all, love of what you are doing or learning to do. " -Pele

Infomercial Video of our Project

Video

Group Details

Name Student No. Student Email
Jonathan Noble C154879222 c15487922@mydit.ie
Pia Ofalsa C15734155 c15734155@mydit.ie

Objective

For this project, our initial idea was to create a notification system that can encourage and motivate children to brush their teeth in a fun, IoT(Internet of Things) environment.

We then came up to the conclusion that we will use the platform of Arduino and develop an Android App which offers awesome IoT features - make sure to check down below for the full post about the features that are showcased in our project.

Hardware Specs

  • Usage of Genymotion Emulator for Android App

  • Stuff Toy with the following hardware embodied:

    • TFT LCD Screen:

      • img_3417
    • Arduino Uno

      • img_3424
  • Wemos D1-mini with an ESP8266 WiFi Module: img_3432

    • Vibration Switch Sensor
    • Resistor
    • Jumper Wires
    • Breadboard

Project Description

We divided the workload in two phases so we could learn both platforms at once. As a duo group, we thought the project per se was ambitious at first but we believe we managed to consider and tackle every necessary steps possible.

With the objective in mind, our Android App - named after the project - was made primarily for the parents to notify them once their children have used the toothbrush recently via a vibration switch sensor input read by Wemos D1-Mini with ESP8266. As for the kids' motivation counterpart, we decided to use a TFT LCD Screen embodied inside a stuff toy to display tips and advices and more importantly, a stop watch for the recommended two-minute duration of brushing.

Goals

  • Learning curve in both platforms
  • Developing an Android App with fragments on a Navigation Bar
  • Learn Arduino in C and C++; Arduino library functions
  • Understanding the hardwares of TFT LCD screen i.e. Touchpoint and Wemos D1-Mini i.e. ESP8266 libraries
  • Usage of base64 from base64encode.org for encoding username and password from the SMTP smtp2go.com server
  • Git fetching-> merging/rebasing from an upstream branch was also another challenge in the beginning

Features

  • Android App:

    • Navigation Drawbar with Fragments:

      • Music Player on Home Page
      • E-mail Web View
      • Tutorial Page
    • App Screenshots:

      drawer playmusic email tut

  • Wemos D1-Mini:

    • The controller uses the ESP8266 to send an email once the vibration switch sensor reads an analogue input

    • C/C++ header files used:

      • checkEmail.cpp/h consists of the responseCode to check availability of network. It also has the function to send the Email through the encoded SMTP username with the usage of base64. The screenshots provides the necessary requirements in underline to get the server connection to fully function.
    • Wemos D1-Mini Procedure Screenshots:

ser2 ser1

The generated base64 is then implemented in our code! Then voila! Magic is made by IoT! ser3

  • TFT LCD Screen
    • Tips & Advices on Splash Screens

    • Stop Watch for the recommended 2 minutes!

    • C/C++ header files used:

      • Buttons.cpp/h which creates/animates/activates/error-checks the buttons
      • Settings.cpp/h for the EEPROM library to save/reset/default values
      • Debug.h for debugging purposes
      • UI.cpp/h for the splash screens and the UI design of the screen
    • LCD Screen screenshots:

img_0017 img_0019 img_0018 img_0020 img_0021

Conclusion & What we're proud of

We are very proud of getting out of our comfort zone. This year we learned how to make a scifi UI, a game and now something completely different and something that we believe in the future will make a huge impact on other people's lives, of course there is definitely room for improvement for this project but we can not wait to showcase it with more cool features.

Runners experience a euphoria known as runners high. Programming definitely creates similar feeling. All those sleepless nights brainstorming for ideas, coding, debugging.

It was a surreal experience to be able to put our knowledge into something useful.