Close

May 15, 2017

First IoT steps

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.

IoT hardware

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:

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.

IoT platforms

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

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).

Losant

Losant is another IoT Enterprise platform that offers free accounts for makers (10 devices, 1,000,000 payloads, etc.) I like the ability to generate visual workflows:

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.
Phantom YoYo Arduino compatible High Sensitivity Moisture Sensor

Phantom YoYo Arduino compatible High Sensitivity Moisture Sensor

Next steps?

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

AT&T offer a cellular starter kit (or an add-on kit) and sells trial SIM cards for $10. Particle also has some inexpensive cellular plans.

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).