Skip to content

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

Latest commit

 

History

14 Commits

Folders and files

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