Book Image

ESP8266 Home Automation Projects

By : Catalin Batrinu, Constantin Tambrea
Book Image

ESP8266 Home Automation Projects

By: Catalin Batrinu, Constantin Tambrea

Overview of this book

The ESP8266 is a low-cost yet powerful Wi-Fi chip that is becoming more popular at an alarming rate, and people have adopted it to create interesting projects. With this book, you will learn to create and program home automation projects using the ESP8266 Wi-Fi chip. You will learn how to build a thermostat to measure and adjust the temperature accordingly and how to build a security system using the ESP8266. Furthermore, you will design a complete home automation system from sensor to your own cloud. You will touch base on data monitoring, controlling appliances, and security aspects. By the end of the book, you will understand how to completely control and monitor your home from the cloud and from a mobile application. You will be familiar with the capabilities of the ESP8266 and will have successfully designed a complete ready-to-sell home automated system.
Table of Contents (16 chapters)
Title Page
About the Author
About the Reviewer
Customer Feedback
Building a Home Thermostat with the ESP8266
Using ESP8266 to Build a Security System

Publishing data from the ESP8266

Start a new sketch via File | New in the Arduino IDE and paste in the following code. Include the ESP8266WiFi library and the PubSubClient one:

#include <ESP8266WiFi.h> 
#include <PubSubClient.h> 

Update these with values suitable for your network. Use ifconfig to get the IP address of the server where the Mosquitto broker is installed. If your server has an FQDN name such as and is registered into the DNS, then instead of the IP address in mqtt_server you can use the FQDN name:

const char* wifi_network = "YOUR_WIFI_SSID"; 
const char* wifi_pass = "YOUR_WIFI_PASSWORD"; 
const char* mqtt_serv_address = ""; 
const int mqtt_port_number = 1883; 

Instantiate a WiFiClient and pass it to the PubSubClient:

WiFiClient espClient; 
PubSubClient client(espClient); 
long lastMsg = 0; 
char msg[50];
int value = 0; 

The setup() function will start connecting the ESP8266 to the Wi-Fi network by calling the setup_wifi() function and set...