A "fun" home IOT project featuring an M5stack microcontroller with environment sensors and irrigation pump. The microcontroller also sends a Push Notification update on a mobile application stating the current temperature and humidity using Cloud Messaging via HTTP protocol through the microcontroller.
Like every plant parent that suffers a great deal of stress when leaving their plant babies alone at home while they are overseas, I have decided a DIY method using IOT to customise and solve my problem. I mean what could go wrong.......right?
*Insert nervous laughter*
TL;DR
My project worked! All my plants survived A Plant got hosed to death
Given that I am a helicopter plant parent, I had a few self-imposed requirements to the project. Hence the birth of the commandments to the project.
4 Commandments to this project.
- Thou shall receive information about the ambient temperature and humidity of the area via push notification.
- Thy plants shall each be dosed with their own quantity amount of water.
- Thou shall have vision to check in on thine plants. (Done using Home Security Camera)
- If thy microcontroller was to be plagued with a network error, thy watering shall still be done locally.
Intially I designed a serial pump system however with each outlet, the pressure of the water will drop as the water flows through it. This will result in very minimal water output for the terminal plant.
With Parallel system, water flow is split amongst X number of plants. Although each plant may receive less amount of water, this method will resolve with the drop of pressure flow which is found in serial method.
The project was made using Flutter with Firebase as a Backend as a Service and M5stack.
Cloud Message: Firebase Cloud Messaging HTTP protocol Microcontroller: Miro-Python
I came home to witness one my plants drowned. I've forgotten that the medium the plant was in had excellent water retention capacity and I probably shouldn't have watered the plants too fast.
On a sunnier note, I learnt a lot from this project.
- Serial vs Parallel Irrigation System
- Timing of watering was based on a timer which will periodically fetch the datetime from an API.
- Writing of code using Micro-python without standard libraries.