Welcome to my 100 Days 100 IoT Projects repository!
This repo showcases my journey of learning and implementing IoT & Embedded Systems projects using ESP32, Raspberry Pi Pico, and MicroPython.
Each project is designed to teach a specific concept, sensor, or IoT technique — from basic analog/digital readings to web-based dashboards.
- ESP32, ESP8266 (NodeMCU)
- Raspberry Pi Pico / Pico W / Pico 2 W
- XIAO ESP32-S3
- Arduino (UNO / Nano)
- MicroPython
- Python (Tkinter, CustomTkinter, Matplotlib)
- Arduino + Python (Serial, PyFirmata)
- LDR, Potentiometer, DHT11
- PIR, IR, Ultrasonic (HC-SR04)
- Gas Sensors (MQ-4, MQ-7, MQ-135)
- RTC (DS3231), TM1637, OLED, LCD
- Relay, Servo, Touch Sensor
- ADC, PWM, GPIO
- Wi-Fi, Web Server, WebSocket
- Bluetooth, Blynk IoT
- Data logging & visualization
- Simulation-based testing
| Day | Project | Board / Sensor | Description |
|---|---|---|---|
| 1 | Auto Night Light | ESP32 + LDR | Automatic LED turns ON/OFF based on ambient light |
| 2 | Dimmer LED using Potentiometer | ESP32 + Potentiometer | LED brightness controlled via potentiometer using ADC + PWM |
| 3 | DHT11 Temperature & Humidity Web Server | ESP32 + DHT11 | Reads temperature & humidity and displays on a live web page |
| 4 | 1-Digit Seven Segment Display | Raspberry Pi Pico + 7-Segment | Displays numeric output using GPIO control |
| 5 | Mini Weather Station (DHT11 + LCD) | ESP8266 + DHT11 + I²C LCD | Displays real-time temperature & humidity on 16x2 LCD without flickering |
| 6 | RGB Color Mixer using Potentiometers | ESP32 + 3 Potentiometers + RGB LED | Mix RGB colors by adjusting potentiometers using ADC and PWM |
| 7 | Potentiometer Bar Graph Display | ESP32 + Potentiometer + 10 LEDs | Visualize analog input as a 10-LED bar graph using ADC mapping |
| 8 | MQ4 Gas Leak Detection System | ESP32 + MQ4 Sensor + Buzzer | Detects methane gas concentration using MQ4 sensor and triggers alert when gas level exceeds threshold |
| 9 | Basic RTC Clock (Serial Monitor Display) | ESP8266 + DS3231 RTC | Displays real-time date, time, and temperature on Serial Monitor using DS3231 RTC |
| 10 | IoT Button Counter using ESP8266 & MicroPython | ESP8266 + 3 Push Buttons | Counts button presses (Increment, Decrement, Reset) and displays live counter on webpage |
| 11 | MicroPython-Based 8×8 LED Matrix Animation Display using ESP8266 | ESP8266 + MAX7219 8×8 LED Matrix | Displays custom animations (heart beat) on 8×8 LED matrix using MicroPython |
| 12 | PIR Motion Detector using Raspberry Pi Pico 2W & MicroPython | Raspberry Pi Pico 2W + PIR Sensor | Detects motion using PIR sensor and indicates using built-in LED with MicroPython |
| 13 | Bluetooth-Based Wireless LED Control System | Raspberry Pi Pico 2W + HC-05 | Wireless LED ON/OFF control using MicroPython + HC-05 Bluetooth module |
| 14 | Pico W Web Servo Controller | Raspberry Pi Pico 2W + Servo Motor | Control servo angle (0–180°) from browser via WiFi |
| 15 | ClimaPixel — Mini Weather Display | ESP32/ESP8266 + DHT11 + SSD1306 OLED | Real-time temperature & humidity display with icons on OLED using MicroPython |
| 16 | TM1637 Button-Press Counter using ESP8266 & MicroPython | ESP8266 + TM1637 + Push Button | Counts button presses and displays live counter on TM1637 4-digit display |
| 17 | IoT Relay Control Web Server (Raspberry Pi Pico 2W) | Raspberry Pi Pico 2W + Relay Module | Web-based relay control using MicroPython with a smooth slide switch UI and real-time ON/OFF status over WiFi |
| 18 | Blynk-Based IoT Relay Control (Raspberry Pi Pico 2 W) | Raspberry Pi Pico 2 W + Relay Module | Mobile app–based relay control using Blynk IoT and MicroPython with real-time ON/OFF control over Wi-Fi |
| 19 | NTP Digital Clock using TM1637 & ESP8266 (MicroPython) | ESP8266 + TM1637 | Internet-synchronized digital clock using NTP with accurate HH:MM display, blinking colon, and custom segment mapping in MicroPython |
| 20 | Smart IR Object Detection System | ESP8266 + IR Sensor + LED + Buzzer | Detects the presence of an object using an IR sensor and triggers LED and buzzer alerts in real time using MicroPython |
| 21 | ESP32 Password Lock System | ESP32 + Keypad + LCD + LEDs | Implements a secure password authentication system using a keypad and LCD with visual LED feedback, developed in MicroPython |
| 22 | Blynk Controlled DC Brushless Fan | Raspberry Pi Pico W + Relay + DC Brushless Fan | Controls a DC brushless fan remotely using the Blynk IoT platform and a relay module, implemented in MicroPython |
| 23 | ESP32 Hotspot Setup | ESP32 | Configures ESP32 in Access Point (Hotspot) mode using MicroPython, enabling direct device-to-device connectivity without internet |
| 24 | Voice-Controlled LED System | Arduino + Python | Controls an LED using voice commands processed in Python and sent to Arduino via serial communication |
| 25 | Arduino RGB LED Control with Python GUI | Arduino + Python | Controls an RGB LED using a Python GUI built with CustomTkinter and PyFirmata2, allowing color selection, individual LED on/off control, and brightness adjustment via sliders |
| 26 | Clap Toggle Switch using ESP32 (MicroPython) | ESP32 + MicroPython | A clap-controlled toggle switch using a digital sound sensor where one clap turns the output ON and the next clap turns it OFF, implemented with debounce logic for reliable operation |
| 27 | IR Sensor Telegram Alert using ESP32 (MicroPython) | ESP32 + MicroPython | An IR sensor–based object detection system that sends real-time alert notifications to a Telegram channel whenever motion or object presence is detected near the sensor |
| 28 | Soil Moisture Sensor Dry/Wet Detection using ESP8266 (MicroPython) | ESP8266 + MicroPython | A soil moisture monitoring system that reads analog sensor values and determines dry or wet soil conditions in real time, displaying the status on the serial monitor |
| 29 | Rain Sensor Analog Detection using ESP8266 (MicroPython) | ESP8266 + MicroPython | An analog rain detection system that reads real-time sensor values to determine rain intensity (no rain, light rain, heavy rain) and displays the status on the serial monitor |
| 30 | Ultrasonic Distance Indicator using ESP32 (MicroPython) | ESP32 + MicroPython | A distance-based indication system using an HC-SR04 ultrasonic sensor that measures real-time distance and indicates object proximity using red and green LEDs |
| 31 | WebSocket LED Control using Raspberry Pi Pico W | Pico W + MicroPython | A real-time LED control system using WebSockets where a browser communicates directly with Raspberry Pi Pico W over WiFi to turn an LED ON or OFF without page refresh |
| 32 | MQ-135 Gas Sensor with ESP32 | ESP32 + MicroPython | A gas level monitoring system using the MQ-135 sensor and ESP32 to read and average analog sensor values for stable environmental gas detection |
| 33 | MQ-7 Carbon Monoxide Sensor with ESP32 | ESP32 + MicroPython | A carbon monoxide monitoring system using the MQ-7 sensor and ESP32 to read and average analog sensor values for real-time CO detection |
| 34 | Servo Motor Control with Raspberry Pi Pico 2 W | Raspberry Pi Pico 2 W + MicroPython | A simulation-based servo motor control project using PWM, where the user inputs an angle (0–180°) via serial monitor and the servo rotates accordingly with safe angle clamping |
| 35 | ESP8266 Touch Sensor LED Control | ESP8266 (NodeMCU) + MicroPython | A capacitive touch-based toggle switch using the TTP223 touch sensor, where each touch alternates the state of an external LED with proper debounce handling |
| 36 | ESP8266 DHT11 Live Monitor Matplotlib and MicroPython | ESP8266 + MicroPython + Matplotlib | Real-time DHT11 temperature and humidity visualization with a dark neon-themed live graph using serial communication |
| 37 | XIAO ESP32 4-LED Control using CustomTkinter and MicroPython | XIAO ESP32-S3 + MicroPython + CustomTkinter | Desktop GUI application to control four ESP32 GPIO LEDs via serial communication using a modern dark-mode CustomTkinter interface |
| 38 | ESP32 OLED Smart UI with Eyes Animation, Time & Weather (MicroPython) | ESP32 + SSD1306 OLED + MicroPython | Interactive OLED UI featuring animated eyes, touch-based menu navigation, NTP-synced IST date & time, and live weather data using OpenWeatherMap API |
| 39 | ESP32 Stepper Motor Control using A4988 (MicroPython) | ESP32 + A4988 + NEMA 17 | Stepper motor control using STEP/DIR signals with direction control, speed adjustment via delay, and serial monitoring using print statements |
| 40 | Pico W Async LED Control (MicroPython) | Raspberry Pi Pico W | Async web server using uasyncio to control onboard LED via browser with ON/OFF buttons and fetch-based requests |
| 41 | EEPROM Simulation using MicroPython (ESP32) | ESP32 | File-based EEPROM emulation using MicroPython with byte-level read/write and persistent string storage |
| 42 | ESP32 DC Motor Web Speed Control (MicroPython) | ESP32 + L298N | Web-based slider controlled DC motor speed system using PWM, MicroPython web server, and L298N driver |
| 43 | Temperature Based LED Indicator (MicroPython) | ESP32 + DHT22 | Beginner-friendly ESP32 project that reads temperature data from DHT22 and visually indicates temperature levels using LEDs |
| 44 | Flask LED Control using MicroPython | ESP32 / Pico W | Beginner-friendly IoT project where a Flask web server controls an LED on ESP32 or Pico W through HTTP polling using MicroPython |
| 45 | Smart Cooling System using ESP8266 | ESP8266+DHT11+BRUSHLESS FAN | Beginner-friendly IoT project that automatically controls a fan using DHT11 temperature sensor and an active-LOW relay with MicroPython |
| 46 | Soil & Weather Monitoring using ESP8266 and ThingSpeak | ESP8266 + DHT11 + Soil Sensor | Beginner-friendly IoT project that monitors soil moisture, temperature, and humidity and visualizes the data on the ThingSpeak cloud using MicroPython |
| 47 | Smart Irrigation System using XIAO ESP32-S3 and Blynk | XIAO ESP32-S3 + Soil Sensor + Relay + Pump | A smart irrigation system that monitors soil moisture in real time and allows manual water pump control via the Blynk IoT platform using MicroPython |
| 48 | HTTP-Based DHT11 Data Logger using Raspberry Pi Pico W | Raspberry Pi Pico 2W + DHT11 | A simple IoT data logging system that reads temperature and humidity from a DHT11 sensor and sends the data via HTTP POST to a Flask server, where it is stored in a CSV file for analysis |
| 49 | ThingsBoard RPC LED Control & DHT11 Telemetry using Raspberry Pi Pico 2 W | Raspberry Pi Pico 2 W + DHT11 | A cloud-connected IoT system using MicroPython where a Raspberry Pi Pico 2 W sends temperature and humidity data to ThingsBoard via MQTT and allows remote LED control using RPC from a dashboard |
| 50 | ESP32 BMP180 Atmospheric Monitoring with Blynk IoT | ESP32 + BMP180 | A cloud-connected IoT system using MicroPython where an ESP32 measures temperature, atmospheric pressure, and altitude using the BMP180 sensor and sends real-time data to the Blynk IoT dashboard via Wi-Fi |
| 51 | ESP8266 Smart Home Automation using MicroPython & Blynk | ESP8266 + DHT11 + Relay | A cloud-based smart home automation system where an ESP8266 controls home appliances via relay and monitors temperature & humidity using DHT11, with real-time control and monitoring through the Blynk IoT dashboard over Wi-Fi |
| 52 | IoT Sensor Anomaly Detection using ESP8266 & ThingSpeak | ESP8266 + DHT11 + LDR + MATLAB | An IoT-based environmental monitoring system that uploads real-time sensor data to ThingSpeak and performs statistical anomaly detection using Z-score analysis in MATLAB, with visualization and outlier classification |
| 53 | Smart IoT Gas Monitoring System | ESP32 + MQ Gas Sensor + DHT11 + Flask + Chart.js | An AI-inspired end-to-end IoT gas monitoring system that streams real-time sensor data to a Flask backend, applies moving-average based anomaly detection for SAFE/DANGER classification, logs data for analytics, and visualizes live environmental insights on an interactive web dashboard |
| 54 | ESP8266 ESP-NOW LED Control | ESP8266 + ESP-NOW + MicroPython | A low-latency wireless LED control system using ESP-NOW protocol, where one ESP8266 acts as a transmitter and the other as a receiver, enabling real-time device control without WiFi infrastructure |
| 55 | ESP8266 ESP-NOW Button to LED Control | ESP8266 + ESP-NOW + MicroPython | A low-latency peer-to-peer wireless communication system where a push button on one ESP8266 toggles an LED on another ESP8266 without WiFi or access point |
| 56 | ESP8266 ESP-NOW 4-Channel Wireless Relay Controller | ESP8266 + ESP-NOW + MicroPython | A wireless 4-channel relay control system using two ESP8266 boards, where push buttons on the sender toggle relays on the receiver via low-latency ESP-NOW communication without WiFi |
| 57 | ESP-NOW Smart Relay & Sensor System | ESP8266/ESP32 + ESP-NOW + MicroPython | A bidirectional ESP-NOW based smart relay and sensor system where a sender control panel toggles relays on a receiver and receives real-time DHT temperature and humidity data displayed on an OLED |
| 58 | NTP Synchronized LED Matrix Clock | ESP32 + MAX7219 + MicroPython + NTP | A real-time internet-synchronized digital clock using chained MAX7219 LED matrices, showing HH:MM with NTP time sync and serial debugging output |
| 59 | AQI-ESP - IoT AQI Monitoring System | ESP32 + MicroPython + Flask + MQ135 + MQ7 + PM2.5 | A real-time air quality monitoring system using ESP32 and multiple gas sensors, calculating AQI via Flask backend and displaying live results on SSD1306 OLED with status like Good/Moderate/Unhealthy/Hazardous |
| 60 | Student Management System - ESP32 | ESP32 + MicroPython + SH1106 OLED + LittleFS + ujson | A serial command-based student record management system running on ESP32, storing up to 1000 student records in JSON format on onboard flash memory with live navigation and display on SH1106 OLED |
| 61 | OTA Update - Raspberry Pi Pico 2 W | Raspberry Pi Pico 2 W + MicroPython + GitHub + urequests | A WiFi-based OTA (Over-the-Air) update system that automatically downloads and applies new code from GitHub on every boot without physically connecting the device to a computer |
| 62 | Smart Indoor Security System | ESP32 + PIR Sensor + 4x4 Keypad + MicroPython + Favoriot IoT | A motion-triggered keypad security system that detects intruders, requests a password, logs all events to the Favoriot IoT cloud, and sends email alerts on unauthorized access |
| 63 | ESP32 BLE LED Control | ESP32 + MicroPython + Bluetooth Low Energy (BLE) | A BLE UART-based LED control system that allows wireless toggling of the onboard LED via smartphone commands, with connection status indication and real-time state feedback |
| 64 | microclawup — AI Powered ESP32 GPIO Controller | ESP32 + Groq AI + Telegram | AI-powered natural language GPIO controller using MicroPython, Groq AI and Telegram bot |
| 65 | MicroPython Watch | Xiao ESP32-S3 + SSD1306 OLED + OpenWeatherMap | NTP time sync + live weather on a 0.96" OLED display |
| 66 | micropidash — IoT Web Dashboard | Raspberry Pi Pico 2W / ESP32 | Non-blocking web dashboard with real-time sync, dark mode & sensor monitoring via uasyncio |
| 67 | Pulse Monitor — Heart Rate on OLED | ESP32 +Pulse Sensor+ OLED | Real-time BPM display with scrolling waveform & pixel-art heart on SSD1306 OLED via ADC peak detection |
| 68 | Joystick Servo Control | Raspberry Pi Pico 2W + SG90 Servo + Joystick Module | Smooth 0°–180° servo control via joystick X axis using PWM & 5-sample ADC averaging in MicroPython |
| 69 | Joystick Direction Display | Raspberry Pi Pico 2 + KY-023 Joystick + SSD1306 OLED | Real-time joystick direction detection displayed on OLED with raw ADC values using I2C and MicroPython |
| 70 | Dual IR Entry/Exit Detector with Telegram | ESP32 + HW-201 IR Sensor x2 + Red LED + Green LED | Dual IR sensor-based entry/exit detection system — red LED stays ON while object is inside, green LED blinks on exit, with real-time Telegram alerts |
| 71 | Wi-Fi Controlled 4WD Robot Car | ESP32 + L298N Motor Driver x2 + TT DC Motor x4 + 4WD Chassis | Wi-Fi controlled 4WD robot car — ESP32 hosts a web server, browser-based interface with Forward, Backward, Left, Right, Stop controls over local Wi-Fi |
| 72 | RFID Basic Access Control System | ESP8266 NodeMCU + MFRC522 + Green LED + Red LED | RFID based access control — ESP8266 reads MIFARE card UID over SPI, checks against authorised list, green LED for granted and red LED blinks for denied |
- Step-by-step progression from basic to advanced IoT concepts
- Hands-on experience with real hardware and simulations
- IoT dashboards using Web Server, WebSocket & Blynk
- Python & Matplotlib-based live data visualization
- Beginner-friendly documentation & explanations
- Clean, folder-wise project organization
- Complete 100 IoT projects in 100 days
- Each project includes:
main.py- Detailed
README.md - Circuit diagram / simulation
- Upcoming focus areas:
- Cloud & IoT dashboards
- OTA & firmware updates
- Power optimization
- Smart home & automation systems
- AI-assisted IoT (basic level) ation, and more
Kritish Mohapatra
Third Year B.Tech – Electrical Engineering
Interests: IoT | Embedded Systems | MicroPython | Automation
Building in public through #100DaysOfIoT
⭐ If you like this repository, give it a star on GitHub and follow for more IoT projects!
