Introduction: Accessible IoT Plant

About: Head of Digital Jersey Academy but still teaching Computing to all ages. Passionate about EdTech. Apple Distinguished Educator, Google Certified Innovator & Microsoft Innovative Educator Expert.

There are quite a few types of self-watering plants but this one adds IoT services and accessibility into the mix. I have also kept the use to 3V rather than 5V to make it easier/cheaper for the classroom.

Supplies

  • Microbit V2 or V1
  • Microbit Shield (any will do)
  • Ultrasonic Sensor HC-SR04
  • ESP8266
  • 180 degree Servo SG90
  • Pipet or straw
  • 2 x Wooden skewers
  • 1 x Tooth pick (optional)
  • 3 small elastic bands
  • 2 x nails or screws
  • Electrical Tape
  • Scissors or clippers
  • Cup
  • Plant
  • 11 x female to female jumper wires (dupont)

Step 1: Sensing the Moisture

  • Connect your Microbit to the shield
  • Take 2 jumper wires, strip off the ends of one side each onto the nails with electrical tape.
  • Connect the wires to a 3V positive pin and pin 0 of the microbit
  • Then program the Microbit to read the moisture of the plant using Makecode

Step 2: Connecting to the Internet

  • Wire the ESP8266 to the shield using jumper wires
  • Make a copy of the wiring diagram in TinkerCAD circuits here
  • Search Makecode extensions for "ESP8266" and add the blocks
  • Follow the Makecode instructions above to connect the Microbot to the internet
  • Pin 16 for the RX and Pin 12 for the TX
  • Connect your sensor readings to ThingSpeak by creating a new Channel making sure you have the API keys
  • Follow the extra Makecode instructions
  • Make sure your sensors are recording data

Step 3: Accessibility

  • We are going to make a movement sensor for audio cues
  • Wire the Ultrasonic Sensor to the Microbit shield using the diagram
  • Trig to Pin 1 and Echo to Pin 8
  • Add the Sonar Extention to Makecode
  • Follow the Makecode instructions

Step 4: Self Watering

  • Add the self-watering mechanism using a servo
  • Use elastic bands (or glue if you prefer) to fix the two long wooden skewers to the servo
  • Use an optional toothpick to secure the elastic bands on the short side.
  • Cut a hole in the pipet (or use a straw with a bend) to act as a reservoir for water
  • Attach the pipet to a servo arm with elastic (or glue)
  • Add the Servo extension to Makecode
  • Follow the Makecode instructions
  • Attach the servo to Pin 2
  • Attach the mechanism to the plant or water cup. Whichever is easiest for your cup of water
  • Secure the legs of the mechanism with an elastic band around the cup or plant.
  • Experiment with the servo arm angles
  • YOURS WILL LIKELY BE DIFFERENT ANGLES TO MINE

Step 5: Analyse Your Measurements

  • Your measurements may be very different from mine
  • I have experienced ranges from 700-1000 for moisture levels using different shields and materials.
  • The temperature may also need to be tweaked by adding simple additions to the Makecode to add or take away degrees. As above.
  • Use the Thingspeak app Thingview to make a public or private page for your plant

Step 6: Extensions

Rather than use a pipet or straw improve the design using TinkerCAD 3D design.

Ideas for improvements:

  • Better watering mechanism
  • Using the data to predict the watering needs in a calendar
  • Adding notifications from Thingspeak into Amazon Alexa using IFTTT. Link here
  • Build an all in one 3D printed plant pot with water reservoir and holders for the Microbit and Sensors
  • Send tweets about your plants conditions on its own account. Link here

Step 7: Don't Have Any Kit?

You can use the "potato" battery to simulate the servo responses using the TinkerCAD circuits page if you do not have any kit on you.