Now that it’s been some time since the ESP32 has been released and the software stack has matured, it’s safe to start building projects using this connected-ready hardware.
I’m a huge fan of Adafruit’s Feather boards; they are very reliable with an awesome community behind them. The Adafruit HUZZAH32 is their ESP32-based board.
Because of the cost—it’s just $19.95—and its support of Wi-Fi and Bluetooth, it’s my recommended connected microcontroller. In this tutorial, I am going to walk you through setting up the device and connecting it to the Internet.
To illustrate this, I’ve gathered the following components:
Let’s get started.
If this is your first time using the ESP32, you will have to install the USB drivers. If not, you won’t be able to flash your device. Here is where you can find the drivers:
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
Download and install the latest version of the Arduino IDE by following the instructions at:
https://www.arduino.cc/en/Main/Software
We will be using the Arduino IDE to flash the ESP32. Before we can begin flashing, we need to configure the IDE to support an ESP32-based board.
Installing the ESP32 Arduino core is a little daunting, but it should get better over time as the APIs mature. For now, you’ll have to install the board manually. There are instructions for every operating system here:
https://github.com/espressif/arduino-esp32#installation-instructions
Once you have the core installed, you should be able to go to Tools > Board
and select Adafruit ESP32 Feather
.
Use the Tools -> Port
menu to select the port of your ESP32. This will change depending on your operating system. On a Mac, it’s typically SLAB_USBtoUART
. On Windows, it will be named COM
and then a number, for example COM3
.
Now, our environment is ready to flash the ESP32. But first, let’s get the components wired up.
Here is the wiring diagram with all of the materials:
This wiring will appropriately set up the LED, the TMP36 (temperature sensor), and the switch (button).
We are so close to flashing! We need to gather some credentials from the cloud.
To begin, we need to create a device within Losant. Before we can flash the firmware, we need to input credentials from Losant. If you don't already have a Losant account, sign up for a free developer sandbox.
Once you’re in Losant, create an application, then create a device.
Our device will have the following three attributes:
The device attributes specify what state information the device reports. The firmware that you’ll flash in the following sections will report whenever a button is pressed, the temperature in Celsius (tempC), and the temperature in Fahrenheit (tempF).
Once you create your device, you will be presented with a Device ID. Be sure to copy this ID, you will need it later.
Now we need to generate an access key so your device can authenticate against the Losant Platform. Select Security from the application menu bar, and then Device Access Keys from the left navigation. Then click Add Access Key.
This will cause a popup to appear with your access tokens. Be sure to copy the key and secret, you will need them later.
You should now have a Device ID, Access Key, and Access Secret. We will need all three to connect to Losant. It is now time to flash the firmware.
Open up your Arduino IDE and copy/paste the following:
At the top, there are placeholders for credentials that you need to fill out. It looks like this:
// WiFi credentials.
const char* WIFI_SSID = "WIFI_SSID";
const char* WIFI_PASS = "WIFI_PASS";
// Losant credentials.
const char* LOSANT_DEVICE_ID = "LOSANT_DEVICE_ID";
const char* LOSANT_ACCESS_KEY = "LOSANT_ACCESS_KEY";
const char* LOSANT_ACCESS_SECRET = "LOSANT_ACCESS_SECRET";
You’ll need to provide:
Next, you can begin the flashing process by pressing the upload button:
Then, you should see a successful upload message like so:
Once you have successfully flashed, we can check Losant to verify that it’s reporting data. The best way to do so is by looking at the device logs. You can find this by looking to the right of your device's settings.
If you see logs, your device is connected and reporting properly.
Now that you have data being sent to the cloud, there is a lot you can do with it. You can react to it using the Losant Workflow Engine or even create a Dashboard. There is a lot to explore.
Resources:
For more information and inspiration, check out these tutorials:
Until next time, stay connected.