Overview

Turn your black thumb into a green thumb by building an internet-enabled plant monitoring system by combining Google Cloud IoT Core with CircuitPython.

This smart-planter monitors your plant's vitals on the PyPortal's screen, logs this data to a Google Cloud registry for long-term storage and even correctly waters your plants remotely by controlling a peristaltic water pump.

Using Google Cloud IoT with your CircuitPython IoT projects allows you to quickly prototype (and even mass-prototype) advanced internet-of-things devices and connect them to the Google Cloud Platform. 

Google Cloud IoT

Google Cloud IoT provides a complete solution for collecting, processing, analyzing, and visualizing data from IoT devices in real time:

  • Device management, with per-device authentication and management.
  • Data aggregation with Cloud IoT Pub/Sub 
  • Scalable - Google Cloud IoT is serverless and scales instantly.

Connecting CircuitPython to Google Cloud IoT unlocks over 100 products and services available from Google Cloud Services. Some of these services are especially useful with IoT projects, such as:

CircuitPython

CircuitPython is perfect for building Internet-of-Things projects. This project uses the ESP32SPI CircuitPython library, which can use the ESP32 as a WiFi-coprocessor.

We've built a CircuitPython Google Cloud IoT Core helper module to make interacting with Google's Cloud IoT MQTT Broker incredibly simple. Provisioning CircuitPython for Google Cloud IoT Core is as simple as adding your device's settings to a file. Our library even handles JSON Web Token (JWT) generation.

You can rapidly update your code without having to compile and store WiFi, device configuration, and secret keys on the device. This means that there's no editing code and re-uploading whenever you move the PyPortal to another network - just update a file and you're set. 

Prerequisite Guides

If you're new to CircuitPython, take a moment to walk through the following guides to get you started and up-to-speed:

Parts

Adafruit PyPortal - CircuitPython Powered Internet Display

PRODUCT ID: 4116
PyPortal, our easy-to-use IoT device that allows you to create all the things for the “Internet of Things” in minutes. Make custom touch screen interface...
$54.95
IN STOCK

Adafruit STEMMA Soil Sensor - I2C Capacitive Moisture Sensor

PRODUCT ID: 4026
Most low cost soil sensors are resistive style, where there's two prongs and the sensor measures the conductivity between the two. These work OK at first, but eventually...
$7.50
IN STOCK

Peristaltic Liquid Pump with Silicone Tubing - 12V DC Power

PRODUCT ID: 1150
Move fluid safely from here to there with this very nice little pump. Unlike most liquid pumps, this is a peristaltic type - the...
$24.95
IN STOCK

Materials

You'll need some extra parts and supplies to finish this project. If you do not have them already, pick some up from Adafruit.

1 x Female/Female STEMMA Cable
STEMMA Cable - 150mm/6" Long 4 Pin JST-PH Cable–Female/Female
1 x PN2222 Transistor
NPN Bipolar Transistors (PN2222) - 10 pack
1 x 1N4148 Diode
1N4148 Signal Diode - 10 pack
1 x 220 ohm resistor
Through-Hole Resistors - 220 ohm 5% 1/4W - Pack of 25
1 x Breadboard
Half-size breadboard
1 x Breadboarding Wire
Breadboarding wire bundle
1 x Female DC Power adapter
Female DC Power adapter - 2.1mm jack to screw terminal block
1 x 12VDC 1000mA Switching Power Adapter
12V DC 1000mA (1A) regulated switching power adapter
1 x PyPortal Stand
Adafruit PyPortal Desktop Stand Enclosure Kit
1 x USB Cable
Pink and Purple Braided USB A to Micro B Cable - 2 meter long
This guide was first published on Aug 28, 2019. It was last updated on Aug 28, 2019. This page (Overview) was last updated on Sep 16, 2019.