Earlier we looked at a method of programming ESP8266 to send sensor data directly to Google Sheets without using any third party modules. Now, we will expand that a little bit and learn to send an email as well as a text message (SMS) using ESP8266. In this demo, we will configure our ESP8266 to send an email and a text message when the value of a variable (which could be a sensor output, or any other physical quantity) goes beyond a threshold limit.
This is not entirely a new topic as there are similar tutorials available online to show how to do this. This article particularly focusses on just using the ESP8266 and Google environment to send email or a text message.
Send Text and Email from NodeMCU
In the past couple years, the ESP8266 platform has flourished dramatically and emerged as one of the most popular hardware tools among electronics hobbyists and IoT enthusiasts. Packed with a 32-bit RISC CPU running at 80 MHz, a fully integrated WiFi radio with TCP/IP protocol stack, serial peripherals (I2C, SPI, and UART), an ADC channel, and general purpose I/O pins, the ESP8266 is the most integrated and affordable WiFi solution available in the current IoT market space. An ESP8266 hardware, like NodeMCU and ESP-01, can directly interface with sensors using its peripherals and upload the sensor measurements to a local or a remote web server via internet. Right now, there are already quite a bit of cloud IoT platforms (ThingSpeak, thinger.io, TESPA.io, Xively, … the list is getting bigger everyday) that provides APIs and tools to allow the ESP8266 users to directly upload their sensor readings online for real-time visualization and global access. If you are a regular user of Google Drive, like me, you would find a Google sheet more approachable than all those IoT cloud platforms. In this tutorial, I will describe a method of connecting the ESP8266 device directly to a Google sheet for storing the sensor data without using any third party plugin. For illustration, I am using a NodeMCU board that reads the analog output from a soil moisture sensor inserted into one my flower pots and directly connects to a spreadsheet on my Google Drive for storing the data.
ESP8266 data logging to Google spreadsheets
Pulse Width Modulation (PWM) is a digital method of delivering a varying amount of power to a load, and hence can be used to control the brightness of an LED or speed of a DC motor. Controlling the power, we will make this tutorial colorful using a Red Green Blue (RGB) LED. Each segment (lead) of an RGB-LED will get a PWM signal via RgbLed class allowing us to illuminate the RGB-LED with any color defined by RGB. This class can also generate random colors. Using the RgbLed class, some standard colors can also be sent to a RGB-LED.
RGB-LED illuminating a purple color
In our earlier tutorial, Writing to an SD Card, we learned to write to an SD card. As you might have experienced, in order to see what’s been written, we need to pop out the SD then connect it to a computer, which obviously is not very convenient all the time. So, in this tutorial we will read a text file (same file/information that we wrote in previous tutorial) and send that text to a computer. Our communication between Netduino SD card and Computer is established via Serial Communication using USB to UART-TTL device. So, the information will be transferred to a computer in a Component Object Model (COM) port.
Text file content form SD card
There are two major parts of this tutorial; first reading the data from SD Card and sending it to a computer, second an application listening to a COM port to retrieve the data. Besides these, in this tutorial we will touch on following major objects:
- Serial Communication
- EventHandler (Native and SerialDataReceived)
Expandable memory is always a plus no matter whether it’s a Phone, Camera or a Microcontroller. Even advantageous if we know how to use it. In this fifth day Netduino tutorial, we will learn a few writing operations about an SD card. We will learn how to write to a text file, shown as an example of writing a log. The Logger class is also capable of creating a text file at any given location then writing some text information to it.
SD Card in Netduino Plus