Intelligent water quality and level monitoring system
Intelligent water quality and level monitoring system

Smart water quality monitoring!

Intelligent water quality and level monitoring system

The EzloPi smart devices provide automation through simple, customizable use with our open-source EzloPi platform, making daily life easier and improving human-machine interactions.

Before moving into this example, it is very important to know about the device registration, provisioning and converting the ESP32 device into an EzloPi device along with knowledge of Web Flasher, MiOS Mobile Application for Android/iOS and the MiOS Web Application.

1. About this example

This intelligent water quality and level monitoring system leverages the TS-300B turbidity sensor, two float switches, and an LED, all integrated with the EzloPi device. This system continuously monitors water turbidity to assess water quality, while the float switches detect high and low water levels to prevent overflow or dry conditions. The LED provides visual alerts for turbidity thresholds and water level statuses. With real-time data alerts and user-friendly controls, it offers an efficient solution for managing water systems in aquariums, water tanks, or reservoirs, ensuring optimal water quality and conservation.

3. Circuit Diagram & Interface

The following components are required for interfacing with the EzloPi device:

  • ESP32 as an EzloPi smart device.
  • 2 Float switches for both high and low levels.
  • LED with 100 Ohm resistor.
  • Single-channel relay module.
  • AC bulb and 220V AC plug

The wiring diagram of ESP32 30 pin is represented as follows:

The following connections are made in order to complete the circuit setup.

From ESP32 to Turbidity Sensor Interface Board:

ESP32 Interface Board
GND 1
D33 2
3V3 3

From Turbidity Sensor to Interface Board:

Turbidity Sensor Interface Board
IR G
TR A
VCC V

From ESP32 to both Float Switches:

ESP32 Float Switch 1 Float Switch 2
GND Terminal 1 Terminal 1
D15 Terminal 2 -
D4 - Terminal 2

From ESP32 to LED & Resistor:

ESP32 LED Resistor
GND Cathode -
D5 - Terminal 1
- Anode Terminal 2

From ESP32 to Relay module:

ESP32 Relay
VCC VCC
GND GND
D5 S

From ESP32 to Relay module:

ESP32 Bulb 220AC
COM NA Neutral
NO 1st Terminal NA
NA 2nd Terminal Phase

4. Interfacing the Turbidity sensor with EzloPi Web Flasher

1. Set up your device/hardware by visiting config.ezlopi.com

  1. Log in using the credentials which you just set earlier while signing up.
  1. Now, click on the Connect Device button and a pop-up window will appear.
  1. Now, select COM Port to which your ESP32 device is connected. In our case, the COM3 port is used.

Click Connect

  1. If you are new to this and it's your first time configuring, select Create new Device ID. Enter Wifi SSID and Wifi Password.
  2. In the Device Configuration, tab click on Analog Input.
  1. An Analog Input window will open for inputting the following parameters:
  • Set a Device name of your choosing. In our case, we set it to Turbidity.
  • Set Device Subtype to Turbidity Sensor.
  • Set the ADC input pin to 33.
  • Set the Resolution to 10-bit.
  • Then Click Apply Button.
  1. In the Device Configuration, tab click on Digital Input.
  1. A Digital Input window will be opened for inputting the following parameters:
    A Digital Input window will be opened for inputting the following parameters: Set a Device name of your choosing. In our case, we set it to Float Switch High. Set the Input GPIO pin to 15. Set  Device Subtype to Float Switch. Set the Resistor to PULL DOWN Then Click Apply Button.
  1. In the Device Configuration, tab click on Digital Input
  1. A Digital Input window will be opened for inputting the following parameters:
  • Set a Device name of your choosing. In our case, we set it to Float Switch High.
  • Set the Input GPIO pin to 15.
  • Set Device Subtype to Float Switch.
  • Set the Resistor to PULL DOWN
  • Then Click Apply Button.
  1. In the Device Configuration, tab click on Digital Output.
  1. A Digital Output window will open for inputting the following parameters:
  • Set a Device name of your choosing. In our case, we set it to LED.
  • Set Device Subtype to LED.
  • Set the OUT GPIO to 5.
  • Set the Resistor to PULL UP.
  • Then Click Apply Button.
  1. In the Device Configuration, tab click on Digital Output.
  1. A Digital Output window will open for inputting the following parameters:
  • Set a Device name of your choosing. In our case, we set it to Relay.
  • Set Device Subtype to Relay.
  • Set the OUT GPIO to 13.
  • Set the Resistor to PULL UP.
  • Then Click Apply Button.
  • After clicking the apply button you can see a table of your setting in the device configuration tab.
  • Press the Flash Device button.
  1. A window will appear on the bottom right side of the screen displaying “Please press BOOT button while flashing begins.”
  1. Hold the BOOT button down until the next window appears on the bottom right side of the screen which says “Installation prepared. Please release the boot button now.”
  1. Release the BOOT button from your ESP32 when this pop-up on the bottom right window appears.
  1. After some time, a popup will appear saying Device Flashed Successfully! This means that your device has been set up successfully.

5. MiOS Web Dashboard

  1. After configuring the controller with the EzloPi web flasher, head to ezlogic.mios.com
  1. Use the same credential to log in that you used for configuring the controller with the web flasher.
  1. Here, on the MiOS web dashboard, you will be able to see the tiles of connected devices. In our case, we have five visible tiles for the different devices. Two float switches are used for high low water level monitoring whereas the turbidity sensor is used to monitor the water quality or cleanliness of water. The relay is used for refilling the water storage tank while the LED is used for water filter indication if it is ok or needs to be replaced.

MeshBots:

  1. On the left side of the screen under Automation, click on MeshBots.
  2. On meshbot screen, click on Create new MeshBot button present on the top right corner of the screen.
  3. After clicking on Create new MeshBot, you will see this now under Automation MeshBot click on Ezlopi.
  1. On the next screen you will see that we can create a name of our choosing, in this case we write it as Test011.
  1. In the trigger tab you can set the TRIGGER for your device and in the ACTION tab you can set the action to be performed based on the trigger which you have created.
  1. Set these things in TRIGGER section:
  • Set Node Type to Device.
  • Set the Node to Float Switch Low.
  • Set the Armed State to any.
  • Set the Value to water_level_above_high_threshold.
  • Add another Device by pressing the Add Trigger button.
  • Set Node Type to Device.
  • Set the Node to Float Switch Low.
  • Set the Armed State to any.
  • Set the Value to water_level_above_low_threshold.
  1. Set these values in the TRUE part of the ACTION section.
  • Set Node Type to Device.
  • Set Controllable to Relay.
  • Set the Capability to switch.
  • Set the value to true.
  1. Set these values in the FALSE part of the ACTION section.
  • Set Node Type to Device.
  • Set Controllable Type to Relay.
  • Set the Capability to switch.
  • Set the value to false.
  • After clicking the apply button you can see a table of your setting in the Current configuration tab.
  1. After clicking the save button you can see this screen on the top right corner of the screen.
  2. Here, you can see your saved MeshBot. Now again click on Create new Meshbot.
  3. After clicking on Create new MeshBot, you will see this now under Automation MeshBot click on EzloPi.
  4. On the next screen you will see that we can create a name of our choosing, in this case we write it as Test012.
  1. In the trigger tab you can set the TRIGGER for your device and in the ACTION tab you can set the action to be performed based on the trigger which you have created.
  1. Set these things in TRIGGER section:
  • Set Node Type to Device.
  • Set the Node to Float Switch High.
  • Set the Armed State to any.
  • Set the Value to water_level_above_high_threshold.
  1. Set these values in the TRUE part of the ACTION section.
  • Set Node Type to Device.
  • Set Controllable to Relay.
  • Set the Capability to switch.
  • Set the value to true.
  1. Set these values in the FALSE part of the ACTION section.
  • Set Node Type to Device.
  • Set Controllable Type to Relay.
  • Set the Capability to switch.
  • Set the value to true.
  • After clicking the apply button you can see a table of your setting in the Current configuration tab.
  1. After clicking the save button you can see this screen on the top right corner of the screen.
  2. Here, you can see your saved MeshBot. Now again click on Create new Meshbot.
  3. After clicking on Create new MeshBot, you will see this now under Automation MeshBot click on EzloPi.
  4. On the next screen you will see that we can create a name of our choosing, in this case we write it as Test013.
  1. In the trigger tab you can set the TRIGGER for your device and in the ACTION tab you can set the action to be performed based on the trigger which you have created.
  1. Set these things in TRIGGER section:
  • Set Node Type to Device.
  • Set the Node to Turbidity.
  • Set the Capability to Water filter replacement alarm.
  • Set the Armed State to any.
  • Set the Value to repace_water_filter.
  1. Set these values in the TRUE part of the ACTION section.
  • Set Node Type to Device.
  • Set Controllable to LED.
  • Set the Capability to switch.
  • Set the value to true.
  1. Set these values in the FALSE part of the ACTION section.
  • Set Node Type to Device.
  • Set Controllable to LED.
  • Set the Capability to switch.
  • Set the value to false.
  • After clicking the apply button you can see a table of your setting in the Current configuration tab.
  1. After clicking the save button you can see this screen on the top right corner of the screen.
  1. Here, you can see your saved MeshBot. Now click on Dashboard.
  1. On the MiOS web dashboard, we can see the Float switch Low is showing message
    ‘water_level_above_high_threshold, which means that water level is below our low limit so we need to turn on the pump to refill the water in the tank that's why it is depicted that Relay is turned ON to show running of motor or pump, this logic is set in meshbot.
  1. Now, In this scenario, we can see the Float switch High is showing message ‘water_level_above_high_threshold, Which means that water level is going above our high limit so we need to turn off the running motor or pump to make sure that tank does not overflow so it is shows here that Relay is turned OFF to show turning off of motor or pump, this condition is set in meshbot.
  1. When the water is not clear or impurities have increased, the tile will display the ”replace water filter” message. So, in the above pic the turbidity tile is showing "replace water filter” message therefore LED turns ON because of the meshbot conditions.

6. MiOS App

You can download the MIOS Android app from the Google Play Store and Apple App Store.

Google PlayApple App Store

  1. After downloading the app, proceed to install the application and open it.
  1. Using the MIOS mobile application, create a new Ezlo Cloud account using the sign-up option. If you already have an account, you may proceed to log in.
  1. After successfully logging in, you will be able to see the number of controllers connected such as a lamp, fan, or any other device in the MiOS app. Tap on any controller of your desired ID:
  1. You will be able to see the status of your controller whether it is online or offline. Access the device dashboard, and tap the device. The following view of the dashboard will appear:
  1. On the MiOS mobile dashboard, we can see the Float switch Low is showing message
    ‘water_level_above_high_threshold, which means that water level is below our low limit so we need to turn on the pump to refill the water in the tank that's why it is depicted that Relay is turned ON to show running of motor or pump, this logic is set in meshbot.
  1. Now, In this scenario, we can see the Float switch High is showing message ‘water_level_above_high_threshold, Which means that water level is going above our high limit so we need to turn off the running motor or pump to make sure that tank does not overflow so it is shows here that Relay is turned OFF to show turning off of motor or pump, this condition is set in meshbot.
  1. When the water is not clear or impurities have increased, the tile will display the ”replace water filter” message. So, in the above pic the turbidity tile is showing "replace water filter” message therefore LED turns ON because of the meshbot conditions.
Buy Components

eZlopie Products A single-channel 5V relay module $00.00

eZlopie Products Momentary switch $00.00

eZlopie Products Level Shifter Module (BSS138) $00.00

eZlopie Products ESP32
$00.00

eZlopie Products AC Lamp and Holder
$00.00