🌱

IoT Bonsai health tracking

ℹ️
About Bonsay is an IoT plant growing automation platform that uses real-time data to keep plants alive by watering at the right time. May 2018 - Nov 2018
 

Problem statement

Growing plants and small trees is an activity that growers can’t skip for a long time otherwise they’ll lose all the value that has been built for a long time, in some cases for years.
Trees and plants are susceptible and vulnerable and in artificial conditions, we can’t keep them without watering or adding nutrients.

Solution

The IoT platform tracks the moisture in the pot and the temperature outside and pumps the water to the pot when the soil is dry. All the data are stored online and reflected on a dashboard in real-time. The water tank has a sensor for low water volume and the user gets a notification when it needs a refill.

Design

The application is designed mobile-first since most of the users will check the health of their plants on the way. The screen below contains 2 charts that show the moisture of the soil and the current temperature. You can see on the peak that it was watered and the moisture jumped to 78%.
First MAP(Minimal awesome product) prototype
One of the first dashboards
One of the first dashboards

Technologies

  • Arduino MKR1400
    • IoT micro-computer with SIM support can be used anywhere without WIFI access. Power is secured by a battery power bank and solar panel.
    • It’s not 100% reliable while developing and sometimes it drove me 🤪 crazy because of behaving differently all the time
  • Capacitive moisture sensor v1.2
    • Even if the sensor should be corrosion resistant, 💩 happened and I had to replace it.
  • Node.js server
    • I love javascript 🥰 That’s why!
  • MongoDB
    • All the data are stored online so users can get any historical data and compare them with the newer ones.
  • Websockets
    • Data are sent to the server in real-time and they’re instantly reflected in the web dashboard application as visually attractive charts
  • API
    • REST API was used not only to communicate with the front-end but also as an end-point for other services that fetched the data and showed them on my Apple Watch right in complications on the watch face