2018-01-20 - By Mahadev Sharma, Madhav Chadha, Rishabh Verma, Robert Elder
This article is a review of a capstone project completed by Mahadev Sharma, Madhav Chadha and Rishabh Verma. During the course of their project, they demonstrated a number of milestones including:
- Flashing the ESP8266 module with USB to serial TTL cable (without an arduino).
- The use of deep sleep mode with periodic wakeups to read temperature.
- Serving a small web page from the ESP8266.
- Network enabled temperature and humidity sensing using the ESP8266.
- Testing out ESP8266 modules from 2 different vendors.
Additional documentation, screenshots and source code can be found in their GitHub repo.
Two different ESP8266 modules were used and successfully flashed. One was purchased from Sparkfun for $6.95 USD and the other was from addicore for $3.45 USD. The team did not discover any issues with either ESP8266 module. The power module used was from this breadboard prototyping kit.
Here is an overhead view of the circuit that was used for flashing the module:
The serial TTL module that was used was the SparkFun USB UART Serial Breakout - CY7C65213.
One of their demos was to set up a simple web page that is served from the ESP8266 module that allows the user to select whether they want to turn a light on or off.
The team found that one of the electrical contacts of the VIO on the serial TTL module was poor, so they used a paper clip to push the header against it for better electrical contact. The team found that this issue was the cause of the intermittent error 'A fatal error occurred: Failed to connect to ESP8266' when using the esptool.py.
The above web page is served from the ESP8266-1 module itself. The code for building the above web page is build directly on the ESP8266 module. The ESP module can be used to both connect to, and host a secure WiFi network.
Deep Sleep mode
The team did a proof of concept demonstration of using deep sleep mode. You can find their demo source code for deep sleep mode here. Precise measurements of current consumption were not performed, however the DC current draw appears to be around 1ma in deep sleep mode. The conclusion is that the ESP module would be capable to going into deep sleep for incredibly long times (weeks or months) on a small household battery.
The team also demonstrated the use of a simple weather tracking sensor. You can find their demo source code for weather tracking via the ESP8266 here. Below you will find a screenshot from the final prototype that is described in the repo:
The ESP8266 module is a very versatile low-power, low-cost module that can do a lot of impressive things! I found it particularly impressive how easy it is to serve a small web page from the module. The other important conclusion is that you can use the ESP module as a stand-alone processor without an Arduino in a production application.