Smart Planter

Another way we can use IoT is to monitor and care for our plants and pets when we are not at home.

In this project, we will create the electronics necessary to create a Smart Planter, that can monitor its own soil moisture and keep us up to date.

Level Widget

For the Planter, we can monitor the moisture level itself, so let's add a Level meter (Level H or Level V, up to you):

In the settings for the Level widget:

List of Parts

For this project you will need the following electronics from your kit beside the ESP32:

Connect

First, get your breadboard ready:

It is upside-down on purpose. I want Row 1 to be on the bottom.

Now, you need to attach the ESP32 to the breadboard.

Be VERY CAREFUL not to damage the pins when you do this:

Next, use a Female-to-Male jumper wire to connect the 3v3 (top left pin) from the ESP32 to the '+' column of the breadboard on the right hand side.

Then, use a Male-to-Male wire to connect the GND (top right pin) from the ESP32 to the '-' column on the right hand side.

The '+' may be the outermost column or the one just next to it. Or there may be no markings. Just pick one of those 2 outermost columns as (+) and one as (-) and connect as shown.

The wire colors are not important.

Next use 2 Male-to-Female connectors to connect the '-'/GND & '+' from the breadboard to the GND and VCC pins on the sensor board.

Use 1 Female-to-Female connector to and GPIO Pin 34 to the sensor board's AD pin as shown.

Finally, use 2 Female-to-Female connectors to connect the hygrometer to the board as shown (polarity is not important).

Use the short USB wire to connect the ESP32 to your laptop to power it up.

Coding

Start with Blynk Blink code

Open the Arduino application.

See the basic code for Blynk Blink - that will the starting point we assume for this project.

The code for Smart Planter needs to read pin 34 as Input, so we need to add the following line to the setup() function:

pinMode(34, INPUT);

We will then need to create a BLYNK_READ function for this Pin 34 value to send to the Level Widget (on V0, if that's what you chose):

BLYNK_READ(V0) {
  Blynk.virtualWrite(V0, 4095 - analogRead(34));
}

That's it! All you have to do is compile and upload these changes.

Compile & Upload

See instructions here

Test

To test, start your dashboard and make sure your electroncis and code are working.

You should see your Level meter at 0 when the hygrometer is at rest on a non-conducting surface like your table.

If you touch the two probe leads to the palm of your hand or one of your fingers, you should see some increase in Level.

If you dip it in water it should be near MAX (4095).

Challenges & Showcases