Pick-a-plant
About the project
Choose the right plant for you, using Pick-A-Plant. This IoT device will help you find the best match for every location, using Microchip's AVR-IoT WG Development Board.
Project info
Difficulty: Moderate
Estimated time: 3 days
License: Creative Commons Attribution-ShareAlike CC BY-SA version 4.0 or later (CC BY-SA 4+)
Items used in this project
Story
Choose the right plant for you, using Pick-A-Plant. This IoT device will help you find the best match for every location, using Microchip's AVR-IoT WG Development Board.
Full project video
Story
We're notoriously bad at taking care of our plants. We buy one, we put it somewhere in our house and then it dies. So maybe we're just putting the plant in the wrong place? This is why we decided to create the Pick-A-Plant, to help us choose which plants we should buy for our house.
Setup
To start off, let’s set up our AVR IoT WG Development Board using these two tutorials to setup the board and connect it to your own Google Cloud. After following these steps, we will have a working chip with a premade frontend, hurray!
Sensor data
We’ve set everything up on our own Google Cloud Platform meaning we can access the data directly on our Firebase app. We used the following URL for our API call.
https://<YOUR_PROJECT_NAME>.firebaseio.com/avr-iot/data/<YOUR_UID>.json
You can check your Firebase database under “Database” in your Firebase project.
Plant data
Based on the light and temperature data collected with our board, we want to select the ideal plant for the chosen location. We gathered data about ten common houseplants from the website House Plants Expert and saved in a JSON file. For each of the plants, we saved data about their ideal condition in the following format:
"name":"African Violet",
"description": "The African violet is one of the most popular flowering house plants from the saintpaulia genus. The genus has about 20 species and thousands of varieties. These have become easier for the average home grower to produce perfect blooms, although they need to be provided with some special care and attention." ,
"url": "https://www.houseplantsexpert.com/african-violet-care-information.html",
"min-temp": 16,
"max-temp": 24,
"min-light": 150,
"max-light": 600
Dashboard
With both our datasets available we can move on to creating the dashboard. In this case we’ve chosen for Bootstrap to make an slick looking dashboard and used JavaScript for the logic. You can find the full code in the attachments.
Flow
At first we do an initial load of the sensor data to fill our chart, we’ve limited it to the last ten data points in our API url.
limitToLast=10
Once the initial load is done, we update the chart every two seconds, removing the oldest of the ten records and adding the new one.
When you click on the search icon, the last ten data points are summarized, calculating the minimum, maximum and average for both light intensity and temperature. We show these statistics in the designated tiles. Using this sensor data and the JSON file about our plants, we find the best match. If a match is found, we display the name of the plant and a short description with a link to the House Plants Expert website with more information.
Device
With the software taken care off, we can start on our device. A bright orange casing will make the Pick-A-Plant stand out for sure. So after finding this LEGO flower model on Thingiverse, we added an opening in the top to allow the sensors to do their work, and a hole in the bottom to hold the chip and batteries.
With the model done, we print it and viola, our flashy casing is done.
Assembly
We hot glued a 2x AAA battery holder to the back of the board and installed it into our designated hole finishes this short assembly step.
Done!
Everything is ready, looks neat and is portable. The Pick-A-Plant is ready to help with the next green decision! From now on, only happy plants in our house!
CAD, enclosures and custom parts
Code
Credits
8BitsAndAByte
We’re Dane & Nicole, two makers that create tremendously terrible tech, which we happily share with you on our channel! https://www.youtube.com/c/8bitsandabyte
Leave your feedback...