HUMIDITY SENSOR
Title: IoT-Based Humidity Monitoring System: Data, Cost, and Integration
Abstract:
Humidity plays a crucial role in various sectors, including agriculture, healthcare, and industrial
applications. This paper presents an IoT-based humidity monitoring system, detailing sensor data
collection, cost analysis, coding, and system integration with IoT platforms. The proposed system
enhances efficiency by providing real-time humidity monitoring, reducing manual efforts, and
improving decision-making processes.
1. Introduction
Monitoring humidity levels is essential for ensuring optimal environmental conditions in multiple
domains. Traditional humidity measurement methods require manual efforts and provide limited
real-time data. IoT-based solutions enable continuous monitoring and data-driven decision-making.
2. System Components and Data Sheet
The system consists of the following components:
Humidity Sensor: DHT22 (Digital Temperature and Humidity Sensor)
o Operating Voltage: 3.3V to 5V
o Humidity Range: 0% to 100% RH
o Accuracy: ±2% RH
o Output: Digital
Microcontroller: ESP8266 or ESP32
o Operating Voltage: 3.3V
o Wi-Fi Connectivity: Yes
o Power Consumption: Low
Power Supply: 5V USB Adapter or Battery Pack
Cloud Platform: Thingspeak or Firebase for Data Storage
COMPONENT QUANTITY COST Total Cost
DHT22 Sensor 1 200-400 200-400
ESP8266/ESP32 1 400 400
Power supply 1 200 200
Jumper wires 1 set 12 12
TOTAL 820-1050
CODE : -
#include <DHT.h>
#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
#define DHTPIN D4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
WiFiClient client;
unsigned long channelID = YOUR_CHANNEL_ID;
const char* apiKey = "YOUR_API_KEY";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting...");
Serial.println("Connected to WiFi");
dht.begin();
void loop() {
float humidity = dht.readHumidity();
Serial.print("Humidity: ");
Serial.println(humidity);
ThingSpeak.writeField(channelID, 1, humidity, apiKey);
delay(15000);
CODE EXPLAINATION: -
1] Importing libraries :-
#include <DHT.h>
#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
DHT.h → Library for interfacing with the DHT22 sensor to measure humidity.
ESP8266WiFi.h → Enables WiFi connectivity for the ESP8266 microcontroller.
ThingSpeak.h → Allows sending data to ThingSpeak, a cloud platform for IoT data logging.
2. Defining Pins & Initializing the Sensor
#define DHTPIN D4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
DHTPIN D4 → Connects the data pin of the DHT22 sensor to GPIO D4 of the ESP8266.
DHTTYPE DHT22 → Defines the sensor type as DHT22 (to differentiate from other DHT
models).
DHT dht(DHTPIN, DHTTYPE); → Creates a DHT sensor object for data reading.
3. WiFi Credentials & ThingSpeak Configuration
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
WiFiClient client;
unsigned long channelID = YOUR_CHANNEL_ID;
const char* apiKey = "YOUR_API_KEY";
ssid & password → Replace with your WiFi network name & password to connect the
ESP8266 to the internet.
WiFiClient client → Creates a WiFi client for communication.
channelID & apiKey → These are ThingSpeak credentials needed to send data to the correct
ThingSpeak channel.
4. Setup Function: -
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting...");
Serial.println("Connected to WiFi");
dht.begin();
Serial.begin(115200); → Initializes serial communication at 115200 baud rate (for
debugging).
WiFi.begin(ssid, password); → Connects the ESP8266 to the specified WiFi.
while (WiFi.status() != WL_CONNECTED) → Waits until the ESP8266 connects to WiFi.
dht.begin(); → Initializes the DHT22 sensor.
5. Main Loop: -
void loop() {
float humidity = dht.readHumidity();
Serial.print("Humidity: ");
Serial.println(humidity);
ThingSpeak.writeField(channelID, 1, humidity, apiKey);
delay(15000);
float humidity = dht.readHumidity(); → Reads the humidity value from the DHT22 sensor.
Serial.print / Serial.println(humidity); → Displays the humidity value on the serial monitor.
ThingSpeak.writeField(channelID, 1, humidity, apiKey); → Sends the humidity data to
ThingSpeak (Field 1).
delay(15000); → Waits for 15 seconds before taking another reading (prevents excessive
data transmission).
6]Summary
Connects to WiFi.
Reads humidity data from DHT22.
Displays data on the Serial Monitor.
Uploads humidity data to the ThingSpeak cloud.
Repeats every 15 seconds.
7. IoT Integration and Cloud Storage
Data is transmitted to a cloud platform such as ThingSpeak, where real-time visualization and alerts
can be configured. Firebase can be used for storing and analyzing historical data.
8. Conclusion
The proposed system provides an affordable and efficient way to monitor humidity levels in real-
time, aiding in various applications such as agriculture, healthcare, and industrial automation. Future
enhancements could include additional sensors for temperature, CO2 levels, and pH monitoring.