INTERMEDIATE LEVEL PROJECT
ESP32 Smart Home IoT Gateway & Environmental Monitor
Build a complete Wi-Fi connected smart home monitoring station using ESP32, DHT22 temp/humidity sensor, OLED display, and 2-channel relay controller.
Required Components List
All components needed to assemble this project
ESP32-WROOM-32 NodeMCU Wi-Fi + Bluetooth Dev Board
Qty: 1 × 16.500 TND
DHT22 Digital Temperature & Humidity Sensor Module
Qty: 1 × 14.500 TND
0.96 inch I2C OLED Display Module 128x64 Blue/Yellow
Qty: 1 × 10.500 TND
5V 2-Channel Relay Module with Optocoupler Isolation
Qty: 1 × 5.800 TND
Project Guide & Description
In this project, you will assemble an IoT gateway that reads ambient temperature & humidity, displays real-time metrics on an I2C OLED screen, and toggles household AC appliances automatically via a 2-channel relay isolated module.
Arduino / C++ Source Code
#include <WiFi.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
#define RELAY1_PIN 16
#define RELAY2_PIN 17
DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 display(128, 64, &Wire, -1);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(RELAY1_PIN, OUTPUT);
pinMode(RELAY2_PIN, OUTPUT);
digitalWrite(RELAY1_PIN, HIGH);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED Failed");
for(;;);
}
}
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("ZTech ESP32 Station");
display.setTextSize(2);
display.setCursor(0,20);
display.print("Temp: "); display.print(temp, 1); display.println("C");
display.setCursor(0,42);
display.print("Hum: "); display.print(hum, 1); display.println("%");
display.display();
delay(2000);
}