I have been building with Arduino for a while and one of my initial goals was to connect one to the Internet and experiment. Finally, I have decided to take the next step towards this goal.
There are many ways to connect an Arduino (I use Uno for now but I might get a Mega soon—more I/O pins) to the Internet:
- Ethernet shields: Arduino’s Ethernet Shield 2, W5500 Ethernet Shield for Arduino from Seeed Studio, etc.
- Wifi shields: Arduino Wifi 101 Shielf
- A wifi-enabled Arduino board such as the Uno Wifi (clone)
- A wifi module: ESP8266 ESP-01, by Espressif Systems
My choice? The latter: I am not really interested in an Ethernet device right now, and wifi shields feel clunky. The ESP8266 ESP-01 feels like the right balance.
Technically speaking, the ESP8266 is a self-contained SOC (System On a Chip): It is a microcontroller of its own; it doesn’t need an Arduino to work.
And from what I understand, the ESP01 is a simplified version of the ESP8266 with less general-purpose inputs/outputs (GPIO) but still gives an Arduino board that ability to connect to a wifi network. The logic is 3.3V and might require a 3.3V / 5V converter.
There are a few platforms out there that enable makers to experiment with IoT at no cost. Here are the two that I plan on experimenting with.
Particle is a full-stack IoT platform with its device management platform, web and desktop IDEs, SDKs, etc. Also, Particle offers low-cost low-bandwidth cellular data plans and SIM cards. They also offer their own hardware (see below). The Prototype plan lets one connect 25 devices for a maximum of 250,000 events a month (5 team members).
Bonus: AWS IoT
Amazon AWS always offers a free tier and IoT is no exception: “The AWS IoT free tier gets you started with 250,000 free messages (published or delivered) per month, for 12 months.” Their flexible, no minimum pricing kicks in after that, starting at $5 per million messages.
Also, AWS IoT does not charge for deliveries to Amazon S3, Amazon DynamoDB, AWS Lambda, Amazon Kinesis, Amazon SNS, and Amazon SQS.
Starting with silly
I want to learn by trying—and failing. My first few projects will include:
- Having a plant tweet at me when it needs to be watered (plants have a tendency to die in our household…). Moisture sensors are inexpensive and easy to implement.
- Visualize through color the current outside temperature. I’m thinking of an opaque orb that will change color (RGB LED) based on live temperature data pulled from Weather Underground.
Trying some other hardware
I plan on exploring Particle’s Photon, as well as a standalone ESP8266 (not the ESP-01, so without extra microcontroller). Intel has an IoT developer kit but I don’t know how much is compatible with it.
Looking into cellular IoT
Once I look into non-domestic applications, I will most likely experiment with these solutions.
Image credit: Wire Basket 2, by Louise Woodcock (CC BY 2.0).