NicTheGeek

I've been working with IT for a long time...

Raspberry Pi Zero – MVP?

I ordered two of these last Thursday from The PiHut (http://thepihut.com/) and they turned up this morning. I am impressed by the size and the immediate compatibility with my existing B+ project. I splashed out on a board only and the bundle with their essential kit.

For this test, I simply transferred the micro-SD card and USB WiFi adapter from a running B+. The micro USB to standard USB socket came with the kit.

The picture above shows a Raspberry Pi Zero fitted with DIL socket (also provided in the kit) on the GPIO pins so it can sit nicely in the T-Cobbler Plus. Note that the power is supplied via a power monitor that shows current with an active WiFi connection; standalone, running linux, no active apps, current consumption is around 0.08A.

The Zero is an interesting solution for IoT; board area is around 1/3 of the B+, then choose any kind of wireless networking; Bluetooth, WiFi and/or GSM. It runs the same Broadcom chip originally used on the A+, but at a faster clock speed. The GPIO pinout is identical to the B+.

IoT ThingSpeak server on a Scaleway ARM server with Docker

in a recent post I mentioned the excellent value provided by a Scaleway ARM-based server instance (https://nicbkw.com/serious-cloud-presence-for-e2-99-month/). ThingSpeak (https://thingspeak.com) is well-known in the IoT world as an open source “Internet of Things” application and API to store and retrieve data from things using HTTP over the Internet or via a Local Area Network. With ThingSpeak, you can create sensor logging applications, location tracking applications, and a social network of things with status updates. Docker is a great way to abstract your solution into easily defined virtual containers (https://www.docker.com/).

Thingspeak is open-source and the install is available for download (https://github.com/iobridge/ThingSpeak). It has proved to be a scaleable architecture, built on Puma/Ruby on Rails with a MySQL database.Thingspeak in an x86 Docker environment is already supported, but I struggled to find anything similar for ARM.

So, I adapted the x86 install, replacing the required base images with two available for ARM architecture on Docker hub (https://hub.docker.com/). It was also necessary to add ruby on rails to the install. The resulting Docker build scripts are here: https://github.com/nicbkw/docker.thingspeak

Be aware that the install takes around 30 minutes due to the need to build and compile some components from source for the ARM platform. I would try this on a Raspberry PI, but mine are both in use ;-).

Internet of Things – are you ready for IPv6?

Say Internet of Things and understanding is split into: “my refrigerator will order milk over the internet” or “hackers can take control of my car”, but mostly “yeah – already got that to control my central heating”. Techies (like me) just go misty-eyed over all of these new gadgets.

IoT is much bigger than all of this. Over the past three years, enterprises have had to learn how to manage employees own devices connecting to corporate WiFi. This has required a huge uplift in WiFi bandwidth requirements and the ability to recognise and control access for many more devices as employees look for corporate data (email, CRM, price lists, etc.) on their smartphones and tablets.

Now imagine the mulitple of devices if every room, corridor and stairway has lighting, heating, aircon, occupancy and door locks advise and control through IoT devices. Then consider IoT signalling maintenance requirements of drinks and snacks machines. Car parks using IoT to show empty spaces. The list goes on; how will enterprise IT admin connect these devices through corporate WiFi?

The data rate will be small (and hopefully each device will talk to an internal gateway server, not over the internet) but each device will have a unique physical address and a requirement for an IP address – there will be a need to consider IPv6. Is your enterprise network IPv6 capable? Does your DNS allow IPv6 mapping?

IPv6 was first described in 1998 (Internet Protocol, Version 6 (IPv6) Specification,S. Deering, R. Hinden (December 1998)) – but how many enterprise networks are capable of supporting this extended IP addressing scheme?

I access the internet via BT Business Broadband; testing my browser capability using http://test-ipv6.com/ shows that BT DNS supports only IPv4 name resolution. So I just have to wait for BT to enable IPv6 addressing – or should I consider DNS that is already IPv6 capable? As an enterprise, you have to do this now!

For a way forward with IPv6, take a look at: https://www.opendns.com/about/innovations/ipv6/

Serious cloud presence for €2.99 /month

I am a bit of a geek and consequently end up trying new hardware, apps and frameworks all the time. One issue with this is maintaining a reliable OS image. I am currently fiddling about with IoT hardware that runs a trusted connection to a web server to avoid broad internet access. Evaluating each new framework inevitably results in library inconsistencies and unstable platforms with unexpected errors. One way forward is to run in containers and consensus is that Docker (https://www.docker.com/) is the leading solution.

Recently, I was looking to run Docker on ARM platforms. Why ARM? – great return out of extremely lightweight, low-cost computing platforms. Earlier this year, hypriot (http://blog.hypriot.com/post/dockercon2015/) showed more than 2,000 docker containers running static web servers on a single Raspberry Pi2. OK – an interesting exercise.