Inspiration

  • So many IoT devices for other things around the house
  • A desire to explore hardware

What it does

A sensor and companion app that ensures you never forget to water your plants

How we built it

It all starts with a soil moisture sensor that is passed through a potentiometer, and then passed to a Raspberry Pi 4. A Python script running on the RPI records the data collected by the sensor, and using a web server built with Flask, sets up an endpoint that can be accessed over a shared WiFi network. An application built with Dart/Flutter takes this data and organizes it in a noSQL database called Hive, where it is then used to send push notifications that inform the user when to water their plants.

Challenges we ran into

We faced a multitude of challenges throughout the development of our project, including, but limited to:

  • Unstable SSH over ethernet causing frequent interruptions, which led us to reimaging our OS eight times (shoutout John!)
  • Countless problems setting up the Hive database, which led to us receiving help via Conor from H&RBlock. While he did have to leave before seeing the problem resolved, he put us on the right track to finding the solution.
  • A combination of timezone problems and device permission issues that made scheduling notifications impossible. After reading through forums, troubleshooting, and debugging, we were able to get everything working properly.

Accomplishments that we're proud of

Given our knowledge (or lack thereof) about hardware, Flutter/Dart, Hive, and Flask, every step forward was an overwhelming achievement. Working with hardware, especially things like learning how a breadboard works, examining diagrams to properly place jumpers on the RPI, and tuning potentiometers, were completely foreign concepts before we began, and stand out as our best accomplishment.

What we learned

We learned an extensive amount over the previous 72 hours, but some highlights include:

  • Learning how to set up an API using Flask and Python
  • Learning how to send push notifications on a Flutter app
  • Learning how to tune a potentiometer
  • Learning how to use mDNS to avoid referencing static IP addresses to the app
  • Learning how to integrate Hive into a Flutter app

What's next for Sprout Scout

We are filled with ideas on how we can extend the lifespan of this project. Some ideas include:

  • Using a real-time weather API to take into account things like rain so our users don't end up overwatering their crops
  • Switching out the RPI for a logic board that is cheaper and on a smaller footprint to make our project more accessible and reasonable to the average consumer
  • Adding a light sensor, which is a challenging-but-fun concept that would allow the user to analyze the placement of their plants with respect to the sun or other lights

Built With

Share this project:

Updates