In this project, we will build a smallΒ smart plant monitor using the Kypruino board, a 0.96" OLED screen, and a few simple sensors. The monitor reads the plantβs soil moisture, ambient light, air temperature, and humidity, then displays a friendly animated mood face and care advice on the screen.
This guide is written so that beginners can follow along. You do not need advanced electronics experience, but you should be comfortable connecting simple modules to a microcontroller and uploading an Arduino sketch.
What the project does
The smart plant monitor checks the conditions around a small potted plant and displays them through three OLED screens:
- Mood screen: shows a large animated face based on the plantβs comfort score
- Sensor screen: shows soil moisture, light, temperature, humidity, and VPD
- Advice screen: suggests what the user should do next
The project can detect conditions such as:
- Soil is dry and the plant may need water
- Soil is too wet and should be left to dry
- Ambient light is low over a 24-hour period
- Air is too dry, based on temperature and humidity
- The plant is generally happy and needs no action
Components needed
For this build, you will need:
- 1 Γ Kypruino board
- 1 Γ 0.96" I2C OLED screen, usually SSD1306 128Γ64
- 1 Γ Capacitive soil moisture sensor
- 1 Γ Analog light sensor module
- 1 Γ AHT10 temperature and humidity sensor
- Jumper wires
- USB-C cable for programming/power
- 3D-printed plant pot or enclosure
- A small plant suitable for a compact pot

Recommended small plants
This project is intended for small potted plants. In the code, the user can choose a plant care profile depending on the type of plant being monitored.
- Dry-loving plants: small cactus, succulents, aloe, echeveria, haworthia, jade plant, kalanchoe, small sedum
- Bright herbs: basil, parsley, coriander/cilantro, small edible herbs; mint can also work but may need repotting more often
- Balanced houseplants: pothos cuttings, peperomia, spider plant, small philodendron, baby rubber plant
- Flowering plants: carnations, African violet, small geranium/pelargonium, primrose; some begonias also fit but may prefer higher humidity
- Humid-loving plants: small ferns, fittonia/nerve plant, baby tears, small calathea-style plants
- Orchid / airy media plants: mini orchids and small phalaenopsis orchids grown in bark or airy orchid media
These categories are meant as beginner-friendly care profiles rather than exact botanical rules. If your plant has specialist care requirements, use the custom profile in the code and adjust the thresholds manually.
How the sensors are used
Soil moisture sensor
The capacitive soil moisture sensor is inserted into the soil. It gives an analog reading that changes depending on how much moisture is around the sensing area.
The sensor should be inserted so that the long sensing part is in the soil, while the small electronics section at the top stays above the soil and away from direct water.
Light sensor
The light sensor module is used to measure ambient light around the pot. In this project, it is not trying to perfectly measure the exact light hitting every leaf. Instead, it gives the system a general idea of whether the plantβs location is bright or dim.
Use the analog output pin of the light sensor module, usually labelled AO or AOUT. Do not use the digital output pin for this project.
AHT10 temperature and humidity sensor
The AHT10 measures the air temperature and humidity around the plant. These readings are also used to calculate VPD, which is an estimate of how strongly the air is pulling moisture from the plant.
Wiring the project
Connect the modules to the Kypruino as shown below.
OLED screen
Connect the OLED screen to the dedicated OLED port on your Kypruino board, making sure the orientation of the connector matches the pin labels.
| OLED Pin | Connects to Kypruino |
|---|---|
| VCC | VCC |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
Capacitive soil moisture sensor
| Soil Sensor Pin | Connects to Kypruino |
|---|---|
| VCC | 5V |
| GND | GND |
| AOUT / AO | A0 |
Light sensor module
| Light Sensor Pin | Connects to Kypruino |
|---|---|
| VCC | 5V |
| GND | GND |
| AO / AOUT | A1 |
| DO / DOUT | Not used |
AHT10 temperature and humidity sensor
| AHT10 Pin | Connects to Kypruino |
|---|---|
| VCC | VCC |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
Important: Both the OLED and AHT10 use I2C, so they share the same SDA and SCL lines. This is normal, as long as the devices have different I2C addresses.

Installing the Arduino libraries
Before uploading the code, install the required libraries in the Arduino IDE.
- Open the Arduino IDE
- Go to Sketch β Include Library β Manage Libraries...
- Search for and install Adafruit SSD1306
- Install Adafruit GFX Library
- Install Adafruit AHTX0
- Install Adafruit BusIO if it is not installed automatically
Uploading the code
Connect the Kypruino to your computer using a USB-C cable. Open the Arduino IDE, select the correct board and port, then upload the smart plant monitor sketch.
At the top of the code, you can choose the plant care profile by uncommenting one profile line. Make sure only one profile is active at a time.
// #define PROFILE_DRY_LOVING
// #define PROFILE_BRIGHT_HERB
#define PROFILE_BALANCED_HOUSEPLANT
// #define PROFILE_FLOWERING
// #define PROFILE_HUMID_LOVING
// #define PROFILE_ORCHID_AIRY
// #define PROFILE_CUSTOM
For example, if you are using a small carnation, you can select:
#define PROFILE_FLOWERING
and comment out the other profiles.
Understanding the OLED screens
1. Mood screen
The main screen shows a large animated face. The face changes depending on the plantβs comfort score. The score is based on soil moisture, temperature, air dryness, and daily ambient light.
Mood 86% Happy
2. Sensor information screen
This screen shows the key readings in a compact format.
Soil: 62% good
Light: 74% live
24h: learning 18h
Air: 24.6C 51% Hum
VPD: normal 1.12kPa
3. Suggested action screen
This screen tells the user what action to take.
Water
soon
Soil drying
Water gently
What is VPD?
VPD stands for Vapor Pressure Deficit. It combines temperature and humidity into a single air dryness indicator.
A high VPD means the air is pulling moisture more strongly from the plant and soil. A normal VPD means the air conditions are more comfortable. In this project, VPD is used as a supporting feature, while soil moisture remains the most important reading.
Why use a 24-hour light average?
A plant naturally experiences darkness at night. If the system judged light only from the live reading, it would warn about low light every evening. To avoid this, the monitor shows live ambient light immediately, but it only uses light in the comfort score after collecting a 24-hour average.
This makes the light judgement more realistic. The first 24 hours are treated as a learning period.
Assembling the smart pot
Once the circuit is working on your desk, you can place it into the 3D-printed pot design.
- Slide or mount the Kypruino and OLED onto the flat side of the pot
- Place the light sensor in the slot to the right where it can see ambient room light
- Place the AHT10 in the slot to the left where it can measure air, away from direct water splashes
- Insert the soil moisture sensor into the soil
- Keep sensor cables neat and away from the plant roots where possible
- Make sure the USB-C port remains accessible for power and reprogramming
Important: Keep the electronics away from water. The soil moisture probe is designed to go into the soil, but the Kypruino, OLED, AHT10 module, and light sensor should remain dry.



What students can learn
This project introduces several important STEM concepts:
- Analog input readings
- I2C communication
- OLED graphics and simple animation
- Environmental monitoring
- Derived features such as VPD
- Weighted scoring
- Conditional logic and thresholds
- 3D design for electronics integration
- User interface design for small displays
It also teaches an important engineering idea: sensor readings often need to be interpreted before they become useful information.
Possible extensions
- Add NeoPixel colour feedback for quick visual status
- Add a buzzer for rare warning alerts
- Add WiFi logging or notifications
- Add a button to switch between plant profiles
- Store the 24-hour light history so it survives power loss
- Create different 3D-printed shells for different plant types
Final thoughts
This smart plant monitor turns a small plant pot into an interactive environmental sensing project. It combines simple sensors, a Kypruino board, OLED graphics, and a 3D-printed enclosure to create a useful and approachable STEM build.
The animated face makes the pot feel alive, while the information and advice screens keep the project practical. With a few sensors and some thoughtful code, even a plant pot can learn to communicate.
