Introduction: Planter - Smart Solution for Your Favorite Flower

Hello My Friend!

The idea of this project is not new and there are so many existing rather good projects. Many people are trying to build their own systems for the smart planting in various combinations of sensors tools and materials. Initially I was thinking that I could just buy smart flower pot for my flower, but then decided to have more fun with creating it. My understanding was that it should be rather simple to do and should not take much time. I have started my work with full of enthusiasm and creativity and while working realized that it is no so simple as expected, however, I was able to complete it at some point and now would like to share it with creators community to get some feedback and help to those who would like to create their own smart flower pot.

Supplies

  • Node MCU (ESP8266)
  • Capacitive Soil Moisture Sensor v1.2
  • Temperature & Humidity Sensor (DHT11)
  • OLED 128x64 I2C Display (SSD1306)
  • Touch Button (TTP223)
  • Small LED
  • Double sided circuit board (50x60 mm)
  • Wires, Solder and board connectors
  • 3D Printer - there are some printable parts

Where to buy ? I've ordered all parts from aliexpress, links are below:

Step 1: Pot Design

For the Flower Pot design I've used Fusion 360, the idea was to keep it simple for the better printing and not spend much time, it took me a couple of hours to build a model. The shape of the box is simple rectangular trapezoid and inside of it cylinder cup with the bottom cover. During the design I've considered several things: the size should not be rather big because I would like to put it near my laptop, also I didn't reserve any space for the power battery as plan to power it from usb hub. Here is the parts overview

All STL models can be easily printed with PLA plastic 0.75mm extruder, 20% infill.

Step 2: Electonics

That was an interesting stage of the work. How it works: it requires to have all electronic components connected with each other and checked to work properly. I've used mount board and jump wires for the initial setup and testing. Connection schema is not rather complicated but requires your attention. The following board pins were used:

  • Moisture data pin -----> A0
  • DHT11 data pin ------> D7
  • LED pin -----------------> D5
  • OLED Display SDA --> D1
  • OLED Display SCL --> D2

VCC and GND are connected according to board +3.3V and GND Pins.

Step 3: Assembling

1. Moisture sensor

To start moisture sensor assembling, it is required to carefully glu it inside of a cup to prevent water from entering to electronics box, so better to check tightness before assembling other parts.

2. OLED Display

I've used hot glue to fix display inside front frame of the box, all wire contacts are glued, this is additional protection from the water.

3. Electronics

Initially I've soldered all electronics before mount and have some luck with wires length, so check several times if there is enough length for the wires and parts, for the touch button and display you may need to have longer wires. Board itself is placed at the bottom of the case and also glued. Touch button was fixed with the tape on the top right side (opposite side from DHT11 sensor), it is not visible so you may put it where you like. DHT11 sensor was installed in to mount slot.

4.Top Case and Cup

Time to put cup inside of top case, do not push it till the end, leave some space to connect sensor wires, only after that it can be finally fixed.

5. Bottom cover

2 screws M3-10 mm are required to fix the cover to the top case. You may also need sandpaper to fit parts together.

Step 4: Programming

Github Project

Project consists of several parts. One is related to the device work esp8266, another one is the client part that helps visualize data from sensors. For the programming I've used VS code with the Arduino extension.


Arduino sketch

In order to use sketch you need to create Secrets.h file and put values in it

#define SSID "YOUR_WIFI_SSID"

#define PASSWORD "YOUR_WIFI_PASSWORD"

#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"

#define FIREBASE_HOST "YOUR_PREJECT.firebaseio.com"

#define PLANTER_PATH "planters/planter-1"


UI Web App

Web application is hosted under goole firebase so to be able to run and deploy you need to have your own .env file with secret keys inside just place it to the ui project root dir

REACT_APP_API_KEY=

REACT_APP_AUTH_DOMAIN=

REACT_APP_DATABASE_URL=

REACT_APP_PROJECT_ID=

REACT_APP_STORAGE_BUCKET=

REACT_APP_MESSAGING_SENDER_ID=

REACT_APP_ID=

REACT_APP_MEASUREMENT_ID=

My instance of web app is running at planter-7c69c.web.app

Google Firebase Setup

Serverless IoTs with Firebase Realtime Database and ESP8266 - Part 1

First Time Author Contest

Participated in the
First Time Author Contest