Blink An LED On The Internet Of Things

Blinking an LED is generally considered the hardware equivalent of the classic “Hello World” project. It’s a quick and simple test to show that you’ve got the basics worked out, and a launching point for bigger and better things. So why should it be any different in this glorious new Internet of Things era?

The “WiFi HDD LED” created by [Limbo] is essentially just that, a status LED that can be triggered remotely thanks to the WiFi capability of the ever-popular ESP8266. Don’t think there’s much use for a wireless LED that blinks when your computer’s hard drive is thrashing around? Maybe not, but it’s definitely worth checking out if you’re looking for a good way to get your feet wet in the world of ESP hacking.

On the hardware side, this is exactly what you’d expect: an LED hanging off the digital pin of an ESP8266 module. If you go with the bare ESP-01 like [Limbo], things are somewhat more complex due to the need for a voltage regulator, but if you’re using one of the more common ESP development boards then there’s nothing else you need to add. Really, as a proof of concept you could even use the built-in LED on those boards.

As you might imagine, this project is more about the software than the hardware. The code on both sides of the equation has been released as open source for your hacking pleasure, and is more capable than you’d probably expect. The LED is actually an extension of a system activity monitor that [Limbo] had previously developed and includes a binding function to make sure you’re talking to the right blinking ESP. It’s probably overkill for many purposes, but it’s a good example of how to do more robust UDP connections than we’re used to seeing.

This project is one of many that prove there’s more than one way to accomplish a particular goal, and that there’s something to be learned from even the most eccentric of hacks.

Continue reading “Blink An LED On The Internet Of Things”

Building A Simple Python API for Internet of Things Gadgets

It’s no secret that I rather enjoy connecting things to the Internet for fun and profit. One of the tricks I’ve learned along the way is to spin up simple APIs that can be used when prototyping a project. It’s easy to do, and simple to understand so I’m happy to share what has worked for me, using Web2Py as the example (with guest appearances from ESP8266 and NodeMCU).

Barring the times I’m just being silly, there are two reasons I might do this. Most commonly I’ll need to collect data from a device, typically to be stored for later analysis but occasionally to trigger some action on a server in the cloud. Less commonly, I’ll need a device to change its behavior based on instructions received via the Internet.

Etherscan is an example of an API that saves me a lot of work, letting me pull data from Ethereum using a variety of devices.

In the former case, my first option has always been to use IoT frameworks like Thingsboard or Ubidots to receive and display data. They have the advantage of being easy to use, and have rich features. They can even react to data and send instruction back to devices. In the latter case, I usually find myself using an application programming interface (API) – some service open on the Internet that my device can easily request data from, for example the weather, blockchain transactions, or new email notifications.

Occasionally, I end up with a type of data that requires processing or is not well structured for storage on these services, or else I need a device to request data that is private or that no one is presently offering. Most commonly, I need to change some parameter in a few connected devices without the trouble of finding them, opening all the cases, and reprogramming them all.

At these times it’s useful to be able to build simple, short-lived services that fill in these gaps during prototyping. Far from being a secure or consumer-ready product, we just need something we can try out to see if an idea is worth developing further. There are many valid ways to do this, but my first choice is Web2Py, a relatively easy to use open-source framework for developing web applications in Python. It supports both Python 2.7 and 3.0, although we’ll be using Python 3 today.

Continue reading “Building A Simple Python API for Internet of Things Gadgets”

HTTPS for the Internet of Things

Every day, we’re connecting more and more devices over the internet. No longer does a household have a single connected computer — there are smartphones, tablets, HVAC systems, deadbolts — you name it, it’s been connected. As the Internet of Things proliferates, it has become readily apparent that security is an issue in this space. [Andreas Spiess] has been working on this very problem, by bringing HTTPS to the ESP8266 and ESP32. 

Being the most popular platform for IOT devices, it makes sense to start with the ESP devices when improving security. In his video, [Andreas] starts at the beginning, covering the basics of SSL, before branching out into how to use these embedded systems with secure cloud services, and the memory requirements to do so. [Andreas] has made the code available on GitHub so it can be readily included in your own projects.

Obviously implementing increased security isn’t free; there’s a cost in terms of processing power, memory, and code complexity. However, such steps are crucial if IOT devices are to become trusted in wider society. A malfunctioning tweeting coffee pot is one thing, but being locked out of your house is another one entirely.

We’ve seen other takes on ESP8266 security before, too. Expect more to come as this field continues to expand.

[Thanks to Baldpower for the tip!]

How to Mash Up BLE, NodeJS, and MQTT to Get Internet of Things

We’re living in the world of connected devices. It has never been easier to roll your own and implement the functionality you actually want, rather than live with the lowest common denominator that the manufacture chose.

In a previous article I walked though a small python script to talk to a BLE light and used it to cycle through some colors. Now I want to delve deeper into the world of Internet Connected BLE devices and how to set up a simple Internet-Of-Things light. With this example in hand the sky’s the limit on what you can build and what it will be able to do.

Join me after the break as I demonstrate how to use NodeJS to bridge the digital world with the physical world.

Continue reading “How to Mash Up BLE, NodeJS, and MQTT to Get Internet of Things”

Internet of Things Opens Possibilities

While a lot of hardware gets put on the “Internet of Things” with only marginal or questionable benefits (or with hilariously poor security), every now and then a project makes use of this new platform in a way that illustrates the strengths of IoT. [ThingEngineer] turned to this platform as a cost-effective solution for an automatic gate, since new keyfobs were too expensive and a keypad was not an option.

Using an Electric IMP, [ThingEngineer] began by installing his IoT patch into the LiftMaster gate control box. This particular gate has easily accessible points that the controller can access to determine the gate’s status, so from there, an API was written to do the heavy lifting. A web server was deployed as well, so anyone with access can use a smartphone or other device to open the gate.

For anyone else looking to deploy a similar IoT solution, [ThingEngineer] has put all of the project code, schematics, and a thorough write-up about the project on his GitHub page. There are many useful ways to get on board the Internet of Things, though; so many that it’s been possible to win a substantial prize for using it in a creative way.

Your Internet of Things Speaks Volumes About You

If only Marv and Harry were burglars today; they might have found it much easier to case houses and — perhaps — would know which houses were occupied by technically inclined kids by capitalizing on the potential  vulnerability that [Luc Volders] has noticed on ThingSpeak.

As an IoT service, ThingSpeak takes data from an ESP-8266, graphs it, and publicly displays the data. Some of you may already see where this is going. While [Volders] was using the service for testing, he realized anyone could check the temperature of his man-cave — thereby inferring when the house was vacant since the location data also happened to be public. A little sleuthing uncovered several other channels with temperature data or otherwise tied to a location that those with nefarious intent could abuse.

Continue reading “Your Internet of Things Speaks Volumes About You”

CES17: Arduino Unveils LoRa Modules For The Internet Of Things

WiFi and Bluetooth were never meant to be the radios used by a billion Internet of Things hats, umbrellas, irrigation systems, or any other device that makes a worldwide network of things interesting. The best radio for IoT is something lightweight which operates in the sub-Gigahertz range, doesn’t need a lot of bandwidth, and doesn’t suck down the power like WiFi. For the last few years, a new low-power wireless communication standard has been coming on the scene, and now this protocol — LoRa — will soon be available in an Arduino form factor.

The Primo, and NRF

It’s not LoRa, but the Arduino Primo line is based on the ESP8266 WiFi chip and a Nordic nRF52832 for Bluetooth. The Primo comes in the ever-familiar Arduino form factor, but it isn’t meant to be an ‘Internet of Things’ device. Instead, it’s a microcontroller for devices that need to be on the Internet.

Also on display at CES this year is the Primo Core which we first saw at BAMF back in May. It’s a board barely larger than a US quarter that has a few tricks up its sleeve. The Primo Core is built around the nRF52832, and adds humidity, temperature, 3-axis magnetometer and a 3-axis accelerometer to a square inch of fiberglass.

The Primo Core has a few mechanical tricks up its sleeve. Those castellated pins around the circumference can be soldered to the Alice Pad, a breakout board that adds a USB port and LiPo battery charger.

LoRa

Also on deck at the Arduino suite were two LoRa shields. In collobration with Semtech, Arduino will be releasing the pair of LoRa shields later this year. The first, the Node Shield, is about as simple as it can get — it’s simply a shield with a LoRa radio and a few connectors. The second, the Gateway Shield, does what it says on the tin: it’s designed to be a gateway from other Arduino devices (Ethernet or WiFi, for example) to a Node shield. The boards weren’t completely populated, but from what I could see, the Gateway shield is significantly more capable with support for a GPS chipset and antenna.

A partnership with Cayenne and MyDevices

Of course, the Internet of Things is worthless if you can’t manage it easily. Arduino has struck up a partnership with MyDevices to turn a bunch of low-bandwidth radio and serial connections into something easy to use. Already, we’ve seen a few builds and projects using MyDevices, but the demos I was shown were extremely easy to understand, even if there were far too many devices in the room.

All of this is great news if you’re working on the next great Internet of Things thing. The Primo Core is one of the smallest wireless microcontroller devices I’ve seen, and the addition of LoRa Arduino shields means we may actually see useful low-bandwidth networks in the very near future.