Inspiration
After coming home from a long vacation, we've often found that the plants we keep have been neglected and are dead or close to dying. Getting someone to check on the soil and water plants when it's dry has always been a hassle, so we decided to automate as much of the process as we could.
What it does
By using a water sensor connected to an Arduino board, it measures the percentage of water in the soil. If the percentage is below a certain threshold, it will dispense enough water to ensure that the plant doesn't die. The data is sent to a dashboard website where you can monitor stats and see any trends. You are also able to water the plants manually via a connected pump with just the touch of a button.
How we built it
Backend:
- C++ (Arduino interface)
- TypeScript (Arduino wrapper)
Middleware:
- TypeScript
- Express.js (API wrapper)
Frontend:
- React
- TypeScript
Challenges we ran into
- The Arduino board we acquired had no WiFi capabilities, so we were forced to use serial I/O to communicate with the website and the sensors/pumps.
- The interface for the Arduino IDE was confusing and there was no code completion, so we made stupid bugs that wasted some time.
Accomplishments that we're proud of
- We were able to create a working prototype.
- We were able to create a functioning dashboard website that could talk to the hardware.
What we learned
- How to Arduino.
- How to write better APIs.
- How to deal with serial I/O.
- How to deal with faulty products.
What's next for Arduinkler
- More stuff for the website, such as graphs.
- Account system so that multiple people can use the service.
- Add an SMS system to notify users if plants are dying (almost complete, not enough time).


Log in or sign up for Devpost to join the conversation.