Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 IoT Telemetry Node

Status Language Platform Protocol Docker Node-RED

Note

Project Status: Archived / Completed. This repository is finalized and is no longer actively maintained. It remains public as a portfolio project.

🔍Overview

This project implements a secure, full-stack IoT Edge Node architecture. It captures environmental data (Temperature & Humidity) via an ESP32 and transmits it wirelessly using the MQTT protocol to a containerized backend.

The system is designed with a focus on scalability and security best practices, featuring decoupled credentials, non-blocking I/O, Deep Sleep power optimization, and a Dockerized infrastructure ready for deployment.

🎯Key Features

  • Protocol: MQTT (Lightweight Pub/Sub messaging).
  • Data Format: JSON Serialization ({"device": "id", "temp": 24.0...}) for interoperability with Cloud services.
  • Resilience: Automatic Wi-Fi and MQTT reconnection logic.
  • Security: Credentials decoupled via secrets.h (GitOps best practice) and sensitive tokens excluded from version control.
  • Energy Efficiency: Deep Sleep mode integration (10s sleep cycle) for battery-powered operation.
  • Infrastructure as Code: Full backend stack (Broker + Logic) defined in docker-compose.yml.

📁Project Structure

/ESP32-IoT-Telemetry
├── /backend                    # Server-side configuration
│   ├── /node_red_data          # Logic flows & settings (Pre-configured)
│   └── mosquitto.conf          # MQTT Broker configuration
├── /firmware
│   └── /Edge_Telemetry_Node    # ESP32 C++ Firmware
│       ├── Edge_Telemetry_Node.ino
│       ├── WifiUtils.h
│       └── secrets_example.h
├── docker-compose.yml          # Container orchestration script
└── README.md

⚙️Hardware Requirements

  • Microcontroller: ESP32 DevKit V1.
  • Sensor: DHT11 (Temperature & Humidity).
  • Connection: DHT11 Data Pin connected to GPIO 4.

⬇️Setup & Installation

  1. Clone or Download this repository.
  2. Configuration:
    • Navigate to /firmware/Edge_Telemetry_Node/.
    • Rename SecretsExample.h to secrets.h.
    • Open secrets.h and enter your Wi-Fi SSID, Password, and MQTT Broker IP.
  3. Deploy:
    • Open Edge_Telemetry_Node.ino in Arduino IDE.
    • Install required libraries: PubSubClient and DHT sensor library.
    • Upload the firmware to the ESP32.

🐳Backend Deployment (Docker)

This project includes a fully containerized infrastructure using Docker Compose. It automatically sets up the MQTT Broker and the Logic Layer (Node-RED).

Prerequisites

Quick Start

  1. Navigate to the project root directory.
  2. Run the stack:
    docker-compose up -d

🚀Future Improvements (Concluded)

The project is finalized. The initial roadmap targets were:

  • Deep Sleep mode integration for battery optimization (Implemented).
  • Implementation of TLS/SSL (MQTTS) for encrypted communication (Out of scope).
  • Integration with a Time Series Database (InfluxDB) and Grafana (Out of scope).

📜Credits & Acknowledgements


Open Source Project for Educational Purposes

About

An end-to-end telemetry pipeline capturing environmental data via ESP32 and transmitting it wirelessly via MQTT to a dockerized backend.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages