The world is becoming more connected as we speak; people are becoming more connected as we speak, and devices are becoming more connected. Everything can be connected to the Internet. Everything can communicate. This is the reality that is quickly dawning on us.
The Internet of Things (IoT) has opened up so many communication levels and methods for us. If you were to look online at home appliances, you will notice a small word creeping into (ever-so-slowly) all product names. Can you guess what this word is?
Well, the word I am talking about is: "smart".
Smart vacuums, smart thermostats, smart doorbells, and smart toasters (to name just a few) all have one thing in common: Internet connectivity. Ordinary stuff and mundane things become very powerful all of a sudden. And, before you know it, you cannot picture your life without it. Take a look at smart phones, for example. You cannot live without one these days; because life is so fast paced, you always need access to your e-mails or any other communication.
To create these types of applications, we need proper frameworks and proper tools. There are many IoT offerings—from Google, Amazon, IBM, and Oracle, for example—but today I will concentrate on what we can do with Microsoft and the .NET Framework.
The Raspberry Pi is a series of small, single-board computers. Originally developed for teaching kids nice things in computer science, it became more popular in robotics. Raspberry Pi computers do not include keyboards, mice, or cases.
Follow these steps to make a Visual Studio program work on a Raspberry Pi:
- Download Mono (see Figure 1).
Figure 1: Mono
- Download a program named PuTTY, as shown in Figure 2. You will need this to send the Mono commands via SSH, Secure Shell to the Raspberry Pi.
Figure 2: PuTTY
- Configure the screen to resemble Figure 3.
Figure 3: PuTTY Configuration
- Send the following Remote Command to the Raspberry Pi (see Figure 4):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official.list sudo apt-get update sudo apt-get install mono-devel --yes --allow-unauthenticated
Figure 4: Remote Command
- Create a small app in Visual Studio and Build it, so that the .Exe can be copied. You can use an FTP Client such as FileZilla to do this. If you do not have FileZilla, you can download it from this link.
- After the file has been copied, open the desktop environment by using Remote Desktop Connection.
- Open the terminal on the Raspberry Pi.
- Enter the following path to launch the app you have just copied. Remember to use the correct folder. My folder is: mono /HTG/pi/RaspberryPi_Ex/WindowsFormsApp1.exe.
Azure IoT is basically a collection of Cloud services that monitor, connect, and control IoT assets. There are quite a few IoT-related services available in Azure; here is a quick overview of them:
- IoT Central: IoT Central is a SaaS (Software as a Service) solution that enables you to connect, monitor, and manage IoT devices.
- IoT solution accelerators: IoT solution accelerators is a collection of PaaS (Platform as a Service) solutions that accelerates development of IoT solutions.
- IoT Hub: IoT Hub enables you to connect to an IoT hub, and monitor and control IoT devices.
- IoT Hub Device Provisioning Service: IoT Hub Device Provisioning Service is a helper service to provision devices to an IoT hub securely.
- IoT Edge: IoT Edge is used to analyse data on IoT devices.
- Azure Digital Twins: Azure Digital Twins creates models of the physical environments.
- Time Series Insights: Time Series Insights stores, visualizes, and queries large amounts of time series data that are generated by IoT devices.
- Azure Maps: Azure Maps provides geographic information to web and mobile applications.
Windows 10 IoT
Windows 10 IoT brings power, security, and manageability to the Internet of Things. It makes use of Windows' embedded ecosystem and Cloud connectivity. This allows any organization to create its Internet of Things offering with secure devices, which can be seamlessly connected to a Cloud strategy.
Windows 10 IoT comes in two editions:
- Windows 10 IoT Core
- Windows 10 IoT Enterprise
Windows 10 IoT Core
Windows 10 IoT Core is optimized for smaller devices, with or without a display, that can run on ARM and x86/x64 devices.
Prototyping a Device
Use the following steps to prototype a device:
- Choose any of the following boards, which include Full Flash Update (FFU) images:
- AAEON Up Squared
- DragonBoard 410c
- Keith & Koep i-PAN M7 CoverLens
- Keith & Koep i-PAN T7 CoverLens
- MinnowBoard Turbot
- NXP i.MX 6
- NXP i.MX 7
- NXP i.MX 8M/8M Mini
- Raspberry Pi 2
- Raspberry Pi 3B
Figure 5: Set up new Device
For some sample applications, have a look at projects on this site.
IoT keeps improving and it keeps learning. In the next article, I will speak about Netduino and some more about UWP in general. Until then, cheers!