IoT Home Automation

Telecommunications Web Development

Project Overview

IoT Home Automation

This open-source smart home project centralizes the management of connected home devices (temperature and humidity sensors, lighting, door actuators) into a single web dashboard. The network is built on ESP8266 and Arduino microcontrollers sending telemetry data via the ultra-lightweight MQTT protocol to a central broker running on a Raspberry Pi.

The main server runs Node.js and Express to host the control dashboard and stores metric histories in a time-series database.

Technical Details

Technologies Used

Arduino Raspberry Pi ESP8266 MQTT Protocol Node.js Express.js WebSockets

Project Duration

8 months (January - August 2023)

Challenges and Solutions

The challenges overcome include:

  • Designing a resilient MQTT communication protocol layer handling sudden hardware disconnections and automatic retries.
  • Energy optimization of the Arduino/ESP8266 C++ codebase to run sensors on small batteries for months using Deep Sleep modes.
  • Developing a fluid, responsive frontend dashboard updated in real-time via WebSockets.

Code Examples

ESP8266 MQTT Publisher in C++

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
  
WiFiClient espClient;
PubSubClient client(espClient);
  
void connectMQTT() {
    while (!client.connected()) {
        if (client.connect("ESP8266Client")) {
            client.publish("home/temp", "21.5");
        } else {
            delay(5000);
        }
    }
}

C++ microcode establishing a resilient MQTT publisher for climatic home metrics.

Project Gallery

Home automation dashboard showing live telemetry widgets

Conclusion and Results

This home automation system optimized home heating consumption by 15% and delivered a highly secure, completely private, self-hosted monitoring solution.

Back to Projects