# kritishmohapatra/100_days_100_iot_projects architecture

> Architecture diagram of the GitHub repository kritishmohapatra/100_days_100_iot_projects, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kritishmohapatra/100_days_100_iot_projects
- Repository: https://github.com/kritishmohapatra/100_days_100_iot_projects

## Overview

This repository is a portfolio of independent MicroPython and Python IoT projects, not one integrated application. The recurring workflow is sensor or user input on a microcontroller, local processing, then display, actuator control, or transfer to a network service/dashboard. The graph highlights documented capability branches and sampled examples; links between independent projects are intentionally absent. Several project paths come from the tree and README, while implementation details are only described where source excerpts were provided.

Main entry points: [`PicoSense_Dashboard/Main Files/app.py`](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/PicoSense_Dashboard/Main%20Files/app.py) (PicoSense dashboard), [`Cloud_NeoPixel_Control_via_Node_RED_and_MQTT/Main Files/main.py`](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Cloud_NeoPixel_Control_via_Node_RED_and_MQTT/Main%20Files/main.py) (MQTT LED projects), [`ClimaPixel_Mini_Weather_Display/Main Files/main.py`](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/ClimaPixel_Mini_Weather_Display/Main%20Files/main.py) (Weather displays), [`GPS_Clock_and_Location_Display_(NEO_6M_OLED)/Main Files/main.py`](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/GPS_Clock_and_Location_Display_(NEO_6M_OLED)/Main%20Files/main.py) (GPS clock display)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sensing["Sensing and display"]
  node_sensor(("Physical sensors"))
  node_weather["Weather displays<br/>[main.py]"]
  node_gps["GPS clock display<br/>[main.py]"]
  node_student["Student records UI<br/>[main.py]"]
  node_smartwatch["Round smartwatch<br/>[main.py]"]
end

subgraph group_control["Local and web control"]
  node_button_counter["Button counter<br/>[main.py]"]
  node_servo_web["Web servo controller<br/>[main.py]"]
  node_neopixel_web["Web NeoPixel control<br/>[main.py]"]
  node_smart_home["Smart home relays<br/>[main.py]"]
end

subgraph group_networked["Wireless and cloud"]
  node_security["Indoor security<br/>[main.py]"]
  node_esp_now["ESP-NOW projects<br/>[sender.py]"]
  node_mqtt_led["MQTT LED projects<br/>[main.py]"]
end

subgraph group_dashboards["Data dashboards"]
  node_picosense_device["PicoSense device<br/>[main.py]"]
  node_picosense_app["PicoSense dashboard<br/>[app.py]"]
  node_gas_device["Gas monitor device"]
  node_gas_app["Gas dashboard<br/>[app.py]"]
end

node_mqtt_broker(("MQTT broker"))
node_cloud(("IoT cloud service"))
node_browser(("Browser user"))
node_oled(("OLED display"))
node_gps_module(("GPS module"))
node_sensors(("Sensor inputs"))
node_actuators(("LEDs and relays"))
node_serial_user(("Serial user"))

node_gps_module -->|"sends NMEA"| node_gps
node_gps -->|"renders location"| node_oled
node_sensor -->|"provides readings"| node_weather
node_weather -->|"renders weather"| node_oled
node_serial_user -->|"enters commands"| node_student
node_student -->|"renders records"| node_oled
node_sensor -->|"detects motion"| node_security
node_security -->|"posts alerts"| node_cloud
node_browser -->|"sets angle"| node_servo_web
node_servo_web -->|"drives servo"| node_actuators
node_browser -->|"sets light mode"| node_neopixel_web
node_neopixel_web -->|"updates LEDs"| node_actuators
node_browser -->|"reads count"| node_button_counter
node_button_counter -->|"reads buttons"| node_sensors
node_browser -->|"views and controls"| node_picosense_app
node_picosense_device -->|"publishes readings"| node_mqtt_broker
node_picosense_app -->|"subscribes and commands"| node_mqtt_broker
node_mqtt_broker -->|"delivers readings"| node_picosense_app
node_picosense_app -->|"publishes commands"| node_mqtt_broker
node_mqtt_broker -->|"delivers commands"| node_picosense_device
node_gas_device -->|"posts readings"| node_gas_app
node_gas_app -->|"shows status and trends"| node_browser
node_smart_home -->|"publishes readings"| node_cloud
node_cloud -->|"dispatches relay commands"| node_smart_home
node_mqtt_led -->|"subscribes commands"| node_mqtt_broker
node_mqtt_broker -->|"dispatches commands"| node_mqtt_led
node_mqtt_led -->|"controls NeoPixels"| node_actuators
node_esp_now -->|"controls home devices"| node_actuators

click node_weather "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/ClimaPixel_Mini_Weather_Display/Main%20Files/main.py"
click node_gps "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/GPS_Clock_and_Location_Display_(NEO_6M_OLED)/Main%20Files/main.py"
click node_student "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/ESP32_Student_Management_System/ESP32/main.py"
click node_smartwatch "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/GC9A01_Round_Display_Smartwatch/Main%20Files/main.py"
click node_button_counter "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/IoT_Button_Counter_using_ESP8266_%26_MicroPython/Main%20Files/main.py"
click node_servo_web "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Pico_W_Web_Servo_Controller/Main%20Files/main.py"
click node_neopixel_web "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Pico_2_W_NeoPixel_Web_Controller/Main%20Files/main.py"
click node_smart_home "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Adafruit_IO_Smart_Home_Automation/Main%20Files/main.py"
click node_security "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Smart_Indoor_Security_System/ESP32/main.py"
click node_esp_now "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/ESP_NOW_HOME_AUTOMATION/Main%20Files/sender.py"
click node_mqtt_led "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Cloud_NeoPixel_Control_via_Node_RED_and_MQTT/Main%20Files/main.py"
click node_picosense_device "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/PicoSense_Dashboard/Main%20Files/main.py"
click node_picosense_app "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/PicoSense_Dashboard/Main%20Files/app.py"
click node_gas_device "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Smart_IoT_Gas_Monitoring_System/ESP32/esp32_sensor_code.py"
click node_gas_app "https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Smart_IoT_Gas_Monitoring_System/Python/app.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sensor,node_weather,node_gps,node_student,node_smartwatch,node_browser,node_serial_user toneBlue
class node_button_counter,node_servo_web,node_neopixel_web,node_smart_home toneAmber
class node_security,node_esp_now,node_mqtt_led toneMint
class node_picosense_device,node_picosense_app,node_gas_device,node_gas_app toneRose
class node_mqtt_broker,node_cloud,node_oled,node_gps_module,node_sensors,node_actuators toneIndigo
```

## Components

### Sensing and display

- **Physical sensors**
- [Weather displays](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/ClimaPixel_Mini_Weather_Display/Main%20Files/main.py): `ClimaPixel_Mini_Weather_Display/Main Files/main.py`
- [GPS clock display](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/GPS_Clock_and_Location_Display_(NEO_6M_OLED)/Main%20Files/main.py): `GPS_Clock_and_Location_Display_(NEO_6M_OLED)/Main Files/main.py`
- [Student records UI](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/ESP32_Student_Management_System/ESP32/main.py): `ESP32_Student_Management_System/ESP32/main.py`
- [Round smartwatch](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/GC9A01_Round_Display_Smartwatch/Main%20Files/main.py): `GC9A01_Round_Display_Smartwatch/Main Files/main.py`

### Local and web control

- [Button counter](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/IoT_Button_Counter_using_ESP8266_%26_MicroPython/Main%20Files/main.py): `IoT_Button_Counter_using_ESP8266_&_MicroPython/Main Files/main.py`
- [Web servo controller](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Pico_W_Web_Servo_Controller/Main%20Files/main.py): `Pico_W_Web_Servo_Controller/Main Files/main.py`
- [Web NeoPixel control](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Pico_2_W_NeoPixel_Web_Controller/Main%20Files/main.py): `Pico_2_W_NeoPixel_Web_Controller/Main Files/main.py`
- [Smart home relays](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Adafruit_IO_Smart_Home_Automation/Main%20Files/main.py): `Adafruit_IO_Smart_Home_Automation/Main Files/main.py`

### Wireless and cloud

- [Indoor security](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Smart_Indoor_Security_System/ESP32/main.py): `Smart_Indoor_Security_System/ESP32/main.py`
- [ESP-NOW projects](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/ESP_NOW_HOME_AUTOMATION/Main%20Files/sender.py): `ESP_NOW_HOME_AUTOMATION/Main Files/sender.py`
- [MQTT LED projects](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Cloud_NeoPixel_Control_via_Node_RED_and_MQTT/Main%20Files/main.py): `Cloud_NeoPixel_Control_via_Node_RED_and_MQTT/Main Files/main.py`

### Data dashboards

- [PicoSense device](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/PicoSense_Dashboard/Main%20Files/main.py): `PicoSense_Dashboard/Main Files/main.py`
- [PicoSense dashboard](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/PicoSense_Dashboard/Main%20Files/app.py): `PicoSense_Dashboard/Main Files/app.py`
- [Gas monitor device](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Smart_IoT_Gas_Monitoring_System/ESP32/esp32_sensor_code.py): `Smart_IoT_Gas_Monitoring_System/ESP32/esp32_sensor_code.py`
- [Gas dashboard](https://github.com/kritishmohapatra/100_days_100_iot_projects/blob/main/Smart_IoT_Gas_Monitoring_System/Python/app.py): `Smart_IoT_Gas_Monitoring_System/Python/app.py`

### Other components

- **MQTT broker**
- **IoT cloud service**
- **Browser user**
- **OLED display**
- **GPS module**
- **Sensor inputs**
- **LEDs and relays**
- **Serial user**

## Connections

- GPS module → GPS clock display: sends NMEA
- GPS clock display → OLED display: renders location
- Physical sensors → Weather displays: provides readings
- Weather displays → OLED display: renders weather
- Serial user → Student records UI: enters commands
- Student records UI → OLED display: renders records
- Physical sensors → Indoor security: detects motion
- Indoor security → IoT cloud service: posts alerts
- Browser user → Web servo controller: sets angle
- Web servo controller → LEDs and relays: drives servo
- Browser user → Web NeoPixel control: sets light mode
- Web NeoPixel control → LEDs and relays: updates LEDs
- Browser user → Button counter: reads count
- Button counter → Sensor inputs: reads buttons
- Browser user → PicoSense dashboard: views and controls
- PicoSense device → MQTT broker: publishes readings
- PicoSense dashboard → MQTT broker: subscribes and commands
- MQTT broker → PicoSense dashboard: delivers readings
- PicoSense dashboard → MQTT broker: publishes commands
- MQTT broker → PicoSense device: delivers commands
- Gas monitor device → Gas dashboard: posts readings
- Gas dashboard → Browser user: shows status and trends
- Smart home relays → IoT cloud service: publishes readings
- IoT cloud service → Smart home relays: dispatches relay commands
- MQTT LED projects → MQTT broker: subscribes commands
- MQTT broker → MQTT LED projects: dispatches commands
- MQTT LED projects → LEDs and relays: controls NeoPixels
- ESP-NOW projects → LEDs and relays: controls home devices
