In this chapter, the main target is the implementation and testing of the communication between two or more ESP32 through direct Wi-Fi using mesh network topology and testing the algorithms of the system. Achieving a successful communication between two or more ESP32, several tasks were required to perform such as, connecting ESP32 to the Wi-Fi, connecting ESP32 to the cloud server
The implementation of the design of the system was divided into three major parts related to connectivity, communication, negotiation algorithm, and the mobile application. These tasks were selected because it was considered as the most important tests for recognizing the ability to implement the proposed design.
two tests were done using ESP32, the trials are:
- Connecting ESP32 to Wi-Fi router and this was found in Arduino IDE as an example that can be tracked using the embedded serial monitor found in Arduino.
- Connecting ESP32 to “EMONcms.io” cloud server to read the temperature.
Connecting ESP32 to ESP32 via Embedded Wi-Fi (Master to Multi-Slave). Where the slave recognition is done automatically with a tested range of 96 meters in the air gap in between. However, the next task was to start building the network using mesh network concept, at this stage using ESP_NOW protocol was theoretically acceptable but practically was not the best possible solution to implement, were an Arduino library called PainlessMesh that provides a flexible fully-distributed protocol for several numbers of devices. However, this protocol is more efficient with less complexity than the ESP_Now.
The mesh connection test was done using 3 devices (ESP32) and the results in serial monitors as shown in the below figure the basically show a simple message (Hello) were is sent by each device of the tested three devices that can be recognized by their ID numbers. Moreover, this test was aiming to see how the mesh works and to measure the delay locally (single message) and globally (broadcast message) among the connected appliances.