Make Your Plant Smile




This is a funny project that makes our plants “talk” to us. It’s very simple and you can create it in few hours. We use a sensor to read the soil moisture of our plant and a led matrix to dislay how the plant “feel”. You can use an ATtiny85 as a microcontroller.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Order Materials

Step 2: Wiring Instructions

To wire your ATtiny85 to your Sensor and the MAX7219, connect the following pins:

  • ATtiny85 Pin1 –> NC
  • ATtiny85 Pin2 –> Sensor A0 (Analog out)
  • ATtiny85 Pin3 –> NC
  • ATtiny85 Pin4 –> GND
  • ATtiny85 Pin5 –> MAX7219 DIN
  • ATtiny85 Pin6 –> MAX7219 CS
  • ATtiny85 Pin7 –> MAX7219 CLK
  • ATtiny85 Pin8 –> +5V

  • L78L05 Pin1 –> Output +5V
  • L78L05 Pin2 –> GND
  • L78L05 Pin3 –> Input from battery +9V

Don’t forget to connect all the GND together (Sensor, Attiny85, MAX7219). We suggest to connect and the two capacitors to your L78L05 (see the image on the right).

Step 3: Prepare the ATtiny

To program your microcontroller (ATtiny85) you will need an Arduino Uno or a Tiny AVR Programmer.

If you choose an Arduino Uno to program the ATtiny follow the steps below:

Connect the Arduino to the ATtiny as follows:

  • ATtiny85 Pin 8 – Arduino +5V
  • ATtiny85 Pin 4 – Arduino Ground
  • ATtiny85 Pin 1 – Arduino Pin 10
  • ATtiny85 Pin 5 – Arduino Pin 11
  • ATtiny85 Pin 6 – Arduino Pin 12
  • ATtiny85 Pin 7 – Arduino Pin 13
  • Electrolytic Capacitor 10uF GND – RST
  • If you haven’t already, download the Arduino software, version 1.0.4 (1.0.3 and 1.0.1 should work too, but not 1.0.2). Install the Arduino software, following the instructions for Windows or for Mac OS X.
  • Download the ATiny file.
  • Unzip the attiny file. It should contain an “attiny-master” folder that contains an “attiny” folder.
  • Locate your Arduino sketchbook folder (you can find its location in the preferences dialog in the Arduino software)
  • Create a new sub-folder called “hardware” in the sketchbook folder, if it doesn’t exist already.
  • Copy the “attiny” folder (not the attiny-master folder) from the unzipped ATtiny to the “hardware” folder. You should end up with folder structure like Documents > Arduino > hardware > attiny that contains the file boards.txt and another folder calledvariants.
  • Restart the Arduino development environment.
  • You should see ATtiny entries in the Tools > Board menu.

Next, we can use the Arduino as an ISP to upload a program to the ATtiny:

  • Upload to the Arduino the ArduinoISP from "File - Examples", now you are ready to program the ATtiny.
  • Download the Arduino code for your project and upload it to your ATtiny85

4 People Made This Project!


  • Instrument Contest

    Instrument Contest
  • Make it Glow Contest

    Make it Glow Contest
  • STEM Contest

    STEM Contest

20 Discussions


Reply 5 years ago on Introduction

Hi dudyash,

You can purchase MAX7219, below u can found a schematic. Also u can purchase


Reply 2 years ago


I like your project, so I decided to do a project on your project idea but I have questions, can use breadboard rather that prototyping board?

integrated circuit rather ATtiny 85?

Matrix LED – Is its alternative is LCD?


2 years ago

If there's still anyone seeing comments here, could use some help!

This is my first AtTiny project and I can't get the Tiny chip to run the plant smile code correctly. I finally do have an ISP set up that seems to work. I have tried with the tiny set to 1mhz, 8mhz (with bootloader) and while I can run the Blink sketch on a tiny, and it seems happy, when I drop the Tiny into my prototypes of the Plant Smile circuit, it doesn't control the main LED board.

I don't understand why the pin definitions in the example code don't match the Tiny's physical pins, and I've tried it both ways. When I try to do a Blink sketch that uses 'port 0' of the Tiny, it never works. Not sure why port 0 is used in the Plant Smile sketch, but again, i've tried it both ways (using ports 0, 1, 2 and 3 as in the example, and replacing them with the physical pin numbers 2, 5, 6 and 7 on the Tiny for Analog In, DIN/CS/CLK from the LED chip. Doesn't do anything either way.

Any help would be much appreciated. I have several Tinies, several breadboarded plant smiles, so some troubleshooting can be eliminated ie the Tiny is dead or whatever. It runs Blink just fine.



3 years ago

Hi ! Thank you for this, that's a great idea, and i wanted to do the same in the fablab i'm working (We always forget to water the plant ... --') but i have no ATtiny85 and i wanted to know if i can do the same just with an Arduino UNO only ? Thanks a lot <3


4 years ago

Hi. How long will a 9v battery last with this project please? I know it's been asked before but I can't see an answer and would like to know before making a couple for my Dad. Cheers, Don

Akin Yildiz

4 years ago on Introduction

can't believe i'm just seeing this post.. very nice indeed. are you familiar with my work.? i have many smart plant care instruments.!

few suggestions, a usb rechargeable power bank will eliminate the battery waste

and also by adding light and temperature sensors to your project you can collect even more valuable data..!

i would love to see an updated version from you - especially using an attiny. really nice work, thank you for sharing.!!


Reply 5 years ago on Introduction

the sensor is correct, and the max7219 is for anode col and cathode row




5 years ago on Introduction

Hi! very nice instructables :)

try this :)

unsigned char disp1[3][8]={
{0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}, // 0, happy
{0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C} // 2, sad


5 years ago

this is a very impressive project. the idea of it is great


Reply 5 years ago on Introduction

Thank you diy_bloke.

I mean that you connect the analog out (A0) of sensor to Attiny85 (analog in).


5 years ago on Introduction

This was a great post , Thanks admin <a href="">دانلود فیلم</a>