IoT – Internet of Things
(das Ding an sich)

“Noumenon the thing-in-itself (das Ding an sich) as opposed to phenomenon—the thing as it appears to an observer.”

Fig 1 – Microsoft Azure IoT Suite offers complete working demonstration solutions

Heidegger Thinginess

Is Heidegger serious or just funn’n us, when his discursive rambling winds past the abolition of all distances, wanders around thinginess, and leads us to “some-thing” from “no-thing?”


“The failure of nearness to materialize in consequence of the ‘abolition of all distances has brought the distanceless to dominance. In the default of nearness the thing remains annihilated as / a thing in our sense. But when and in what way do things exist as things? This is the question we raise in the midst of the dominance of the distanceless.”

“The emptiness, the void, is what does the vessel’s holding. The empty space, this nothing of the jug, is what the jug is as the holding vessel.”

“The jug’s essential nature, its presencing, so experienced and thought of in these terms, is what we call thing.”

“The Thing” from Poetry, Language, Thought 1971
Heidegger Translated by Albert Hofstader



So class, we may conclude that our spatial attribute is not the essence of the thing. However, IoT does not concern itself with das Ding an sich, but with the mechanism of appearance, or how “noumenon” communicates “phenomenon” within the internet. Therefore, we must suppose IoT remains Kantian in spite of Heidegger’s prolix lecturing. And, spatial attributes do still exist.

No? … Really?
Phew I was worried about my job for a minute!
(Actually I always wanted to drag Heidegger into a post on maps.)

IoT Things
Of course, IoT just wants “things”, “stuff”, “devices” to have a part in the cloud just like the rest of us. Dualism, Monism who cares? It’s all about messages. Which is where Microsoft Azure IoT comes in.


Fig 2 – Azure and IoT Dominic Betts

For Microsoft, IoT is an opportunity to provide infrastructure at a couple of levels with the central piece the Azure IoT Hub:

Messsage Creation

Devices, sensors, are just small computers for which Microsoft introduced Windows IoT Core. This is a scaled down Windows OS for devices like Raspberry Pi, offered freely to feed the IoT Hub. The Maker community can now use Windows and Visual Studio Express to latch up Gpio and send telemetry messages via Bluetooth or WiFi. At $49, Microsoft’s Raspberry Pi 3 Starter Kit offers the latest single board computer with a MicroSD embedded Window IoT Core for experimenters. It should make hardware playtime easier for anyone in the Microsoft community.

Useful site: Connect your device to Azure IoT Hub

The ultimate device is still your smart phone. With the release of Xamarin in Visual Studio 2015 update2, native Mobile App development across android, iOS, Windows Phone is much easier.

Message Pipeline

Azure IoT Hub is the key piece of technology. IoT Hub is infrastructure for handling messages across a wide array of devices and software which scales to enterprise dimensions. Security, monitoring, and device management are built in. The value proposition is easy to see if you’ve ever dealt with fleet management or SCADA networks. Instead of writing services on multiple VMs to catch tcp packets and sort to various storage and events, it’s easy to sign up for an Azure IoT Hub and let Azure worry about reliability, scaling, and security.


Fig 3 – Azure IoT Hub with Stream Analytics - Getting Started with the Internet of Things (IoT)

Note that Machine Learning is part of the platform diagram. Satya Nadella’s Build 2016 keynote emphasized “the intelligent cloud” and of course R Project plays a role in predictive intelligence, so we can begin to see Microsoft marshalling services and tools for the next generation of cloud AI.

Thinking of ubiquitous sensors naturally (or unnaturally depending on your pre-disposition regarding the depravity of man and machine), brings to mind primitive organism possibilities as well as shades of Hal. Also noteworthy, “IoT Message Queues can be bidirectional,” so the order of Things and Humans can easily be reversed. Perhaps Microsoft’s embrace of artificial intelligence will cycle it back to the preeminent “seat of evil corporate empire” currently occupied by Google.

Azure IoT Hub deployment


Fig 4 – Azure Portal IoT Hub deployment

Once the Azure IoT Hub is deployed the next step is to add a Stream Analytics Job to the pipeline. These are jobs for processing telemetry streams into sinks such as SQL storage or visualizations. A Stream Analytic Job connects an input to an output with a processing query filter in between.


Fig 5 – Azure IoT Hub Stream Analytic Job = Input + Query + Output


Fig 6 – Azure IoT Hub Stream Analytic Job Input from the deployed message stream IoT Hub or Blob


Fig 7 – Azure IoT Hub Stream Analytic Job Output to several options including Azure SQL Server

Finally the query connecting Input to Output


Fig 8 – Stream Analytics Query – sample queries

Message store or visualization

As seen above the Azure IoT Hub offers several ways to store or visualize data streams.
This tutorial includes simple test and simulated device code:


Fig 9 – some test code for sending simulated messages to an Azure IoT Hub

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Azure.Devices.Client;
using Newtonsoft.Json;
using System.Threading;

namespace SimulatedDevice
{
    class Program
    {
        static DeviceClient deviceClient;
        static string iotHubUri = "<name of your IoT Hub>.azure-devices.net";
        static string deviceKey = "<your device key>";

        static void Main(string[] args)
        {
            Console.WriteLine("Simulated device\n");
            deviceClient = DeviceClient.Create(iotHubUri, new DeviceAuthenticationWithRegistrySymmetricKey("myFirstDevice", deviceKey));

            SendDeviceToCloudMessagesAsync();
            Console.ReadLine();
        }

        private static async void SendDeviceToCloudMessagesAsync()
        {
            double avgWindSpeed = 10; // m/s
            Random rand = new Random();
            double latitude = 39.008208;
            double longitude = -104.797239;

            while (true)
            {
                double currentWindSpeed = avgWindSpeed + rand.NextDouble() * 4 - 2;
                var telemetryDataPoint = new
                {
                    deviceId = "myFirstDevice",
                    windSpeed = currentWindSpeed,
                    latitude = latitude,
                    longitude = longitude
                };
                var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
                var message = new Message(Encoding.ASCII.GetBytes(messageString));

                await deviceClient.SendEventAsync(message);
                Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString);

                Thread.Sleep(5000);
            }
        }
    }
}

Fig 10 – Resulting simulated device test records inserted into the gpsTest table by Stream Analytics Job

A much more involved example of an IoT and Mobile App is furnished by Microsoft: My Driving
Microsoft’s complete solution is available on GitHub with details.

Summary

Microsoft is forging ahead with Azure, offering numerous infrastructure options that make IoT a real possibility for small and medium businesses. Collecting data from diverse devices is getting easier with the addition of Windows IoT Core, VS2015 Xamarin, and Azure IoT Hubs with Stream Analytic Jobs. Fleet management services will never be the same.

Spatial data still plays a big part in telemetry since every stationary sensor involves a location and every mobile device a gps stream. Ubiquitous sensor networks imply the need for spatial sorting and visualization, at least while humans are still in the loop. Remove the human and Heidegger’s “abolition of all distances” reappears, but then sadly you and I disappear.

Comments are closed.