Hand tools and fabrication machines
Ever wanted to get a pet but realize you're too irresponsible so you get a plant instead but then you end up killing the plant? Well, this one goes out to all you irresponsible plant owners out there to help you feel like you might somewhat have your stuff together. The Plant Babysitter monitors the moisture level of the soil in your plant baby and will automatically water the plant when the soil gets too dry.Overview:
The Plant Babysitter monitors the moisture level of the soil in your plant baby and will automatically water the plant when the soil gets too dry. It does so by activating a soil moisture sensor to measure the moisture level of whatever plant you insert the sensor into. If the moisture level is above a certain threshold, all is well and the system will remain unchanged. If the sensor reads that the moisture level is too low, it will activate a servo motor to rotate the small "watering can" to quench the plant's thirst. This cycle continues so the plant never remains thirsty for too long.
The main electronic hardware components consist of a PocketBeagle for the program processor, a SparkFun Soil Moisture Sensor to measure the moisture level in the plant's soil, a HiTEC Servo Motor HS-422 to activate the watering mechanism, and a TMP36 Temperature Sensor to measure the ambient temperature. The PocketBeagle is connected to the breadboard via external male headers and the top surface of the PocketBeagle has female headers connected, which enable other components to be connected easily. Jumper wires are used to connect the PocketBeagle with the soil moisture sensor, temperature sensor, and the servo. The moisture sensor is controlled by a gpio and reads the moisture level as an analog input. The temperature sensor also reads the temperature using an analog input. A more detailed description of the connections is outlined in the next section.
The fritzing diagram for the project is shown below.
Servo Motor Connections:
- PWM --> PWM2 (P2_3)
- GND --> GND (P2_21)
- VCC --> VOUT (P2_13)
Moisture Sensor Connections:
- SIG --> AIN6 3.3V (P1_2)
- GND --> GND (rail)
- VCC --> GPIO5 (P1_6)
Temperature Sensor Connections:
- VCC --> 3.3V (P2_23)
- SIG --> AIN5 3.3V (P2_35)
- GND --> GND (rail)
The Plant Babysitter's housing consists of a base with two legs that hold up an axle connected to the watering can that is turned by the servo. The base and stand legs are made of laser cut wood and the axle is a 1/4" wooden dowel. There is a 3D printed adapter that connects the axle to the servo motor and allows the two to turn synchronously.
1. Fill watering can
2. Place your plant on the X on the platform and place the moisture sensor in the soil. It is recommended that you cover the moisture sensor to protect it from getting watered. I used a small plastic dome, but a plastic bag will do.
3. Run the code (given below) from your computer.
4. Do nothing — your babysitter is now on duty! If the moisture level in the soil drops too low, the device will print "Moisture low, watering plant", and automatically switch on the servo, hence tip the watering can and watering the plant. It will then return to its original position, wait 1 minute, and check the moisture level again. If the soil is moist enough, the computer will print "All is well!" and will do nothing. This process continues until you terminate the program.
5. Refill the watering can. The watering can tips in such a way that a significant amount of water can be poured onto the plant, so it is recommended that only one "drink" be loaded at a time. A future iteration of this project could include connecting a water pump instead of a servo motor in order to water the plant with the desired amount of water each time.
To improve upon this project in the future, you could:
- Add another sensor. (A light sensor would be easy to add, as it is just another analog sensor.)
Controlling a servo with beaglebone black : https://learn.adafruit.com/controlling-a-servo-with-a-beaglebone-black/writing-a-program
Measuring Temperature with a beaglebone black: https://learn.adafruit.com/measuring-temperature-with-a-beaglebone-black/wiring