Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.
Running Node-RED is easiest in a Docker container. This is really easy to set up.
Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.
The MQTT protocol provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for Internet of Things messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers.
Running Mosquitto is easiest in a Docker container. This is really easy to set up.
ScaleConf was an awesome 2 day conference. https://scaleconf.org/ In is held annually at Kirstenbosch, which is an amazing venue. There were some really interesting talks too!
I was lucky enough to this year be helping out at the Microsoft booth. I’m always in my element to be able to chat to the community about anything developer related.
It didn’t quite end up like that, and we ended up talking about what was requested, which was great. In my case, not only did I get to chat about Bots and ML .NET, but also got to speak about Xamarin and IoT too, which for me is always just plain awesome!!!
I started programming when I was 5. The ZX Spectrum started it all, back in the 80s. I recently started collecting ZX Spectrums. I’m also busy with IoT projects on Azure. Anything can really use Azure IoT Hubs, so how better to illustrate this than combine my two passions. 🙂
There’s a lot of fun to be had here! Xamarin Iot deploying to a Lego Mindstorm EV3 from Visual Studio, isn’t that awesome?
Visual Studio 2017 Preview 5 – Xamarin Iot EV3
LCD Update via Xamarin Iot
I’m now off to make it do something more useful. I will write a full blog post about it afterwards, including instructions how to set this up yourself.
I was inspired enough to dust off one of my older projects which included .NET MF and the Xamarin Monkey Robotics project. I then decided to consolidate and rearrange it with some of the newer stuff I’m playing with in the “Iot” space. It’s also an example of how Visual Studio can handle projects of all types, held together and fully “debuggable” within one solution. This seems like a good time to do this especially with the recent talks at the Xamarin User Groups in Cape Town (http://explorationspace.co.za/2017/07/20/cross-platform-iot-at-ctxug/) and Johannesburg (http://explorationspace.co.za/2017/07/12/cross-platform-iot-at-gxugsa/) on the topic.
Visual Studio Controller of Things Solution
I do still have to port all this to Visual Studio 15.3 preview 3 so I can have Xamarin Iot working in the solution as well.
Still a lot of on the list to do today, so I’ll end off here.
Last night was the Cross Iot Session at GXUGSA in Johannesburg. It’s always fun presenting all the Iot toys, but also what can actually be done with Xamarin and the rest of the Microsoft tooling.
It’s also not always clear that you can basically do anything you want with Xamarin, so always nice and exciting to showcase it outside the usual phone type scenarios.
Gert Talking Windows 10 Iot Core
The session featured
Visual Micro for Visual Studio
Visual Studio Code with Arduino Extension which is now Open Source.
Xamarin Forms and Xamarin.Android with Android Things 0.4 Preview
The new Xamarin Iot preview for Linux based devices
Last week I pushed the Xamarin version of the Google Contrib drivers to Nuget. I’ve now added a sample project, to illustrate how it all works. The sample also includes the use of Azure Iot Hubs.
A great test of the contrib drivers is Pimoroni’s Rainbow Hat. https://shop.pimoroni.com/products/rainbow-hat-for-android-things The Rainbow HAT brings together a lot of the components mentioned above on one board. It’s provided with the Android Things Starter Kit so it’s a very good place to start. The first sample I’ve added here focus’s on this specific HAT.
The sample added is based on the google Weather Station sample. It has one difference, it uses Azure Iot Hubs for cloud messaging.
Sample Functionality
Temperature Monitoring
Pressure Monitoring
Push Button (A) to swap display from Temperature and Pressure on the board display
Native UI for RaspberryPi to display weather based on air pressure
Telemetry sent from Android Things Device to Azure via Azure Iot Hubs
Message support from Azure to Android Things Device.
To uses the Iot hub in the sample, the DeviceId, DeviceKey and HostName of an Azure Iot hub will need to be provided. I will do a post specific on Iot Hubs to provide more detail on this in subsequent blog posts. These variables are set in the MainActivity.
private bool _useHubs = true; // Set this to true to use Azure Iot Hubs
_weatherDevice.DeviceId = "<Add Azure Iot Hub Device Id Here>";
_weatherDevice.DeviceKey = "<Add Azure Iot Hub Device Key Here>";
_weatherDevice.HostName = "<Add Azure Iot Hub Hostname Here>";
I’m in the process of creating more samples of the rest of the contrib library. I’m also packaging more third-party drivers from around the community into reusable Nuget packages for Android Things with Xamarin.
I’m also having a lot of fun at the moment with a version of these drivers, built from scratch to work with Xamarin Iot. We can then have these components (and Rainbow HAT) working on Linux devices which will of course be awesome!