We live in an incredible time where computing is so available that it’s possible to place an internet connected microcomputer in just about anything you can imagine for just a few dollars.

Pair this with cloud computing, machine learning and AI and the possibilities are endless.

Imagine being able to remotely monitor and manage a whole group of factories scattered all over the globe. Water your garden from your smartphone when you’re on holiday or automate completely by programming a computer to turn on water when the soil becomes to dry or turn on ventilation if the temperature gets too hot.

How to get started

The Linuxing in London meet up group arrange a number of free and highly valuable talks and workshops, facilitated by companies like Microsoft and AWS.

Last night I had the opportunity to attend a hands on workshop covering programming an IOT device taught by Jim Bennett from Microsoft.

The excercise was to take temperature readings and send them to a Microsoft Azure datastore in the cloud.

If you want to have a go at this workshop for yourself, Jim has published the instructions on github here

https://github.com/jimbobbennett/MXChip-Workshop

The workshop provided training, tutors, pizza, code, hardware and a great chance to meet other techies. I even won a raffle to keep the hardware used in the workshop.

By the end of the evening we went from a blank piece of hardware to a programmed, internet connected device.

This workshop would have been worth paying for. The fact they run these events for free is incredible.

What’s involved?

To give you a little perspective, I’ve never done anything with any IOT device before. I also don’t code in c (used for the device code) or c# (used for Azure functions) used in the workshop. The code is available to download from a github repo, so you don’t really need to know these languages, just copy paste, find your way around and make some tweaks.

The group is incredibly helpful and welcoming.

Your typical IOT devices are Arduino and Raspberry Pi. Arduino are cheaper, less powerful devices good for hooking up sensors, lights and servos, whereas Raspberry Pi can handle a bit more compute.

These devices don’t include sensors which normally need to be added separately usually requiring some soldiering work.

MXChip The Developer Friendly Option

For this workshop we used a more developer friendly board called the MXChip. The MXChip is an Arduino compatible board with a mini display, wifi and a range of sensors including humidity, temperature, pressure, magnetometer and motion. In addition to this the board is designed to easily connect to Microsoft Azure.

This allows you to rapidly develop prototypes which could then be deployed to another device later.

Once connected to your azure account the device is able to both send and receive data from the cloud.

This means the Azure can be used as a central data store for billions of devices or just as easily manage billions of devices by pushing configuration files out to them.

For security reasons the device does need to be physically present to be configured the first time. This can done via a laptop or mobile phone if out in the field.

Only when the device has been setup to connect to an IOT hub such as an Azure account, can it be remotely configured.

What Next?

I’m keen to see how these type of devices can be used to automate hydroponic farming operations and collect data to determine how we can optimise crop health.

If you’re in London and interested in getting up to speed with some of the latest tech, it’s worth getting yourself to some of these events.

https://www.meetup.com/Linuxing-In-London/

https://linuxinginlondon.wordpress.com/