© Joe Howard, 2022
DIY Hydroponic System #1 - Foundations
August 23, 2022
A painting of a robot picking potatoes from a farm

This is part one of my blog about building an ESP32 based Internet of Things (IoT) connected hydroponic water vitals monitoring system. This blog series will be informal in nature, a place for me to record my thoughts as I go about the design and build of this project. After completion, I will post a more formal guide on how to build your own!

First things first...

What are the requirements for a hydroponic garden to be successful?

Having built a few hydroponic systems, I'm familiar with what requirements need to go into keeping your water optimal for your garden. To name a few:

  • pH
    • Note: The pH of your tap water can vary based on many factors, it's a good idea to take multiple readings of straight tap water and get a good determination on what the pH of your starting water is.
  • EC (Electrical Conductivity)
    • Note: There's two generally used formulas for calculating PPM from EC.
      • EC * 500, also known as ppm500 or TDS, is based on measuring NaCl or Sodium Chloride content of the water.
      • EC * 700, also known as ppm700 is based on measuring the KCl or Potassium Chloride content of the water.
  • Temperature
    • Note: Typically we want to keep this between 65 and 75 degrees. This is generally not a concern for indoor gardens.
  • Humidity
    • Note: This varies by plant and growth stage, but we will use between 50% and 70% humidity as a rule of thumb.
  • Light
    • Note: When picking lights, we want to use a full spectrum light with a tested and reviewed lumen output.
  • Water Level

These are the core tenants of keeping a hydroponic system happy. Easy enough, right? Let's keep going.

What are the requirements for a hydroponic garden to be IoT-connected?

This is a bit of a trick question. All an IoT device really needs to do is connect to a network and either pass back telemetry, or expose a method of device control. Here's a list of possibilities I see for this system:

  • Vitals Telemetry
    • pH
    • EC
    • ppm500
    • ppm700
    • Humidity
    • Temperature
    • Running Hours of Light
    • Water Level
  • Device Control
    • Lighting Cycles
      • By growth cycle
      • By plant variety
      • By season
      • Account for supplemental lighting (window light)
    • pH Adjustment (peristaltic pump)
      • pH up solution
      • pH down solution
    • Nutrient Dispenser (3-part nutrient solution kit)
      • FloraGro
      • FloraMicro
      • FloraBloom
    • Humidity Adjustment
    • Temperature Adjustment
    • Water Oxygenation
    • Water Refill

Okay... Let's scope it out

What is the "MVP" - Minimum Viable Product?

Our minimum viable product will accomplish two things:

  1. Sustain plantlife and function as a DWC garden
  2. Provide telemetry data via MQTT with readouts of the sensors

What parts do we need for this?

Starting with a simple system, namely the DWC (Deep Water Culture) style system will be the easiest route to completion. A DWC hydroponic system is essentially a regularly oxygenated reservoir in which multiple plants are suspended in nutrient solution. This requires a bucket, an air pump, and oxygen stone, that's it!

Expanding on the DWC system, we will also need some things for our IoT functionality. For constant measurement of pH and EC, we will need a long-term submersible pH and EC meter. Vladimir Akopyan has a fantastic article surveying the landscape of available, low-medium cost pH and EC sensors that interface with Arduino. From his findings and doing some research of my own, I have settled on the DFRobot lineup of sensors. These sensors are affordable, long lasting, and DFRobot's Wiki has a wealth of information on incorporating them into Arduino and ESP-based projects. As a benefit, DFRobot has since come out with a V2 that makes life a lot easier.

Additionally, we will need an ESP32 development board. In Akopyan's article, they mention needing to multiplex and combine the analog signals from the sensors, as the ESP8266 platform only has a single analog pin. The ESP32 has plenty of analog inputs (and with a development board we get an integrated ADC - Analog to Digital Converter that's strong enough to handle 0v-3.3v).


With the release of the Pro V2 sensors, DFRobot has lowered the output voltage to 0-3.3v and widened the input range from 3.3v-5v. This eliminates our need for an external ADC, as well as eliminating the need to split our voltage supply off between the sensors and the MCU, or step down the voltage from 5v to 3.3v.

Wrap-up...

The Parts List

  • Jumper wires
  • ESP32 Development Board
  • DFRobot pH Meter Pro V2
  • DFRobot EC Meter Pro V2
  • A large, open-top container for the reservoir
  • Nutrient solutions
  • Net Cups
  • Rockwool / Growing Medium
  • 3.3v Power Supply
  • Water Level Sensor

What's next?

Now... we wait! My parts are in the mail and I'll update this post with a link to the next blog shortly.

Thanks for reading and have a great day!

PS. Here's some fun I had with DALL-E-2 giving me product design inspiration

"robot picking potatoes from a field with a plant-filled skyscraper in the background, ukiyo-e"

"an indoor hydroponic system that looks like a modern table"

"a window hanging indoor hydroponic garden, hanging on a window"