ESP32 Thing

Components
- SparkFun ESP32 Thing
- Micro USB to USB cable
Setup Your Environment
Arduino IDE
- Install the Arduino IDE (Integrated development environment). You can download it for Mac OS X, Windows and Linux here.
Detailed instructions can be found below:
- Installing the Arduino IDE for Windows
- Installing the Arduino IDE for Mac
- Installing the Arduino IDE for Linux
Installing the board definitions
- Start the Arduino application and open
Preferences
- Enter
https://dl.espressif.com/dl/package_esp32_index.json
into theAdditional Board Manager URLs
field. If you need more than one, they can be separated with commas

- Go to
Tools > Board > Boards Manager
- Search for
esp32
. - When found, select version
1.0.1
and clickInstall
.
Our sketches do not compile successfully with ESP32 Board libraries higher than 1.0.1. Therefore it is recommended to use 1.0.1.

Selecting the board and port
Once you've got it connected to your computer, get the name of your device's port using one of the following steps:
Linux and Mac OS X
- Open a terminal window and run the command
ls /dev/tty*
- Look for a device with the name that begins with
/dev/tty
e.g./dev/tty.usbmodemPy343431
or/dev/ttyUSB0
.
Windows
- Download and install the FTDI drivers from here.
- Open the Windows start menu and search for 'Device Manager'
- The COM port for the ESP32 device will be listed as 'USB Serial Device' or something similar
- Keep note of the COM port (e.g. COM4)
- Select the
ESP32 Dev Module
board type by going toTools > Board
- Select the port that matches from above
Check that Upload Speed
is set to 115200
Create the Sketch
- Click on
File > New
to create a new Sketch - Copy and paste the publish event example code below in place of the empty
setup()
andvoid()
functions
const char* ssid = ""; // Your WiFi ssid
const char* password = ""; //Your Wifi password
WiFiClient client;
int status = WL_IDLE_STATUS;
// get this from the wia dashboard. it should start with `d_sk`
const char* device_secret_key = "";
// Wia API parameters
char server[] = "api.wia.io";
char path[] = "/v1/events";
int port = 80;
StaticJsonDocument<200> jsonBuffer;
HttpClient httpClient = HttpClient(client, server, port);
JsonObject root = jsonBuffer.to<JsonOBject>();
void setup() {
// initialize serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// attempt to connect to WiFi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, password);
// wait 10 seconds for connection:
delay(10000);
}
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
root["name"] = "hello-wia";
root["data"] = "";
// if you get a connection, report back via serial:
if (client.connect(server, port)) {
postToWia(root);
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
delay(3000); // Wait for 3 seconds to post again
}
void postToWia(JsonObject& data) {
String dataStr = "";
serializeJson(data, dataStr);
httpClient.beginRequest();
httpClient.post(path);
httpClient.sendHeader("Content-Type", "application/json");
httpClient.sendHeader("Content-Length", dataStr.length());
httpClient.sendHeader("Authorization", "Bearer " + String(device_secret_key));
httpClient.beginBody();
httpClient.print(dataStr);
httpClient.endRequest();
}
Replace the following values of the following variables:
ssid
- with your WiFi network namepassword
- with your WiFi network passworddevice_secret_key
with your device secret key from the Wia Dashboard (the one that begins withd_sk
)Verify/Compile
the code. If it runs correctly then go toSketch > Upload
to send it to your ESP-32 Thing
You may need to push the RST
(Reset) button to run the code on the board.
Viewing you output
- Click on button on the right hand of the screen to view your Serial monitor (Denoted in image below)
- Make sure the baud rate is set to
1152000
(Shown in red rectangle in image below)

If the Serial monitor doesn't show you connecting to a WiFi, You may need to push the RST
(Reset) button to run the code on the board.
Now go to your device in the Wia dashboard and you should see the data appearing in the debugger.
