# 100 Days 100 IoT Projects is a course you browse one folder at a time

> This repository is a 100 day learning log for IoT and embedded systems, where every day is a separate folder with its own README, code and circuit, built on ESP32, ESP8266 and Raspberry Pi Pico boards in MicroPython. The value for a reader is the index it provides, since the progression runs from an LDR and a potentiometer through displays, radios and cloud dashboards.

**kritishmohapatra/100_Days_100_IoT_Projects** — A 100-day challenge exploring IoT and embedded systems using ESP32, ESP8266, and Raspberry Pi Pico with MicroPython. Each day covers a new sensor or module with complete code, circuit diagram, and explanation.

- Repository: https://github.com/kritishmohapatra/100_Days_100_IoT_Projects
- Stars: 1,371 · Forks: 183
- Language: Python
- License: not declared
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/kritishmohapatra-100-days-100-iot-projects

## One folder per day, each with its own README

The repository is structured as a learning log rather than a library. The top level is a list of project directories with descriptive names, and the naming convention is the index: you can see the subject, the board and the language in the folder name alone, such as the DHT11 LCD display using ESP8266 and MicroPython folder, the Blynk based relay control folder, the ESP-NOW home automation folder, and the EEPROM simulation using MicroPython on ESP32 folder with Wokwi in the name. Each of those directories contains its own README, and the project list table in the main README links to those READMEs with a day number, the board and sensor, and a one line description. That is the shape of a course made of exercises rather than a product, and it means the fastest way to use it is to pick a day, open its folder, and read the circuit and the code.

## Three microcontroller families and two languages

The hardware list is broad for a personal learning project. The boards are ESP32 and ESP8266 as NodeMCU, Raspberry Pi Pico in its Pico, Pico W and Pico 2 W forms, the XIAO ESP32-S3, and Arduino UNO and Nano. The programming side is MicroPython for the microcontrollers, plain Python for the desktop side with Tkinter, CustomTkinter and Matplotlib, and Arduino with Python for talking to a board over Serial or through PyFirmata. That last combination is the one that makes the later projects possible, since a microcontroller doing the sampling and a laptop doing the interface is the standard shape for an IoT project with a dashboard, and PyFirmata is the bridge for the Arduino boards. The topics the repository carries also include C++, which points at the parts of the collection that are not MicroPython. Nothing here needs a build toolchain or a package manager, which is the practical advantage of the MicroPython choice for a learner: the code is a file you copy onto the board.

## The parts bin and the concepts behind them

The sensors and modules list is a decent parts bin for a starter kit: an LDR and a potentiometer for analogue input, the DHT11 for temperature and humidity, a PIR motion sensor, infrared and ultrasonic sensors including the HC-SR04, gas sensors in the MQ-4, MQ-7 and MQ-135 families, a DS3231 real time clock, a TM1637 display module, OLED and LCD screens, a relay, a servo and a touch sensor. The concepts covered are listed separately and they are the syllabus rather than the parts. Analogue to digital conversion, pulse width modulation and general purpose input output come first. Then networking, with Wi-Fi, a web server and WebSocket. Then Bluetooth and Blynk for connecting to a hosted IoT service. Then data logging and visualisation, and finally simulation-based testing. That last item is the one that catches the eye, and the tree confirms it, since a project folder is named for an EEPROM simulation on ESP32 with Wokwi, which is the browser based simulator.

## The first sixteen days, in order

The project table in the README covers the early days in a way that reads like a course outline. Day one is an automatic night light on an ESP32 with an LDR, where the LED switches on and off based on ambient light. Day two dims an LED with a potentiometer using analogue to digital conversion and pulse width modulation. Day three reads the DHT11 and serves the temperature and humidity on a live web page. Day four drives a single digit seven segment display from a Raspberry Pi Pico over GPIO. Day five is a mini weather station with a DHT11 and an I-squared-C LCD on an ESP8266, noted for displaying readings on a 16 by 2 LCD without flickering. Day six mixes RGB colours with three potentiometers. Day seven turns an analogue reading into a ten LED bar graph. Day eight is an MQ4 methane leak detector that triggers a buzzer above a threshold. Day nine shows date and time from a DS3231 on the serial monitor, day ten counts button presses on a webpage, day eleven animates a heart beat on a MAX7219 matrix, day twelve detects motion with a PIR on a Pico 2W, day thirteen drives an LED over HC-05 Bluetooth, day fourteen sets a servo angle from a browser over Wi-Fi, day fifteen is the ClimaPixel OLED weather display with icons, and day sixteen counts button presses on a TM1637 module.

## What the later folders show

The top level listing is the best evidence of where the course ended up, because the folder names describe the range of projects attempted. There is an air quality index project on ESP32, an Adafruit IO MQTT LED control and an Adafruit IO smart home automation project, a battery monitor with Blynk, bidirectional ESP-NOW communication with dual sensor nodes, a Blynk controlled DC brushless fan, a clap toggle switch with a digital sound sensor, a Cloud Neopixel control through Node-RED and MQTT, a DC motor speed control driven by a web slider, a dual IR entry and exit detector with Telegram alerts, an ESP32 IR sensor Telegram alert, an ESP32 OLED smart UI eyes animation showing time and weather, an ESP32 programming joke fetcher, an ESP32 student management system, a live graph of ESP8266 DHT11 readings with Matplotlib, an ESP8266 NTP digital clock, an ESP-NOW RFID display, a finger gesture controlled LED project, a flame sensor with a servo alert, a Flask server based LED control, a GC9A01 round display smartwatch, a GPS clock and location display with a NEO-6M and OLED, an interactive LED control system, a soil and weather monitoring project on ESP8266 with ThingSpeak, and an ESP32 atmospheric monitoring system with Blynk.

## Recognition, licensing and the state of the work

The project has been picked up outside the repository, which is worth recording for anyone judging its quality. There is a badge for a feature in an Adafruit newsletter, one for a feature on Hackster.io, and one for a feature at a Melbourne MicroPython meetup, whose page is the February 2026 edition. The repository is also listed in an awesome list of IoT projects. The licence field is not recorded, and the README carries a donation badge rather than a licence statement, so if you want to reuse a circuit or a script from one of the days, that is a question to settle yourself rather than something the repository answers. On maintenance, the repository is not archived, the last push was on 2026-07-17, and no GitHub releases have been published, so the work is a continuing series of commits rather than a versioned course you can pin to. The documentation lives in the project folders, which means a broken or missing image in one day does not affect the rest of the collection.

## Conclusion

This repository fits someone starting embedded work who wants a graded path rather than a random tutorial, because the days build on each other in a sensible order and each project names its board and its sensor in the folder itself. It does not fit a team that needs a library or a framework, because nothing here is packaged for reuse, and it does not fit a project with a hard licensing requirement, because the licence is not recorded. Before you copy anything from it, read the README inside the project folder you care about rather than assuming the pattern carries over, check that the board and sensor list still matches what you have, and note the state of the work, since the last push was on 2026-07-17 and no GitHub releases have been published.

## FAQ

### What is in the 100 Days 100 IoT Projects repository?

A collection of embedded and IoT projects built on ESP32, ESP8266, Raspberry Pi Pico and Arduino boards in MicroPython, with one directory per day, each holding its own README, code and circuit, and the main README indexing them by day, board and sensor.

### Which boards and sensors does the collection use?

ESP32 and ESP8266 NodeMCU, Raspberry Pi Pico in several variants, the XIAO ESP32-S3 and Arduino UNO and Nano, with sensors including LDR, potentiometer, DHT11, PIR, infrared, HC-SR04 ultrasonic, MQ-4, MQ-7 and MQ-135 gas sensors, DS3231 RTC, TM1637, OLED, LCD, relay, servo and a touch sensor.

### Which concepts are covered across the projects?

Analogue to digital conversion, pulse width modulation, GPIO, Wi-Fi, web servers, WebSocket, Bluetooth, Blynk IoT, data logging and visualisation, and simulation-based testing, the last of which shows up as a Wokwi based EEPROM simulation project.

### Is the 100 Days 100 IoT Projects repository still being worked on?

The repository is not archived and the last push was on 2026-07-17, and there are no GitHub releases. The licence is not recorded, which matters if you intend to reuse a project.

## Sources

- [Issues](https://github.com/kritishmohapatra/100_Days_100_IoT_Projects/issues)
- [kritishmohapatra/100_Days_100_IoT_Projects on GitHub](https://github.com/kritishmohapatra/100_Days_100_IoT_Projects)
- [README](https://github.com/kritishmohapatra/100_Days_100_IoT_Projects/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kritishmohapatra-100-days-100-iot-projects
