TK 172922
TK 172922
Abstract:
The IoT-Enabled Advanced Water Quality Monitoring System is designed to optimize pond
management and promote environmental conservation by leveraging IoT technologies and
real-time sensor data. The system integrates a range of sensors, including the DS18B20
temperature sensor, pH sensor, Total Dissolved Solids (TDS) sensor, and turbidity sensor, to
monitor critical water quality parameters. An Arduino microcontroller acts as the central unit,
interfacing with an I2C LCD for on-site data display and a GSM module for remote alerts when
abnormal conditions are detected. The NodeMCU module ensures Wi-Fi connectivity,
enabling real-time data upload to a cloud platform for analysis and visualization. A buzzer
provides immediate alerts for threshold violations, facilitating quick intervention. This system
enhances aquatic ecosystem health by preventing fish mortality, water contamination, and algal
blooms, while reducing manual monitoring efforts. It provides a scalable, cost-effective, and
sustainable solution for water quality assessment, supporting biodiversity conservation and aligning
with environmental sustainability goals. A buzzer provides immediate alerts for threshold violations,
facilitating quick intervention. This system enhances aquatic ecosystem health by preventing fish
mortality, water contamination, and algal blooms, while reducing manual monitoring efforts. It
provides a scalable, cost-effective, and sustainable solution for water quality assessment, supporting
biodiversity conservation and aligning with environmental sustainability goals.
INTRODUCTION
Introduction:
User interface
Embedded system
Software Hardware
Inputs Output
Embedded system/Embedded:
1. Hardware
2. Software
Timers Memory
Power
Application
supply and
Processor Serial specific
oscillator
communication circuits
circuits
ports
Interrupt Parallel
controller ports
Embedded systems employ a variety of processors to fulfill their intended functions. Several
processors are utilized, including
1. Microprocessor
2. Microcontroller
Microprocessor
Single-chip CPU.
Configurable with necessary ROM, RAM, and I/O ports.
Higher cost attributed to external peripherals.
Physically larger in size.
Designed for general-purpose applications.
Microcontroller
Single-chip computer
Predetermined on-chip allocation for ROM, RAM, and I/O ports
Economical
Compact dimensions
Designed for specific purposes
Typically, source codes for embedded systems are composed in assembly language; however,
processors execute only the resulting executable files. The conversion of the source code
representation of embedded software into an executable binary image encompasses three distinct
steps:
Every source file needs to undergo compilation or assembly to generate an object file.
Subsequently, all the object files produced in the initial phase must be interconnected through
linking, resulting in a single object file referred to as the re-locatable program. In the relocation
process, relative offsets within the re-locatable program are assigned physical memory
addresses. The outcome of this final step is a file comprising an executable binary image that
is prepared for execution on the embedded system.
Source code
Assembler
Linker
Locator
Executable file
Processor
Applications:
Embedded systems find diverse applications across various domains. Some notable instances
include smart cards, telecommunications, satellites, missiles, digital consumer electronics,
computer networking, and more.
Telecommunications
Mobile computing
Networking
Wireless Communications
Smart Cards
Banking
Telephone
Security Systems
Implementation flow:
Stage 1:
Addressing the limitations present in current approaches, our solution offers a resolution to
these issues by taking into account the fundamental prerequisites for our proposed system.
Stage 2:
Examining the hardware prerequisites of the envisaged system, the selection of the following
components is imperative:
1. Microcontroller
2. Inputs essential for the proposed system (e.g., sensors, drivers, etc.)
Stage 3:
LITERATURE REVIEW
Abstract: This survey explores the transformative impact of IoT in healthcare, highlighting its
ability to enable real-time health monitoring and data collection. IoT systems facilitate the
continuous tracking of vital parameters such as heart rate, respiratory rate, body temperature,
and blood oxygen levels, offering valuable insights for healthcare providers. The study
emphasizes the role of IoT in revolutionizing remote health monitoring, particularly in
underserved areas, by eliminating the need for direct human intervention and enhancing access
to healthcare services. The authors also discuss the technological advancements, challenges,
and future directions of IoT applications in healthcare.
Abstract: To ensure the safe supply of drinking water the quality should be monitored in real time for
that purpose new approach IOT (Internet of Things) based water quality monitoring has been proposed.
In this paper, we present the design of IOT based water quality monitoring system that monitor the
quality of water in real time. This system consists some sensors which measure the water quality
parameter such as pH, turbidity, conductivity, dissolved oxygen, temperature. The measured values
from the sensors are processed by microcontroller and this processed values are transmitted remotely
to the core controller that is raspberry pi using Zigbee protocol. Finally, sensors data can view on
internet browser application using cloud computing.
Title: WATER QUALITY MONITORING SYSTEM
Abstract : This paper introduces a water quality monitoring system that integrates IoT and Machine
Learning to assess the suitability of water for consumption. Sensors measuring TDS, pH, and turbidity
collect data from various water sources, which is then transmitted to a cloud server for processing.
Machine Learning models, including Support Vector Machine (SVM), Random Forest (RF), and
Extreme Gradient Boosting (XGBoost), classify water quality, with XGBoost achieving the highest
accuracy of 95.12%. The system provides a reliable, data-driven approach to water quality assessment,
contributing to environmental conservation, public health, and rural development.
EXISTING METHOD
Existing IoT-based water quality monitoring models, such as AquaSense and Smart Water
Monitoring Systems (SWMS), leverage sensors like pH, temperature, turbidity, and TDS
sensors to monitor critical parameters in real time. These systems integrate GSM, Wi-Fi, or
LoRaWAN modules for seamless data transmission to cloud platforms, enabling analysis,
visualization, and remote alerts. Solutions like IoT-Based Smart Aquaculture focus on
improving aquaculture pond management by tracking dissolved oxygen, temperature, and pH
levels to prevent harmful conditions, while commercial systems like Libelium’s Real-Time
Water Quality Monitoring utilize advanced sensors and IoT protocols for broader industrial
and environmental applications.
• The proposed method for the **IoT-Enabled Advanced Water Quality Monitoring
System** involves the integration of multiple sensors and IoT technologies to provide
continuous, real-time monitoring of water quality in ponds. The system uses an Arduino
microcontroller to collect data from the DS18B20 temperature sensor, pH sensor, TDS
sensor, and turbidity sensor. This data is displayed locally on an I2C LCD and
transmitted to a cloud platform via the NodeMCU’s Wi-Fi connectivity for further
analysis and visualization. In the event of parameter deviations, the GSM module sends
remote alerts, and the buzzer triggers local warnings. This method ensures efficient,
automated, and scalable monitoring, offering timely interventions to maintain water
quality and support environmental conservation.
BLOCK DIAGRAM:
ADVANTAGES AND APPLICATIONS
Advantages:
Applications:
SOFTWARE REQUIREMENTS
Arduino IDE:
Arduino IDE where IDE stands for Integrated Development Environment – An official software
introduced by Arduino.cc, that is mainly used for writing, compiling and uploading the code
in the Arduino Device. Almost all Arduino modules are compatible with this software that is
an open source and is readily available to install and start compiling the code on the go.
Arduino IDE is an open source software that is mainly used for writing and compiling the
code into the Arduino Module.
It is an official Arduino software, making code compilation too easy that even a common
person with no prior technical knowledge can get their feet wet with the learning process.
It is easily available for operating systems like MAC, Windows, and Linux and runs on the
Java Platform that comes with inbuilt functions and commands that play a vital role for
debugging, editing and compiling the code in the environment.
A range of Arduino modules available including Arduino Uno, Arduino Mega, Arduino
Leonardo, Arduino Micro and many more.
Each of them contains a microcontroller on the board that is actually programmed and
accepts the information in the form of code.
The main code, also known as a sketch, created on the IDE platform will ultimately
generate a Hex File which is then transferred and uploaded in the controller on the board.
The IDE environment mainly contains two basic parts: Editor and Compiler where former
is used for writing the required code and later is used for compiling and uploading the code
into the given Arduino Module.
You can download the Software from Arduino main website. As I said earlier, the software is
available for common operating systems like Linux, Windows, and MAX, so make sure you
are downloading the correct software version that is easily compatible with your operating
system.
If you aim to download Windows app version, make sure you have Windows 8.1 or
Windows 10, as app version is not compatible with Windows 7 or older version of this
operating system.
1. Menu Bar
2. Text Editor
3. Output Pane
As you download and open the IDE software, it will appear like an image below.
The bar appearing on the top is called Menu Bar that comes with five different options as
follow
File – You can open a new window for writing the code or open an existing one. Following
table shows the number of further subdivisions the file option is categorized into.
As you go to the preference section and check the compilation section, the Output Pane will
show the code compilation as you click the upload button.
And at the end of compilation, it will show you the hex file it has generated for the recent
sketch that will send to the Arduino Board for the specific task you aim to achieve.
Edit – Used for copying and pasting the code with further modification for font
Sketch – For compiling and programming
Tools – Mainly used for testing projects. The Programmer section in this panel is used for
burning a bootloader to the new microcontroller.
Help – In case you are feeling skeptical about software, complete help is available from
getting started to troubleshooting.
The Six Buttons appearing under the Menu tab are connected with the running program as
follow.
The check mark appearing in the circular button is used to verify the code. Click this once
you have written your code.
The arrow key will upload and transfer the required code to the Arduino board.
The button appearing on the top right corner is a Serial Monitor – A separate pop-up
window that acts as an independent terminal and plays a vital role for sending and
receiving the Serial Data. You can also go to the Tools panel and select Serial Monitor, or
pressing Ctrl+Shift+M all at once will open it instantly. The Serial Monitor will actually help
to debug the written Sketches where you can get a hold of how your program is operating.
Your Arduino Module should be connected to your computer by USB cable in order to
activate the Serial Monitor.
You need to select the baud rate of the Arduino Board you are using right now. For my
Arduino Uno Baud Rate is 9600, as you write the following code and click the Serial
Monitor, the output will show as the image below.
The main screen below the Menu bard is known as a simple text editor used for writing the
required code.
The bottom of the main screen is described as an Output Pane that mainly highlights the
compilation status of the running code: the memory used by the code, and errors occurred in
the program. You need to fix those errors before you intend to upload the hex file into your
Arduino Module.
More or less, Arduino C language works similar to the regular C language used for any
embedded system microcontroller, however, there are some dedicated libraries used for
calling and executing specific functions on the board.
Libraries:
Libraries are very useful for adding the extra functionality into the Arduino Module. There is
a list of libraries you can add by clicking the Sketch button in the menu bar and going to
Include Library.
As you click the Include Library and Add the respective library it will on the top of the sketch
with a #include sign. Suppose, I Include the EEPROM library, it will appear on the text editor
as
#include <EEPROM.h>.
Most of the libraries are preinstalled and come with the Arduino software. However, you can
also download them from the external sources.
The digitalRead and digitalWrite commands are used for addressing and making the Arduino
pins as an input and output respectively.
These commands are text sensitive i.e. you need to write them down the exact way they are
given like digitalWrite starting with small “d” and write with capital “W”. Writing it down
with Digitalwrite or digitalwrite won’t be calling or addressing any function.
Just go to the “Board” section and select the board you aim to work on. Similarly, COM1,
COM2, COM4, COM5, COM7 or higher are reserved for the serial and USB board. You can
look for the USB serial device in the ports section of the Windows Device Manager.
Following figure shows the COM4 that I have used for my project, indicating the Arduino Uno
with COM4 port at the right bottom corner of the screen.
After correct selection of both Board and Serial Port, click the verify and then upload
button appearing in the upper left corner of the six button section or you can go to the
Sketch section and press verify/compile and then upload.
The sketch is written in the text editor and is then saved with the file extension .ino.
It is important to note that the recent Arduino Modules will reset automatically as you compile
and press the upload button the IDE software, however, older version may require the physical
reset on the board.
Once you upload the code, TX and RX LEDs will blink on the board, indicating the desired
program is running successfully.
Note: The port selection criteria mentioned above is dedicated for Windows operating system
only, you can check this Guide if you are using MAC or Linux.
The amazing thing about this software is that no prior arrangement or bulk of mess is
required to install this software, you will be writing your first program within 2 minutes
after the installation of the IDE environment.
BootLoader:
As you go to the Tools section, you will find a bootloader at the end. It is very helpful to burn
the code directly into the controller, setting you free from buying the external burner to burn
the required code.
When you buy the new Arduino Module, the bootloader is already installed inside the
controller. However, if you intend to buy a controller and put in the Arduino module, you
need to burn the bootloader again inside the controller by going to the Tools section and
selecting the burn bootloader.
HARDWARE REQUIREMENTS:
Arduino:
Arduino Uno is a very valuable addition in the electronics that consists of USB interface, 14
digital I/O pins, 6 analog pins, and Atmega328 microcontroller. It also supports serial
communication using Tx and Rx pins.
There are many versions of Arduino boards introduced in the market like Arduino Uno,
Arduino Due, Arduino Leonardo, Arduino Mega, however, most common versions are
Arduino Uno and Arduino Mega. If you are planning to create a project relating to digital
electronics, embedded system, robotics, or IoT, then using Arduino Uno would be the best,
easy and most economical option.
It is an open-source platform, means the boards and software are readily available and anyone
can modify and optimize the boards for better functionality.
The software used for Arduino devices is called IDE (Integrated Development Environment)
which is free to use and required some basic skills to learn it. It can be programmed using C
and C++ language.
Some people get confused between Microcontroller and Arduino. While former is just an on
system 40 pin chip that comes with a built-in microprocessor and later is a board that comes
with the microcontroller in the base of the board, bootloader and allows easy access to input-
output pins and makes uploading or burning of the program very easy.
Nevertheless, we can say every Arduino is basically a microcontroller but not every
microcontroller is an Arduino.
Introduction to Arduino
First Arduino project was started in Interaction Design Institute Ivrea in 2003 by David
Cuartielles and Massimo Banzi with the intention of providing a cheap and flexible way to
students and professional for controlling a number of devices in the real world.
The current version of Arduino Uno comes with USB interface, 6 analog input pins, 14 I/O
digital ports that are used to connect with external electronic circuits. Out of 14 I/O ports, 6
pins can be used for PWM output.
It allows the designers to control and sense the external electronic devices in the real world
This board comes with all the features required to run the controller and can be directly
connected to the computer through USB cable that is used to transfer the code to the
controller using IDE (Integrated Development Environment) software, mainly developed to
program Arduino. IDE is equally compatible with Windows, MAC or Linux Systems,
however, Windows is preferable to use. Programming languages like C and C++ are used
in IDE.
Apart from USB, battery or AC to DC adopter can also be used to power the board.
Arduino Uno boards are quite similar to other boards in Arduino family in terms of use and
functionality, however, Uno boards don’t come with FTDI USB to Serial driver chip.
There are many versions of Uno boards available, however, Arduino Nano V3 and Arduino
Uno are the most official versions that come with Atmega328 8-bit AVR Atmel
microcontroller where RAM memory is 32KB.
When nature and functionality of the task go complex, Mirco SD card can be added in the
boards to make them store more information.
Features of Arduino
Arduino Uno comes with USB interface i.e. USB port is added on the board to develop
serial communication with the computer.
Atmega328 microcontroller is placed on the board that comes with a number of features
like timers, counters, interrupts, PWM, CPU, I/O pins and based on a 16MHz clock that
helps in producing more frequency and number of instructions per cycle.
It is an open source platform where anyone can modify and optimize the board based on the
number of instructions and task they want to achieve.
This board comes with a built-in regulation feature which keeps the voltage under control
when the device is connected to the external device.
Reset pin is added in the board that reset the whole board and takes the running program in
the initial stage. This pin is useful when board hangs up in the middle of the running
program; pushing this pin will clear everything up in the program and starts the program
right from the beginning.
There are 14 I/O digital and 6 analog pins incorporated in the board that allows the external
connection with any circuit with the board. These pins provide the flexibility and ease of
use to the external devices that can be connected through these pins. There is no hard and
fast interface required to connect the devices to the board. Simply plug the external device
into the pins of the board that are laid out on the board in the form of the header.
The 6 analog pins are marked as A0 to A5 and come with a resolution of 10bits. These pins
measure from 0 to 5V, however, they can be configured to the high range
using analogReference() function and AREF pin.
13KB of flash memory is used to store the number of instructions in the form of code.
Only 5 V is required to turn the board on, which can be achieved directly using USB port
or external adopter, however, it can support external power source up to 12 V which can be
regulated and limit to 5 V or 3.3 V based on the requirement of the project.
Arduino Pinout
Pin Description:
There are several I/O digital and analog pins placed on the board which operates at 5V. These
pins come with standard operating ratings ranging between 20mA to 40mA. Internal pull-up
resistors are used in the board that limits the current exceeding from the given operating
conditions. However, too much increase in current makes these resisters useless and damages
the device.
LED. Arduino Uno comes with built-in LED which is connected through pin 13. Providing
HIGH value to the pin will turn it ON and LOW will turn it OFF.
Vin. It is the input voltage provided to the Arduino Board. It is different than 5 V supplied
through a USB port. This pin is used to supply voltage. If a voltage is provided through power
jack, it can be accessed through this pin.
5V. This board comes with the ability to provide voltage regulation. 5V pin is used to provide
output regulated voltage. The board is powered up using three ways i.e. USB, Vin pin of the
board or DC power jack.
USB supports voltage around 5V while Vin and Power Jack support a voltage ranges between
7V to 20V. It is recommended to operate the board on 5V. It is important to note that, if a
voltage is supplied through 5V or 3.3V pins, they result in bypassing the voltage regulation
that can damage the board if voltage surpasses from its limit.
GND. These are ground pins. More than one ground pins are provided on the board which can
be used as per requirement.
Reset. This pin is incorporated on the board which resets the program running on the board.
Instead of physical reset on the board, IDE comes with a feature of resetting the board through
programming.
IOREF. This pin is very useful for providing voltage reference to the board. A shield is used
to read the voltage across this pin which then select the proper power source.
PWM. PWM is provided by 3, 5, 6,9,10, 11pins. These pins are configured to provide 8-bit
output PWM.
SPI. It is known as Serial Peripheral Interface. Four pins 10(SS), 11(MOSI), 12(MISO),
13(SCK) provide SPI communication with the help of SPI library.
AREF. It is called Analog Reference. This pin is used for providing a reference voltage to the
analog inputs.
TWI. It is called Two-wire Interface. TWI communication is accessed through Wire Library.
A4 and A5 pins are used for this purpose.
Serial Communication. Serial communication is carried out through two pins called Pin 0
(Rx) and Pin 1 (Tx).
Rx pin is used to receive data while Tx pin is used to transmit data.
External Interrupts. Pin 2 and 3 are used for providing external interrupts. An interrupt is
called by providing LOW or changing value.
Operating Voltage 5V
SRAM 2 KB
EEPROM 1 KB
Arduino Uno comes with an ability of interfacing with other other Arduino boards,
microcontrollers and computer. The Atmega328 placed on the board provides serial
communication using pins like Rx and Tx.
The Atmega16U2 incorporated on the board provides a pathway for serial communication
using USB com drivers. Serial monitor is provided on the IDE software which is used to send
or receive text data from the board. If LEDs placed on the Rx and Tx pins will flash,
they indicate the transmission of data.
Arduino Uno is programmed using Arduino Software which a cross-platform application called
IDE is written in Java. The AVR microcontroller Atmega328 laid out on the base comes with
built-in boot loader that sets you free from using a separate burner to upload the program on
the board.
Applications:
Arduino Uno comes with a wide range of applications. A larger number of people are using
Arduino boards for developing sensors and instruments that are used in scientific
research. Following are some main applications of the board.
Embedded System
Weighing Machines
Medical Instrument
Home Automation
Industrial Automation
There are a lot of other microcontrollers available in the market that are more powerful and
cheap as compared to Arduino board. So, why you prefer Arduino Uno?
Actually, Arduino comes with a big community that is developing and sharing the knowledge
with a wide range of audience. Quick support is available pertaining to technical aspects of any
electronic project. When you decide Arduino board over other controllers, you don’t need to
arrange extra peripherals and devices as most of the functions are readily available on the board
that makes your project economical in nature and free from a lot of technical expertise.
NodeMCU:
Introduction to NodeMCU
Node MCU is an open-source firmware and development kit that plays a vital role in designing
your own IoT product using a few Lua script lines.
Multiple GPIO pins on the board allow you to connect the board with other peripherals and are
capable of generating PWM, I2C, SPI, and UART serial communications.
The interface of the module is mainly divided into two parts including both Firmware and
Hardware where former runs on the ESP8266 Wi-Fi SoC and later is based on the ESP-12
module.
The firmware is based on Lua – A scripting language that is easy to learn, giving a simple
programming environment layered with a fast scripting language that connects you with a well-
known developer community.
And open source firmware gives you the flexibility to edit, modify and rebuilt the existing
module and keep changing the entire interface until you succeed in optimizing the module as
per your requirements.
USB to UART converter is added on the module that helps in converting USB data to UART
data which mainly understands the language of serial communication.
Instead of the regular USB port, MicroUSB port is included in the module that connects it with
the computer for dual purposes: programming and powering up the board.
The board incorporates status LED that blinks and turns off immediately, giving you the
current status of the module if it is running properly when connected with the computer.
The ability of module to establish a flawless WiFi connection between two channels makes it
an ideal choice for incorporating it with other embedded devices like Raspberry Pi.
NodeMCU Pinout:
NodeMCU comes with a number of GPIO Pins. Following figure shows the Pinout of the
board.
There is a candid difference between VIN and VU where former is the regulated voltage
that may stand somewhere between 7 to 12 V while later is the power voltage for USB that
must be kept around 5 V.
Features:
Open-source
Arduino-like hardware
Status LED
MicroUSB port
Reset/Flash buttons
Low cost
GPIO pins
As mentioned above, a cable supporting micro USB port is used to connect the board. As you
connect the board with a computer, LED will flash. You may need some drivers to be installed
on your computer if it fails to detect the NodeMCU board. You can download the driver
from this page.
Note: We use Arduino IDE software for programming this module. It is important to note that
the pin configuration appearing on the board is different from the configuration we use to
program the board on the software i.e. when we write code for targeting pin 16 on the Arduino
IDE, it will actually help is laying out the communication with the D0 pin on the module.
Following figure the shows the pin configuration to use in Arduino IDE.
How to Power NodeMCU
You can see from the pinout image above, there are five ground pins and three 3V3 pins on the
board. The board can be powered up using the following three ways.
USB Power. It proves to an ideal choice for loading programs unless the project you aim to
design requires separate interface i.e. disconnected from the computer.
Provide 3.3V. This is another great option to power up the module. If you have your own off-
board regulator, you can generate an instant power source for your development kit.
Power Vin. This is a voltage regulator that comes with the ability to support up to 800 mA. It
can handle somewhere between 7 to 12 V. You cannot power the devices operating at 3.3 V,
as this regulator unable to generate as low as 3.3V.
Applications:
NodeMCU V3 is mainly used in the WiFi Applications which most of the other embedded
modules fail to process unless incorporated with some external WiFi protocol. Following are
some major applications used for NodeMCU V3.
VR Tracker
Octopod
ESP Lamp
Incubator Controller
Security Alarms
A TDS meter measures the number of total dissolved solids like salts, minerals, and metals in
the water. As the number of dissolved solids in the water increases, the conductivity of the
water increases, and that allow us to calculate the total dissolved solids in ppm (mg/L).
Although this is a good indicator to monitor the quality of the water, note that it does not
measure contaminants in the water. Thus, you can’t rely solely on this indicator to determine
if the water is good for consumption or not.
A TDS meter can be useful to monitor water quality in many applications like pools, aquariums,
fish tanks, hydroponics, water purifiers, etc.
This tutorial refers to the TDS Meter V1.0 from key studio. Here are the sensor parameters:
TDS Meter:
Input Voltage: DC 3.3 ~ 5.5V
Output Voltage: 0 ~ 2.3V
Working Current: 3 ~ 6mA
TDS Measurement Range: 0 ~ 1000ppm
TDS Measurement Accuracy: ± 10% F.S. (25 ℃)
Module Interface: XH2.54-3P
Electrode Interface: XH2.54-2P
TDS Probe:
Number of Needle: 2
Total Length: 60cm
Connection Interface: XH2.54-2P
Colour: White
Waterproof Probe
Interfacing the TDS Meter with the Arduino
The TDS meter outputs an analog signal that can be measured using the Arduino analog pins
(A0 to A5).
GND GND
VCC 3.3V
PH SENSOR
Water pollution is caused when many chemicals, sewage, and fertilizers are dumped into rivers.
It must be prevented by measuring water quality because this harms human and aquatic health.
The water pH sensor is a simple device that makes it easy to measure the quality of the water.
One of the most important instruments for measuring the quality of water is the pH sensor,
which is frequently employed in the monitoring of water quality. It is possible to measure the
alkalinity and acidity of water and other solutions with this type of sensor. pH sensors help
assure the safety and quality of wastewater from manufacturing facilities when they are used
properly. The traditional method for measuring the quality or pH of water is by using pH
indicators. Although they cannot provide a precise reading of the pH, they can be used for
assessing whether a substance is an acid or a base. Litmus, phenolphthalein, and methyl orange
are the three primary pH indicators frequently used in laboratories. To estimate pH, these
indicators rely on visible color changes. However, it is now standard procedure to measure pH
with a pH meter or sensor.
The exchange of ions from the solution to the inner solution of the glass electrode via the glass
membrane is the basis for the pH sensor's operation. With continued usage, the glass
membrane's porosity decreases, lowering the probe's performance. The Ph Sensor is often made
of glass and has a rod-like construction with a bulb at the bottom that holds the sensor. A glass
bulb that is specifically made to be selective to hydrogen-ion concentration is present in the
glass electrode used to measure pH. Hydrogen ions in the test solution exchange with other
positively charged ions on the glass bulb upon immersion in the solution under test, creating
an electrochemical potential across the bulb. The electrical potential difference between the
two electrodes created during the test is detected by the electronic amplifier, which transforms
it into pH units. The Nernst equation states that the electrochemical potential across the glass
bulb is linearly linked to pH.
Since the reference electrode is made of a metallic conductor that is connected to the display,
it is insensitive to the pH of the solution. A porous ceramic membrane allows the electrolyte
solution— typically potassium chloride—in which this conductor is submerged to interact with
the test solution. Voltmeters that display voltage in pH units make up the display.
This pH sensor is connected to the transducer called the transmitter or signal conversion board.
This board includes a pH sensor connector which is connected to the sensor probe, pH limit
setting, Analog reading Offsets and six IO pins.
This pH sensor is a piece of equipment used in science to determine whether a solution
is naturally acidic or alkaline.
pH levels can be detected between 0 and 14 by the sensor set.
This pH sensor kit can be used to assess the quality of both soil and water.
As part of the sensor package, a pH probe and sensor board will be used to condition
the signal.
SPECIFICATIONS:
voltage 5V
current 5-10mA
Concentration range pH 0-14
temperature 0 – 60 Degree Celcius
Response time <= 5 s
Stability time <=120 s
Power consumption <=0.5 W
Size 42mm x 32mm x 20mm
Weight 25g
How to maintain the pH sensor?
If you want the pH sensor to keep in good condition, you must maintain the pH electrode
regularly. Without proper maintenance, some common problems that may affect the electrode
include: oily coating on the electrode, blockage or fouling of the reference contact, malfunction
or breakage of the PH bulb, and short electrode life due to reference poisoning.
If the electrodes are usually coated with oil and other substances, consider using a sensor that
includes a non-porous reference junction. The use of automated systems for cleaning electrodes
can further reduce your maintenance needs. If the reference junction is often clogged or fouled,
a non-porous electrode can also be used as a solution to this problem. If your pH bulb breaks
when it comes in contact with sewage, you can use a bulb guard to protect it. As for the problem
of reference poisoning, the use of non-porous electrodes can avoid these problems.
It only takes a few simple steps to clean your electrode to properly maintain and clean the pH
electrode. Whenever handling pH electrodes, it is important to wear safety glasses and gloves.
When the electrodes are not in use, they should always be kept in a liquid solution. If the
electrode dries out, it can no longer be used. Most electrodes can only be purchased in saline
solution, and you can continue to use them in the future.
In order to clean the electrode, you should put it in a solution consisting of 95% water and 5%
hydrochloric acid. When the electrode is placed in this solution, most of the coating will
dissolve. The sensor should be soaked for 5-10 minutes and then rinsed off. If the coating
around the sensor is particularly heavy, the above steps should be repeated several times. Be
sure to wipe the sensor with a soft cloth, as any abrasive cloth or brush will damage the
electrode.
ADVANTAGES OF PH SENSORS
1. Increased Accuracy: pH sensors offer greater accuracy for measuring the acidity or alkalinity
of liquids and other solutions than traditional methods like paper test strips, so you can be sure
that your measurements are reliable.
2. Reduced Cost: Using a pH sensor will save money in terms of equipment costs when
compared to purchasing multiple sets of paper-based testing kits for different tests over time;
they also save on labour costs since fewer people have to perform the same process with one
device as opposed to many separate ones.
3. Faster Results: Electric current is transmitted through a probe into any liquid sample being
tested, allowing near-instantaneous results without waiting for thick substances (such as
yoghurt) which may otherwise take long waits between dips at standard intervals while trying
an average manual solution such dipsticks or chemical reagents; thus resulting in tremendous
savings with regard to turnaround times while still maintaining high-quality control standards.
4. Improved Repeatability: With regular use, some wear occurs even with manual probes when
continuously dipping them into various samples - this causes inaccuracy due to small variations
having accumulated across usage cycles; instead using a highly accurate pH Sensor these
problems are easily avoided by thanks their repeatable performance by providing consistent
readings each time it’s used no matter how often.
Pin connection:
Arduino pH sensor(Transmitter)
5V Vcc
GND GND
A0 pH out
APPLICATIONS:
What Is Turbidity?
Turbidity is the cloudiness or haziness of a fluid caused by large numbers of individual
particles that are generally invisible to the naked eye, similar to smoke in the air.
The measurement of turbidity is a key test of water quality.
Turbidity is caused by particles suspended or dissolved in water that scatter light making the
water appear cloudy or murky. Particulate matter can include sediment, especially clay and
silt, fine organic and inorganic matter, soluble colored organic compounds, algae, and other
microscopic organisms.
Impact of Turbidity
High turbidity can significantly reduce the aesthetic quality of lakes and streams. It can
increase the cost of water treatment for drinking and food processing. It can harm fish and
other aquatic life by reducing food supplies, degrading spawning beds, and affecting gill
function.
Turbidity Sources
Sediment often tops the list of substances or pollutants causing turbidity. Natural sources can
include erosion from upland, riparian, stream bank, and stream channel areas. Algae that grow
with nourishment from nutrients entering the stream through leaf decomposition or other
naturally occurring decomposition processes can also be a source of turbidity.
Stream channel movement can also release sediment. Organic matter from sewage discharges,
especially during treatment plant bypasses, can contribute to turbidity. Human activities that
disturb the land, such as construction, mining, and agriculture, can lead to high sediment levels
entering water bodies during rainstorms due to stormwater runoff.
Measuring Turbidity
Turbidity is measured using specialized optical equipment in a laboratory or in the field. Light
is directed through a water sample, and the amount of light scattered is measured.
The unit of measurement is called a Nephelometric Turbidity Unit (NTU), which comes in
several variations. The greater the scattering of light, the higher the turbidity. Low turbidity
values indicate high water clarity; high values indicate low water clarity.
DfRobot Turbidity Sensor
The gravity Arduino Turbidity sensor from DfRobot detects water quality by measuring the
levels of turbidity. It uses light to detect suspended particles in water by measuring the light
transmittance and scattering rate, which changes with the amount of total suspended solids
(TSS) in water. As the TTS increases, the liquid turbidity level increases.
This liquid sensor provides analog and digital signal output modes. The threshold is adjustable
when in digital signal mode. You can select the mode according to your Microcontroller
Applications.
The sensor operates on the principle that when the light is passed through a sample of water,
the amount of light transmitted through the sample is dependent on the amount of soil in the
water. As the soil level increases, the amount of transmitted light decreases. The turbidity
sensor measures the amount of transmitted light to determine the turbidity of the wash water.
Sensor Specification
1. Operating Voltage: 5V DC
2. Operating Current: 40mA (MAX)
3. Response Time: <500ms
4. Insulation Resistance: 100M (Min)
5. Output Method: Analog
6. Analog output: 0-4.5V
7. Digital Output: High/Low-level signal (you can adjust the threshold value by adjusting the
potentiometer)
The front-end sensor is an optical device comprising an LED (light sender) and a
phototransistor (light receiver). The schematic of the Turbidity Sensor’s inside board is given
below. It has a three-wire interface: VCC (+5 V), GND (0 V) & OUT/SIGNAL.
The Turbidity sensor has a signal connector Board as well. The signal connector board is
directly connected to the above circuit.
The LMV358 IC-based module provides a three-pin interface to connect with Arduino, and
there is also an analog/digital selector switch on the module to flip between analog and digital
output mode.
From this graph I concluded, while coding for your microcontroller-based project that the
equation included in the relationship graph is only applicable if the sensor gives out 4.2 V
roughly at zero turbidity (clear water), and it’s only true within the range of 2.5 V to 4.2 V
(3,000 to 0 turbidity).
Thus if you are not getting the correct value, calibration is required. This can be done by
rotating the small potentiometer inside the turbidity sensor.
Connect the VCC of the Turbidity Sensor with Arduino 5V, GND to GND & Analog Output
to Arduino A0 pin as shown in the image above.
Sensor uno
Vcc 5V
GND GND
OUT AO
The digital temperature sensor like DS18B20 follows single wire protocol and it can be used
to measure temperature in the range of -67oF to +257oF or -55oC to +125oC with +-5%
accuracy. The range of received data from the 1-wire can range from 9-bit to 12-bit. Because,
this sensor follows the single wire protocol, and the controlling of this can be done through an
only pin of Microcontroller. This is an advanced level protocol, where each sensor can be set
with a 64-bit serial code which aids to control numerous sensors using a single pin of the
microcontroller. This article discusses an overview of a DS18B20 temperature sensor
What is a DS18B20 Temperature Sensor?
The DS18B20 is one type of temperature sensor and it supplies 9-bit to 12-bit readings of
temperature. These values show the temperature of a particular device. The communication of
this sensor can be done through a one-wire bus protocol which uses one data line to
communicate with an inner microprocessor. Additionally, this sensor gets the power
supply directly from the data line so that the need for an external power supply can be
eliminated. The applications of the DS18B20 temperature sensor include industrial systems,
consumer products, systems which are sensitive thermally, thermostatic controls, and
thermometers.
Pin Configuration
No: Pin Name Description
1 Ground Connect to the ground of the circuit
2 Vcc Powers the Sensor, can be 3.3V or 5V
3 Data This pin gives output the temperature value which can be
read using 1-wire method
Specifications
Working Principle
The working principle of this DS18B20 temperature sensor is like a temperature sensor. The
resolution of this sensor ranges from 9-bits to 12-bits. But the default resolution which is used
to power-up is 12-bit. This sensor gets power within a low-power inactive condition. The
temperature measurement, as well as the conversion of A-to-D, can be done with a convert-T
command. The resulting temperature information can be stored within the 2-byte register in the
sensor, and after that, this sensor returns to its inactive state.
If the sensor is power-driven by an exterior power supply, then the master can provide read
time slots next to the Convert T command. The sensor will react by supplying 0 though the
temperature change is in the improvement and reacts by supplying 1 though the temperature
change is done.
This display module is equipped with an I2C interface, which typically includes an I2C
controller module (often based on the PCF8574 or similar chip). This module converts the
parallel data from the LCD into a serial format suitable for I2C communication. To connect the
16x2 LCD to a microcontroller (such as an Arduino), only four connections are needed: power
(VCC), ground (GND), SDA (data line), and SCL (clock line). This simplicity not only minimizes
wiring but also streamlines programming, allowing developers to focus more on functionality.
Similar to the 16x2 model, the I2C 20x4 display utilizes an I2C controller to facilitate
communication between the microcontroller and the LCD. The wiring requirements remain
the same, with only four connections needed. The additional characters and lines make this
display suitable for applications in industrial settings, information kiosks, and any project
where detailed data presentation is essential. Users can customize the displayed information,
formatting it to enhance readability and user experience.
Advantages of I2C LCDs
Both the I2C LCD 16x2 and 20x4 offer numerous advantages, including ease of installation,
reduced wiring complexity, and efficient data transmission. The I2C protocol supports
multiple devices on the same bus, allowing for the integration of various sensors and
peripherals without extensive wiring. This feature is particularly advantageous in compact
projects where space is limited. Furthermore, the libraries available for I2C LCDs in various
programming environments, such as Arduino IDE, simplify the coding process, making it
accessible even to novice developers.
The backlight feature common in these displays enhances visibility in low-light environments,
making them suitable for both indoor and outdoor applications. The ability to control the
brightness of the backlight can also contribute to energy efficiency, allowing users to tailor
the display’s performance to their specific needs.
Applications
I2C LCDs, both 16x2 and 20x4, find applications in various fields, including robotics,
automation, data logging, and home automation systems. They are frequently used in
projects such as temperature and humidity monitoring, real-time data display for IoT devices,
and user interface menus for embedded systems. Their versatility and functionality make
them a preferred choice among hobbyists and professionals alike. As technology continues to
evolve, the integration of I2C LCDs into more sophisticated systems will likely expand, further
enhancing user interaction and data presentation in electronic projects.
GSM
GSM is a mobile communication modem; it is stands for global system for mobile
communication (GSM). The idea of GSM was developed at Bell Laboratories in 1970. It is
widely used mobile communication system in the world. GSM is an open and digital cellular
technology used for transmitting mobile voice and data services operates at the 850MHz,
900MHz, 1800MHz and 1900MHz frequency bands.
GSM system was developed as a digital system using time division multiple access (TDMA)
technique for communication purpose. A GSM digitizes and reduces the data, then sends it
down through a channel with two different streams of client data, each in its own particular
time slot. The digital system has an ability to carry 64 kbps to 120 Mbps of data rates.
There are various cell sizes in a GSM system such as macro, micro, pico and umbrella cells. Each cell
varies as per the implementation domain. There are five different cell sizes in a GSM network macro,
micro, pico and umbrella cells. The coverage area of each cell varies according to the implementation
environment.
TDMA technique relies on assigning different time slots to each user on the same frequency.
It can easily adapt to data transmission and voice communication and can carry 64kbps to
120Mbps of data rate.
GSM Architecture
A Mobile Station: It is the mobile phone which consists of the transceiver, the display
and the processor and is controlled by a SIM card operating over the network.
Base Station Subsystem: It acts as an interface between the mobile station and the
network subsystem. It consists of the Base Transceiver Station which contains the radio
transceivers and handles the protocols for communication with mobiles. It also consists
of the Base Station Controller which controls the Base Transceiver station and acts as
a interface between the mobile station and mobile switching centre.
Network Subsystem: It provides the basic network connection to the mobile stations.
The basic part of the Network Subsystem is the Mobile Service Switching Centre which
provides access to different networks like ISDN, PSTN etc. It also consists of the Home
Location Register and the Visitor Location Register which provides the call routing and
roaming capabilities of GSM. It also contains the Equipment Identity Register which
maintains an account of all the mobile equipments wherein each mobile is identified by
its own IMEI number. IMEI stands for International Mobile Equipment Identity.
The security strategies standardized for the GSM system make it the most secure
telecommunications standard currently accessible. Although the confidentiality of a call and
secrecy of the GSM subscriber is just ensured on the radio channel, this is a major step in
achieving end-to- end security.
GSM Modem
A GSM modem is a device which can be either a mobile phone or a modem device which can
be used to make a computer or any other processor communicate over a network. A GSM
modem requires a SIM card to be operated and operates over a network range subscribed by
the network operator. It can be connected to a computer through serial, USB or Bluetooth
connection.
A GSM modem can also be a standard GSM mobile phone with the appropriate cable and
software driver to connect to a serial port or USB port on your computer. GSM modem is
usually preferable to a GSM mobile phone. The GSM modem has wide range of applications
in transaction terminals, supply chain management, security applications, weather stations and
GPRS mode remote data logging.
It requires a SIM (Subscriber Identity Module) card just like mobile phones to activate
communication with the network. Also they have IMEI (International Mobile Equipment
Identity) number similar to mobile phones for their identification. A GSM/GPRS MODEM can
perform the following operations:
1. Receive, send or delete SMS messages in a SIM.
2. Read, add, search phonebook entries of the SIM.
3. Make, Receive, or reject a voice call.
The MODEM needs AT commands, for interacting with processor or controller, which are
communicated through serial communication. These commands are sent by the
controller/processor. The MODEM sends back a result after it receives a command. Different
AT commands supported by the MODEM can be sent by the processor/controller/computer to
interact with the GSM and GPRS cellular network.
GSM Architecture
The GSM architecture is divided into Radio Subsystem, Network and Switching Subsystem
and the Operation Subsystem. The radio sub system consists of the Mobile Station and Base
Station Subsystem.
The mobile station is generally the mobile phone which consists of a transceiver, display and
a processor. Each handheld or portable mobile station consists of a unique identity stored in a
module known as SIM (Subscriber Identity Chip). It is a small microchip which is inserted in
the mobile phone and contains the database regarding the mobile station.
Buzzer:
Rated Voltage: 6V DC
Operating Voltage: 4-8V DC
Rated current: <30mA
Sound Type: Continuous Beep
Resonant Frequency: ~2300 Hz
Small and neat sealed package
Breadboard and Perf board friendly
A buzzer is a small yet efficient component to add sound features to our project/system. It is
very small and compact 2-pin structure hence can be easily used on breadboard, Perf Board
and even on PCBs which makes this a widely used component in most electronic applications.
There are two types are buzzers that are commonly available. The one shown here is a simple
buzzer which when powered will make a Continuous Beeeeeeppp.... sound, the other type is
called a readymade buzzer which will look bulkier than this and will produce a Beep. Beep.
Beep. Sound due to the internal oscillating circuit present inside it. But, the one shown here is
most widely used because it can be customized with help of other circuits to fit easily in our
application.
This buzzer can be used by simply powering it using a DC power supply ranging from 4V to
9V. A simple 9V battery can also be used, but it is recommended to use a regulated +5V or
+6V DC supply. The buzzer is normally associated with a switching circuit to turn ON or turn
OFF the buzzer at required time and require interval.
Applications of Buzzer
TESTING RESULTS
CHAPTER 8
CONCLUSION