How to use ESP32 with DHT22

How to use ESP32 with DHT22

Controlling temperature using an ESP32 over WiFi can be accomplished by interfacing it with temperature sensors and actuators like heaters or fans. Here’s a general guide on how to approach this project:

Components Needed:
1. ESP32 Development Board: Such as the ESP32 NodeMCU or ESP32 WROOM.

2. Temperature Sensor: Examples include the DS18B20 (for digital readings) or DHT22 (for combined humidity and temperature readings).

3. Actuators: Depending on your setup, this could be a heating element (like a relay-controlled heater) or a fan.

4. Power Supply: Suitable for your ESP32 and actuators.

 Setting Up the ESP32:

1. Install Arduino IDE: If you haven’t already, install the Arduino IDE and add the ESP32 board manager.
Coding: Write the firmware using Arduino IDE or PlatformIO, depending on your preference.

2. Reading Temperature:
Connect Temperature Sensor: Wire your temperature sensor (e.g., DS18B20) to the ESP32. Libraries like OneWire and DallasTemperature can help interface with the sensor.
Read Sensor Data: Use appropriate libraries to read temperature data from the sensor.

3. Controlling Actuators:
Connect Actuators: Depending on your application, connect relays or transistors to control heating elements or fans.
Control Logic: Implement control logic (PID, ON/OFF control, etc.) in your code to decide when to activate or deactivate the actuators based on temperature readings.

4. WiFi Connectivity:
Set Up WiFi: Configure your ESP32 to connect to your WiFi network.
Server/Client Communication: Decide whether your ESP32 will act as a server (accepting commands) or client (sending data to a server).
5. Protocols: Use MQTT, HTTP, or WebSocket for communication, depending on your application’s needs.

5. Implementing Control:
Temperature Thresholds: Define temperature thresholds for activating/deactivating your actuators.
Feedback Mechanism: Implement a feedback mechanism to adjust control parameters based on actual temperature readings.
6. Testing and Iteration:
Test: Deploy your system and test it under various conditions to ensure it behaves as expected.
Iterate: Refine your control algorithm if needed based on testing results.

Example Code:

#include <OneWire.h>
#include <DallasTemperature.h>

const char* ssid = “yourSSID”;
const char* password = “yourPASSWORD”;

// Data wire is connected to GPIO 15
#define ONE_WIRE_BUS 15
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup()
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
Serial.println(“Connecting to WiFi…”);
Serial.println(“Connected to WiFi”);

void loop()

float temperatureC = sensors.getTempCByIndex(0);

if (temperatureC < 25.0)
// Code to activate heater
Serial.println(“Heater ON”);

// Code to deactivate heater
Serial.println(“Heater OFF”);

Additional Considerations:

Security: Implement security measures if controlling remotely (e.g., HTTPS, authentication).
Power Supply: Ensure adequate power supply for both ESP32 and actuators.

Enclosure and Safety: Consider environmental factors and safety precautions if dealing with high temperatures.
By following these steps and considerations, you should be able to create a WiFi-controlled temperature system using an ESP32 successfully. Adjustments may be needed based on specific sensors, actuators, and control requirements for your particular application.


Subramanian MK, currently serving as a workshop instructor at Sakthi Polytechnic College, Erode Tamil Nadu. With a career spanning 25 + years, Subramanian MK has dedicated himself to advancing knowledge in Electronics and Communication Engineering (ECE). His passion for exploring new technologies has led to the development of numerous projects, showcasing expertise in IoT and PCB design.

Articles: 504

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.


Hi, How can I help you?