Introduction: SPEEEduino (Arduino+ESP01): the Basics
The SPEEEduino (pronounced spee-duino) is a custom Arduino, made to interface with an ESP8266-01 module (for the sake of brevity, we'll call it ESP01). Designed for educational institutions, such as the one I am in right now (Singapore Polytechnic), the device has a low component count and lower cost than a traditional Arduino while offering a simple IoT solution for demonstrating
It is designed by yours truly, conceptualised + tested by my fellow schoolmate Julian Kang, and my classmate Sean is collaborating to develop future applications for this device, under the guidance of our mentor Mr Teo Shin Jen.
This guide is intended to get anyone who happens to have their hands on this board (well, only 80 of these boards exist in the world...) started with the basics of Internet networking with the Arduino, uh, SPEEEduino, with the ESP01 module.
This guide is made for the first iteration of the SPEEEduino, the v1.0. This guide will subsequently be updated for the next version, v1.1, which fixes many of the problems with the original.
Step 1: Setting Up the Hardware
The SPEEEduino interfaces with a computer via a USB to serial convertor. For our version, we used cheap CP2102 converters from AliExpress, unlike a traditional Arduino that has an onboard serial convertor. This allows us to lower the cost of the board itself, and also making it less costly to deploy.
- Connect the serial converter module with the SPEEEduino's serial port
- Connect the ESP01 module onto the SPEEEduino, following the instruction on the silkscreen (do not connect it the wrong way round!)
- Add a jumper to the FLASH header as shown in the picture, if not yet done. The FLASH header is located near the serial port (top left of the board). This will make sure that the ESP8266 boots up normally, instead of ending up booting in "flash mode", whereby it waits for a firmware update.
- Connect the USB-serial converter to your computer
If you need more references on how to get your ESP01 module working, do refer to my Definitive Guide to Setting Up Your New ESP01 Module for more information.
Do note that the version 1.0 of this device has a design issue that requires the diode D1 on the board to be shorted together, as you can see on the picture above
Step 2: Smoke Test
Smoke Test /sməʊk tɛst/ verb 1. The act of powering on a device to see if it catches on fire or releases its magic smoke.
We can run a simple test to see if the SPEEEduino is capable of talking to the ESP01 module correctly over its own software serial pins on pins 7 and 8, 7 being TX and 8 being RX. Simply download the attached file for this step and upload this to your SPEEEduino, and fire up your serial terminal, making sure to set the newline mode to "Both NL and CR" instead of the default "Newline". Type the following command:
and verify if it returns an "OK". If it does, you're ready to go!
Step 3: The Software
After your smoke test, you are ready to test the most important feature of the SPEEEduino: connecting to a WiFi network and performing a HTTP GET request.
Download the attached code in this step. Uncomment the two String declarations near the top of this piece of code and fill in your WiFi's SSID (name) and password. Do keep in mind that the ESP01 cannot connect to enterprise networks that require a username/password combination (PEAP) or a certificate (EAP-TLS).
Upload the code to your SPEEEduino and watch the magic unfold as seen in picture 2. Your SPEEEduino will now list out a few basic parameters of your ESP01 module, including firmware version and the networks around you. If it successfully authenticates to your WiFi network, it will attempt to fetch retro.hackaday.com, the bare bones version of hackaday.com.
Step 4: Conclusion
This is just the tip of the iceberg on what the SPEEEduino is capable of. Other possibilities include connection to a HTTPS secured server (unfortunately, the ESP01 module only supports up to TLS1.1, with AES-256 in CBC mode and SHA1 cipher suite with the AT firmware) and sending sensor data automatically to IoT networks like ThingSpeak.
The SPEEEduino is destined to have multiple versions. The v1.1 will fix several design issues and make the board more user friendly. However, the SPEEEduino is ultimately still meant to be a simple board for makers and educators to get kickstarted with IoT and is not meant to be a full-stack IoT solution.