ESP Easy: firmware ESP8266 to create connected and home automation objects without programming

ESP Easy is an open source firmware that allows to program ESP8266 modules without any line of code (official page of the project). ESP Easy has evolved a lot since the 78 version I used in the previous article that explained how to make a connected object based on ESP Easy and connect it to Jeedom. ESPEasy can be installed directly from the Arduino IDE from the source code or from a small program (only available in Windows). ESP Easy embeds a mini web server that allows to configure the module remotely. Many sensors are supported: DS18B20 / DHT11 / DHT22 (temperature and humidity) TCR5000 (pulse counter), BMP085 / BMP280 / BME280 (digital barometer) BH1750 (brightness), Wiegand / PN532 (RFID), HC-SR05 (4 analog inputs 16 bits I2C), INA219 (current measurement) … as well as actuators (relays, led, servo, PWM …). ESP Easy also integrated (since version R120) a script editor that allows to create small scenarios, transforming the ESP8266 into a mini independent home automation server!

For this article, I used the R120 version of the firmware as well as a Wemos D1 Mini (presentation article).

Installing the ESPEasy firmware on an ESP8266 module

You can retrieve the latest stable firmware version on this page. The Download section is at the bottom of the page.

 espeasy page telechargement firmware

Once decompressed, the directory contains the following:

  • 3 binary files depending on the flash memory size of the destination module (512,1024 or 4096 KB)
  • Flash.exe, the firmware installer
  • The sources of the project allowing installation from the IDE Arduino and discover how ESP Easy works

liste fichiers est easyDepending on the ESP8266 module on which you are going to install ESP Easy, here is the available memory size

512Ko esp8266 esp-01 module Wifi ESP-01 (blue)

ESP-201

ESP-12

1024Ko esp8266 esp-01 black noir 1Mo flash ESP-01 (black)
4096Ko esp8266 Wemos D1 mini ESP-12E NodeMCU boards or Wemos D1 Mini for example

Some compatible ESP8266 development boards

Installing the firmware using the flash.exe program

Once you have recovered the COM port to which the ESP8266 is connected, the size of the memory, run flash.exe

Answer the three questions:

  • Comport: the port com
  • Flash size: the size of the flash memory of the ESP used
  • Build: Enter the firmware version number. Here 120

espeasy flashtool paramètres

Confirm to start the installation.

espeasy installation firmware terminee

First start of ESP Easy: WiFi configuration

After installation, the ESP8266 module reboots. ESP Easy embeds a web server that allows access to the configuration interface of the module. When you first boot, you will find the ESP on your Wi-Fi network. Open the Wi-Fi Connection Manager and select the ESP_0 network.

espeasy esp_0

Note. On some systems (including Linux), the default password configesp may be requested when connecting to ESP_0.

In a web browser, open http://192.168.4.1/setup . On macOS, the login window opens automatically after a few seconds. Choose the WiFi network to which the ESP must connect and enter the password.

espeasy configuration wifi

Then press connect

espeasy connexion module au reseau

Once connected, the ip address of the module is displayed (a few seconds!). If you missed the address, go to your internet box or router to find it.

espeasy adresse ip esp8266

Discovering the ESP Easy interface

The ESP8266 is ready for use. Let’s find out how it works. In a web browser, enter the ip address of the ES. The Web interface of ESP Easy consists of 4 tabs (+ 1 that we will see later). Everything is not documented on the Wiki of the project but here is the essential. A large number of settings are reserved for advanced applications and can be provided for future functions (nodes for example).

Main page: system summary

  • Load: CPU load
  • Uptime: Time in minutes of operation since power up
  • WiFi RSSI: reception quality of the WiFi network in dB
  • IP: ip address of the module
  • GW: ip address of the internet box or router
  • Build: firmware version
  • Unit: number of the node (from 1 to 31). Assigned in the config page.
  • STA/AP MAC: MAC Addresses
  • ID: ESP chip IDs and flash memory
  • Flash Size: flash memory size
  • Boot causes: Cold boot or Manual reboot (after pressing the reset button)

espeasy main page

Easy ESP nodes

To see the other ESP modules on your network you have to make several settings:

  • Assign a Unit nr (between 1 and 31) for each module
  • Assign a UDP port on the Tools / Advances / UDP Port page

espeasy node list

Config page: module configuration

This page allows you to configure the general parameters of the module:

  • Name: allows you to name the ESP. The name will be displayed in the browser window. Convenient when you have several ESP Easy objects
  • Admin Password: Protects access to ESP. It is taken into account after a reboot (reset) of the ESP8266.
  • SSID/WPA Key: Identifier and password for WiFi network access.
  • WPA AP Key Mode: password to connect from a smarphone or tablet (default configesp)
  • Unit nr: ESP module number between 1 and 31. Important if you have multiple modules and use the MQTT protocol.
  • Protocol and Controller fields: choice of communication protocol (see below) and parameters of this protocol. If you do not want to communicate with a home or remote server, choose Standalone.
  • Sensor Delay: default 60 seconds. Delay between 2 measurements (and therefore sending to the server).
  • Sleep Mode: Enables the sleep of the ESP8266 module. Recommended if your object is battery powered. It takes 30 seconds at startup to access the web interface and disable it if necessary. For some modules, pin 16 must be welded to the reset pin.

espeasy main settings

A fixed IP address can be assigned to the ESP8266

  • IP: the desired ip address
  • GW: the ip address of the router or the internet box
  • Subnet mask
  • DNS: IP address of the DNS server (the ip of your router in general)

espeasy adresse ip fixe module

Hardware Settings Page

This page allows you to configure the module’s GPIOs and assign a default behavior for each input / output:

  • WiFi Status Led: flashes a LED to track WiFi activity
  • SDA and SDL: GPIO reserved for I2C modules
  • GPIO boot states: allows you to assign a default state to each GPIO (default, input, Output HIGH, Output LOW)

espeasy hardware settings

Page Tools: advanced settings and tools

Before testing ESP Esay on a concrete case, let’s go to the Tools page to find out what it’s all about:

System

  • Reboot: restarts the ESP8266 module. Practical for maintenance, this avoids to move to press the reset button of the module.
  • Log: an event log. We will see how to modify the level of detail of the newspaper a little further.

Advanced Page

This page contains advanced settings but some are very useful as you see:

  • Subscribe/Publish Template: mask to subscribe / publish on an MQTT broker. This field is populated automatically when the MQTT protocol is selected
  • Message Delay: Frequency of publication of messages. Default is 1000ms (1 second). If you are publishing on ThingSpeak, increase the timeout to 15000.
  • Use NTP: allows you to retrieve the time on the internet
  • NTP Hostname: to indicate a time server. The default is pool.ntp.org
  • Timezone Offset: time offset. For France, enter 120 (add 2h)
  • Daylight Saving Time: Daylight saving time. Taken if NTP is enabled
  • Syslog IP: enter the ip address of a syslog server
  • Syslog level: level of detail of syslog messages
  • UDP port: the communication port between the ESPs. 514 is reserved for syslog
  • Enable Serial port: Enables or disables the output of messages on the serial port
  • Serial log Level: The level of detail of messages on the serial port
  • Web log Level: idem for ole web interface log (Log button in Tools)
    • 0: no log
    • 1: only errors
    • 2: Error + info
    • 3: error + info + debug
    • 4: error + info + detailed debug
  • Baud Rate: baud rate of the serial port
  • WD I2C Address: I2C address of watchdog
  • Custom CSS: Customize the layout of the Web interface. The file should be named esp.css and should not exceed 4 kB. To download it, go to Tools / Settings / Load
  • Connection Failure Threshold: Undocumented but must be the number of failed WiFi connections to avoid emptying the battery. To confirm.
  • Rules: Enables the display and execution of rules.

espeasy advanced tool page

Wi-Fi

  • Connect: allows you to connect to the configured WiFi network
  • Disconnect: disconnects the network module until the next reset / start
  • Scan: scan the Wifi network

Interfaces

Very practical, an I2C interface scanner that lists all the modules connected to the ESP. For example, a digital barometer BMP180.

espeasy i2c scanner

Settings

To save the configuration. The config.txt file is downloaded to your computer.

Loads a configuration. Two files are recognized:

  • config.txt which contains all the parameters of the modules except the security data (WPA key, password). You can exchange this file without risk. This is useful for backing up or cloning your project.
  • esp.css: allows to customize the display of the interface The file must not exceed 4ko.

Firmware

Allows you to install a new firmware wirelessly. The bin file is located in the firmware directory. You can also make your own firmware from the source code from the Arduino IDE (instructions here).

Command

ESP Easy offers 35 commands for testing, maintenance, etc. directly from the WEB interface. The complete list of commands is available here. You can even send a command from an ESP to another ESP. For example, order a relay connected to the GPIO 5. In the command field, enter

espeasy advanced tools send command

On the second ESP, the relay activates and the log traces the order history.

espeasy log second esp reception message

To disable the relay, send

To learn more about the rules system, read this tutorial.

Supported home automation protocols

ESP Easy supports multiple home automation protocols, allowing you to easily integrate small DIY connected objects into your favorite software or online service.

Natively supported home automation software

If you choose MQTT, it is important to assign a number (Unit nr) to each ESP. In this way the messages (commands) will be correctly sent to the destination node.

Domoticz: HTTP or MQTT

HTTP and MQTT protocols are supported. For the HTTP protocol, simply specify the ip address of the Domoticz server and the port (default 8080). It is possible to send and receive commands with the HTTP protocol.

easy-config-domoticz-http

MQTT can only send data to Domoticz at this time.

easy-config-domoticz-mqtt

OpenHAB: MQTT

OpenHAB does not have an MQTT broker installed by default. You can follow this article which explains how to do in detail. This is the best protocol if you want to communicate with Node-RED for example (a sample application).

easy-config-openhab-mqtt

PiDome: MQTT

PiDome is still a very young project. There may still be malfunctions.

easy-config-pidome-mqtt

Online services: EmonCMS, ThingSpeak

The online services EmonCMS (energy consumption monitoring) and ThingSpeaks (data acquisition for connected objects) are natively supported by ES Easy. You must have a key (API-KEY) after registration free of charge to the service. Be sure to limit the time to send messages to 15000 (Tools / Advanced) for ThingSpeak.

easy-config-thingspeak

Generic HTTP and Generic UDP

If your preferred software or online service is not listed, these two protocols allow you to communicate generically in HTTP or UDP. However, the HTTP Generic protocol is limited to sending data (the protocol does not work in reception) for the following types only SENSOR_TYPE_DIMMER, SENSOR_TYPE_LONG, SENSOR_TYPE_DUAL, SENSOR_TYPE_TRIPLE. The use of this protocol is therefore still very limited. I advise you rather to fall back on MQTT.

This is the protocol you can use to communicate with Jeedom. Read this article that explains how to create a remote display using an OLED screen to display weather forecast for example.

jeedom affichage oled ssd1306 esp easy meteo

Other home automation software

It is not because they are not in the list (Jeedom, Home Assistant …) that one can not communicate with ESP Easy. For example, you can go to a Domoticz MQTT database and customize the MQTT topics in the Tools / Advanced page.

For example, for Home Assistant, I found this configuration on the project forum.

Configuring a Device

Now that you know a lot of the features of ESP Easy, we’ll be able to configure a device. Go to the Device page. Up to 12 devices can be configured. They are grouped by 4. We move from one page to another using the blue arrows.

esp-easy-change-page-device

If you find that 12 devices are not enough, you can opt for I2C sensors or actuators.

For this tutorial, we will recover the temperature and atmospheric pressure measurement returned by a BMP180. The BMP180 communicates with the ESP8266 via the I2C protocol. By default, the SDA pin must be connected to the GPIO-4 (D6 on the Wemos D1 Mini) and the SCL pin to the GPIO-5 (D7 on the Wemos). Go to Tools then scan the I2C bus to find the address of the sensor. In my case it is at address 0x77.

espeasy i2c scanner

Click Edit in the-  first box.

From the Device list, choose Temperature & Pressure – BMP085. There is (almost) always an online help for the selected material. Then:

  • Give a name. A name with no preference space (will be required in the Rules)
  • A measurement delay. Attention, the lower it will be, the greater the consumption. Think about your battery.
  • IDX / Var: this is the identifier of the Domoticz device. Even if you do not use Domoticz, assign a number if nothing will work.
  • Send Data: Enables or disables the sending of data
  • Give a name to the values. A short name without space (will be required in the Rules).
  • Click Submit to save the configuration
The BMP180 is the replacement for the BMP085. Its operation is identical.

esp-easy-configuration-bmp085-bmp180

Summary calculations (eg, unit conversion) can be performed for each value returned by the sensor. The variable containing the value to be manipulated must be enclosed by%. Note, however, that we are limited to simple operators (+; -; /; -) and it is not possible to retrieve the value of one field for use in another.

Return to the Devices (Close) page. You should have your first steps. Refresh the page if it is not. If nothing is displayed, check that the IDX is not 0.

espeasy liste device bmp180

So, creating a digital barometer and sending the measurements online or on a home automation server is as simple as that!

Supported by ESPEasy

In the R120 version, ESPEasy supports the following hardware.

Warning. Technical specifications. Check the characteristics of your equipment before use.

Sensors, analog or digital inputs

tcr5000 Pulse counter

  • TCR5000
dallas-ds18b20 Temperature

BMP180 Barometer

  • BMP085/BMP180  : temperature from -40 to + 85°C, atmospheric pressure from 300 to 1100hPa
  • BME280 : temperature from -40 to + 85°C, humidity from 0 to 100%, atmospheric pressure from 300 to 1100 hPa
  • BMP280 : temperature from -40 to + 85°C, atmospheric pressure from 300 to 1100 hPa
  • MS5611
bh1750 Luminosity

  • BH1750 : from 0 to 65535 lux, 16 bits.
  • TSL2561 : from 188 μLux to 88000 lux
Broches DHT22 Temperature and Humidity

 pn532 RFID

hc-sr04 Distance

bouton-poussoir Switchs
ESP8266 analog input
ads1115 External analog input

mcp23017 Digital inputs

ir keyes ky-022 Infrared receiver
gp2y10 Dust

  • GP2Y10 : size from 0,8µm. 0.5V for 0.1mg/m3.
ina219 Tension and Intensity

Be careful to respect the characteristics of your sensor before any connection. You are responsible for any deterioration of your equipment. Caution, handling power is dangerous for your health. Do not make any connections if you do not have the skills
  • INA219 : I2C, 0 to 26V, 3.2A max.

Actuators, screens

ESP8266 Numerical output : Led, servo, relais
mcp23017 More numerical outputs

pca9685 PWM

  • PCA9685 : I2C, 16 chanels 12 bits
oled ssd1306 ecran i2c Display

ESP Easy compatible sensors and actuators offers

-5% Smart Electronics 4pin Flame Sensor Fire Detection Module Ignition Source Detects Infrared...
$0.37 $0.39
Buy this item
AliExpress
-15% 10 pcs Tactile Push Button Switch Tact Switch for Arduino 4P DIP...
$0.39 $0.46
Buy this item
AliExpress
Ultrasonic Module HC-SR04 Distance Measuring Transducer Sensor
$0.85
Buy this item
AliExpress
1PCS GY-302 BH1750 BH1750FVI light intensity illumination module 3V-5V
$0.90
Buy this item
AliExpress
New 1PCS Imported DALLAS DS18B20 18B20 18S20 TO-92 IC CHIP Thermometer Temperature...
$0.93
Buy this item
AliExpress
-4% 1B1 New Temperature and Relative Humidity Sensor DHT11 Module with Cable
$0.98 $1.03
Buy this item
AliExpress
Luminosity Sensor GY-2561 TSL2561 Light Module
$1.28
Buy this item
AliExpress
1PCS TENSTAR ROBOT GY-68 BMP180 Replace BMP085 Digital Barometric Pressure Sensor Module
$1.29
Buy this item
AliExpress
-5% 1Pcs DS18b20 Stainless Steel Package Waterproof DS18b20 Temperature Probe Temperature Sensor 18B20...
$1.31 $1.38
Buy this item
AliExpress
C302 Free shipping Zero drift CJMCU - 219 INA219 I2C interface Bi-directional...
$1.58
Buy this item
AliExpress
5PCS PCF8574P DIP16 PCF8574 DIP new and original IC free shipping
$1.58
Buy this item
AliExpress
-5% New Serial Interface Module IIC I2C MCP23017 SPI MCP23S17 Bidirectional 16-Bit I/O...
$1.69 $1.78
Buy this item
AliExpress
TENSTAR ROBOT DHT22 Digital Temperature and Humidity Sensor AM2302 Module+PCB with Cable
$2.58
Buy this item
AliExpress
-7% Industrial High Precision Si7021 Humidity Sensor with I2C Interface
$2.68 $2.91
Buy this item
AliExpress
-4% BME280 Digital Sensor Temperature Humidity Barometric Pressure Sensor Module I2C SPI 1.8-5V...
$3.06 $3.22
Buy this item
AliExpress
-10% 0.96 inch IIC Serial White OLED Display Module 128X64 I2C SSD1306 12864...
$3.39 $3.77
Buy this item
AliExpress
PCF8591 AD/DA Converter Module Voltage Acquisition Sensor With Connection Cable For Arduino
$3.39
5Color Keycap 25Pcs Tactile Push Button Switch Momentary 12*12*7.3MM Micro Switch Button...
$3.60
Buy this item
AliExpress
Micro SD TF Card Memory Shield Module SPI Micro SD Adapter For...
$3.94
1PCS LCD2004+I2C 2004 20x4 2004A blue screen HD44780 Character LCD /w IIC/I2C...
$4.10
Buy this item
AliExpress
GY-BMP280-3.3 High Precision Atmospheric Pressure Sensor Module For Arduino
$5.19
SHARP GP2Y1010AU0F Compact Optical Dust Sensor Smoke Particle Sensor With Cable PM2.5...
$5.88
Buy this item
AliExpress
GY-63 MS5611-01BA03 High-resolution Atmospheric Height Sensor Module IIC / SPI Communication MS5611
$6.85
Buy this item
AliExpress
CJMCU-MLX90614 AAA Non Contact Human Body Infrared IR Thermometer Serial Output Module...
$9.59

Conclusions

ESP Easy is a very powerful and very easy to use firmware. If you start (and even if you do not start), you may wonder why you should use your Arduino code editor. For small connected objects (sensors, actuators …) intended for home automation, ESP Easy will do wonders effortlessly. The other great force and its web interface which allows to do everything without having to have physical access to the ESP8266 to reprogram it (the update in the air is not yet so simple). The other major novelty of the R120 and the possibility of creating rules (Rules) which will allow to create small independent automatons, virtually a mini home automation server.

However, ESP Easy is limited to the list of sensors and actuators offered by the firmware. If your hardware is not in the list, it will take a little tinkering … or change the firmware from the source code, but here we move away from the project easy to implement!

 

Subscribe to the weekly newsletter

No spam and no other use will be made of your email. You can unsubscribe anytime.

Tags:

DIY Projects