Inspiration

Over the past summer, southeastern Michigan has experienced widespread rainfall that brought a lot of flooding. A lot of my friends and their families were affected by the flood losing a lot of their possessions due to their basements being flooded with water. The name F.LU.D.D was inspired by ' F.LU.D.D' in super Mario sunshine ☀.

What it does

F.LU.DD is a flood monitoring system for your basement. It utilizes a rain sensor that can be placed on your basement wall to detect water leaks ( if your basement has cracks like mine). It also has a water level sensor that can be used to detect rising water levels if your sump pump fails and an ultrasonic sensor is used to measure the distance the current water level is compared to the floor of your basement.

A sump is a naturally constructed pit, usually, a hole carved below the main surface of your basement floor . Sump pumps move water 🆙 from your basement out of your home

If F.LU.DD detects any leaks or abnormal levels it will text you and alert you. Depending on the level of severity, a user will have to respond in 15 minutes, or else FLUDD will escalate the alert to a phone call 📞.

How we built it

Boards i used

  • Arduino Mega
    • to read all the sensor data and to transmit it to the ESP8266 via Serial
  • ESP8266
    • For Connecting to the wifi and to publishing data to Google cloud IoT Core & Pub/Sub

I made a simple API in Express js to handle requests to and from the ESP and used Twilio SMS and Voice to send messages to alert me if anything happens. I used Cloud Build and Cloud Run to set up a CI to build and deploy my API when new changes are made. The sensor data is also being published to Pub/sub where it streams into Big query & Data Studio ..

Challenges we ran into

Hacking with hardware beings a whole new set of things to consider - The first board that I was going to go with was the Twilio NB IoT Board but I couldn't get my computer to recognize it or get help with drivers needed to program it. So i switched to the ESP but due to it hacking only one analog pin I had to add in the Arduino making Serial communication & the circuit a little more complex than I was going for... since I have to use a logic converter to convert down the voltage of the Arduino TX & RX pins to 3.3V. In addition to that came debugging both boards when i wasn't getting the output i expected. Two questions you always have to ask is my code or the hardware? and then after fumbling around you realize you don't have the right wire in the right spot on the breadboard

Accomplishments that we're proud of

Really proud that i was able to get this project up despite the fumbling around with different boards at first and getting the alerting system functional

What we learned

  • Learned how easy it is to send messages & makes calls with Twilio's API
  • How to use the water level, rain, and ultrasonic sensors
  • How to make a HTTP client on a ESP8266
  • Set up CI in my repo with Cloud Build and Cloud Run

What's next for F.L.U.D.D

I want test this out in my basement when it is more stable and accurate and also increase the number of rain sensors so you can monitor leaks in more than one area in your basement and add in other sensors for detecting harmful gases. I also want to display the data visually that i am collecting in BigQuery by fleshing out the dashboard UI in DataStudio when i have more time.

Built With

Share this project:

Updates