A collection of ESP32 and Arduino projects exploring IoT, wireless communication, and hardware control. Each project demonstrates a self-contained concept — from remote LED control to emergency alert systems — built around real-world use cases.
| Project | Hardware | Communication | Key Libraries |
|---|---|---|---|
| EmailSender | ESP32 | WiFi, SMTP, Blynk | ESP_Mail_Client, BlynkSimpleEsp32 |
| GetMACAddress | ESP32 | WiFi | esp_wifi |
| LCDViaWiFi | ESP32 + I2C LCD | WiFi, HTTP, Blynk | ArduinoJson, LiquidCrystal_I2C |
| LEDViaWiFi | ESP32 + RGB LED | WiFi, Blynk | BlynkSimpleEsp32 |
| RemoteControlDisplay | Arduino + IR Receiver + 7-Segment | IR | IRremote |
- Build practical, hardware-connected IoT projects using affordable ESP32/Arduino boards
- Demonstrate WiFi-based remote control and monitoring patterns
- Explore real API integrations (weather data, email) directly from microcontrollers
- Keep each project self-contained and easy to adapt
- WiFi-connected ESP32 projects with live API data and remote dashboards (Blynk)
- Email alerting with dynamic message modes and a reply-confirmation link
- IR remote learning: maps any remote's button codes to display digits — no hardcoded IR codes
- Live weather display cycling through temperature, humidity, wind, rain, and cloud cover
- All credentials/tokens use
#defineplaceholders — safe to share, easy to configure
An ESP32-based personal emergency alert system. Press a physical button to send an email via SMTP (MailerSend) containing a confirmation link. When the recipient clicks the link, an LED lights up on the sender's device to confirm delivery.
Message modes (cycle with a second button): DANGER, LOST, HUNGRY
Blynk integration: remotely toggle LED, enable blinking, or control a buzzer from the Blynk mobile/web dashboard.
Pins: Button 25, Mode button 34, LED 27, Buzzer 32
Libraries: WiFi, BlynkSimpleEsp32, WebServer, ESP_Mail_Client
Minimal utility sketch. Connects the ESP32 in station mode and prints the board's MAC address to Serial. Useful for whitelisting devices on a router or configuring Blynk templates.
Libraries: WiFi, esp_wifi
Two variants for driving a 16×2 I2C LCD display over WiFi:
code.ino — Live Weather Display
Fetches current weather from the Open-Meteo API every 5 minutes and cycles through readings on the LCD:
- Temperature & Real Feel (°F)
- Humidity & Wind Speed
- Rainfall & Cloud Cover
code2.ino — Blynk-Controlled LCD
Send arbitrary text to the LCD from the Blynk app. Supports commands:
c— clear current rows— switch active rowa— toggle character animation
Pins: SDA 33, SCL 32 (I2C), LCD address 0x27
Libraries: LiquidCrystal_I2C, WiFi, HTTPClient, ArduinoJson, BlynkSimpleEsp32
Control an RGB LED from anywhere using the Blynk dashboard. Each color channel (R/G/B) is mapped to a virtual pin and written as a PWM value.
Pins: Red 27, Green 26, Blue 25
Virtual pins: V0 → Red, V1 → Green, V2 → Blue
Libraries: WiFi, BlynkSimpleEsp32
A self-learning IR remote + 7-segment display controller for Arduino. On first run, it enters initialization mode: it shows each digit (0–9) on the display and waits for you to press the corresponding button on your remote, storing that IR code. Once all 10 digits are mapped, it enters display mode and shows whichever digit matches the button you press — works with any IR remote.
Pins: IR Receiver 11, Segments A–G → 2–8
Libraries: IRremote
- ESP32 development board (most projects)
- Arduino Uno or compatible (RemoteControlDisplay)
- 16×2 I2C LCD module (LCDViaWiFi)
- RGB LED — common cathode or anode (LEDViaWiFi)
- Push buttons × 2, LED, passive buzzer (EmailSender)
- IR receiver module (TSOP38238 or equivalent) + IR remote (RemoteControlDisplay)
- 7-segment display — common cathode (RemoteControlDisplay)
- Open the project folder in the Arduino IDE.
- Install required libraries via Sketch → Include Library → Manage Libraries.
- Fill in your credentials in the
#define/const char*placeholders at the top of each sketch:- WiFi SSID and password
- Blynk Template ID, Template Name, and Auth Token (Blynk projects)
- SMTP credentials and email addresses (EmailSender)
- Select the correct board and COM port, then upload.
Credentials are intentionally left blank in all sketches. Never commit real credentials to version control.