🌱 the sassy plant 🌱
behind the scenes of building an AI-powered, sassy speaking plant
February 16, 2026
by findingLuisa.com
Intro
Last summer I tried gardening for the very first time. Armed with recycled coffee cups and cheap soil, I germinated store-bought seeds, tracked frost dates and planted the surviving seedlings in my small yard.

I quickly realized that plants displayed different personalities depending on their specific care needs. Tomatoes and marigolds almost craved a bit of neglect, while basil and roses showed me the middle leaf and dramatically wilted whenever the pH level wasn’t just right.

If basil could speak, she would surely be a cranky one, always complaining about something! So when I came across the voice AI hackathon, I thought: why not use AI to make a sassy plant talk?


The Sassiest of Houseplants
Meet the one and only, Lady Monstera Deliciosa! She is native to the tropical forests of southern Mexico and is also known as the “Swiss cheese plant” due to the holes or “eyes” that develop in her leaves, resembling the holes in Emmental cheese.

With her dramatic and "cheesy" green leaves, it was easy to pick my Monstera plant as the perfect talking, sassy plant!
Tech Details
In order to understand the plant's state at any point in time, I connected a phototransistor and a soil moisture sensor to an Arduino. Here are the schematics:
Arduino schematics with light and water sensors
🟦
Fig. 1 - Arduino Setup
  • The moisture sensor (MS) connects the plant to the Arduino (A) via a 3.3V voltage and outputs data on A0.
  • The phototransistor (P) connects to 5V on Arduino (A) through a 10Ω resistor. Data is read on the analog output A2.

The Arduino collects the sensors' data and sends it to the backend (a Python FastAPI application) via asynchronous serial communication. The data is then processed and displayed in React on the frontend. I used a combination of WebSockets and HTTP for communication across the stack. I am fairly new to WebSockets, so it was really cool implementing a two-way communication channel between backend and frontend.

I used GPT-4o by OpenAI to handle text-to-speech (TTS) communication and give Lady Monstera her voice.


From Sensors to Speech
Seeing the plant’s internal state update in real time was absolutely thrilling! I tracked water and light changes over 5-second intervals, and let the plant comment on significant state changes. Here is how Lady Monstera recently handled an abrupt dimming of the lights:

And here is how she reacted to being watered!
Notice how she records and updates the last time she was watered - just another way to remind you how sassy she is, and how she won’t forgive you for forgetting to water her!


Reflections and Future Opportunities



Thank You, Fellow Hackers!
The Waterloo Voice AI Hackathon was my first real-world hackathon and I loved every minute of it. Coding next to other hackers, exchanging ideas and simply absorbing the energy and enthusiasm in the room has left an indelible mark on me. It has given me the confidence to keep building, no matter how silly or small the initial idea might seem.

A big thank you to the organizers and judges, in particular Ian Pilon, Mike Bird, Ti Guo and Prabal Gupta for your dedication and support.

Keep hacking and see you all at the next one!


NOTE
As a rule of green thumb (yes, I am proud of this one 🙈), don't leaf your plants unattended for too long. Also, singing to them improves their greenery and promotes luscious, beat-loving leaves!
monstera leaf