Source code for my "Give Plants a Voice" project that I created as part of Mark Rober's Creative Engineering course. Made together with my partner, Lisa Tassone.
On booting, I have set up the Raspberry Pi to start the main.py
script using a systemd service (I've included an example in the repo).
The script runs an infinite loop that continuously polls the moisture level and the motion detector to decide whether it needs to ask for water or say thank you.
It will continue getting more disgruntled the longer it goes without water. The time between escalating is configurable.
Because the moisture sensor can fluctuate a little bit, there is an upper and lower threshold. The level needs to drop below the lower threshold before it will start getting disgruntled, however the level will need to go above the upper threshold before it will say thank you. This avoids it flip-flopping between being happy and not happy.
I have also included an RGB LED to visually see roughly where the moisture level is, which is also a nice visual indicator that it's actually running!
- Raspberry Pi 2 Model B+
- Anker Soundcore Mini Speaker - This was the smallest and cheapest actively powered speaker with aux input that I could get in time for the course. Ultimately I'd like to get a hat for the Raspberry Pi with a small amplifier so that I could use a small passive speaker instead.
- MCP3008 Analog to Digital Convertor - The Raspberry Pi doesn't have an analog inputs like the Ardunio, which the moisture sensor needs to report the specific level (rather than a binary wet/not wet)
- Soil Moisture Sensor
- PIR Motion Detector Module
- RGB LED