Introduction to Azure IoT Hub
IoT isn't anything new, in fact it's been something companies have been doing since before it was named IoT. So you might wonder, if it's not new, then why all the hype? It's a good question and the answer is complex. However these days there are a few things that have enabled IoT to take off. The internet is ubiquitous and reasonably inexpensive, makeing it easy to get devices online. The cloud is another enabler, and it's an important one, because it's helped to make it possible for individuals to do things that were once cost prohibitive. Another enabler is hardware devices such as the Raspberry Pi or Arduino. These boards make it easy for just about anyone with $40 to start prototyping.
Since the cloud is a major enabler of IoT, it's no surprise that cloud vendors are creating their own IoT solutions. Azure has a lot to offer in the IoT world, and one of the services is IoT Hub. IoT Hub is a services that provides a device registry as well as mechanisms for cloud-to-devices and device-to-cloud communication.
This course is intended to help get you up to speed on using Azure IoT Hub, and in particular, with the IoT Hub SDKs.
Getting Started With Azure IoT Hub: What You'll Learn
Lecture | What you'll learn |
---|---|
Course Intro | What to expect from this course |
Introductio to IoT Hub | A high level overview of what Azure IoT Hub is, and its basic capabilities |
Devices and Developers | What are devices |
Device Management | The IoT Hub Devices Registry |
Device to Cloud | Device to cloud messages |
Device to Cloud - Part 2 | Endpoints and file uploads |
Cloud to device | Sending messages to devices from IoT Hub |
Device Configuration | Configuring device state, and invoking messages |
Next Steps | What's next |
The source code for this course can be downloaded from Github
If you have thoughts or suggestions for this course, please contact Cloud Academy at support@cloudacademy.com.
Hi, and welcome back!
In this lesson we’ll wrap up the course by talking about what we’ve covered, and what we haven’t.
First, I’m going to speculate about why you watched this course.
There many possible reasons, but I think the two most common are that you’re either an IoT or embedded developer; or you’re just a curious person, and you wanted to learn something new.
Well, if you’re an IoT or embedded developer, then you were probably looking for a cloud gateway for some project, and now you know about IoT Hub.
Depending on your requirements, you probably now know if IoT Hub will work for you or not.
So, I have nothing left to say to you! Thanks for watching…Okay, obviously I’m just joking.
Regardless of your role, there’s still a lot to learn!
As a software developer, you’ve probably worked on devices such as mobile, PCs, consoles or TVs.
What do all these thing have in common?
The answer is…You!
All these applications have been created with a user in mind.
You log in as a user on these devices, and interact with them using traditional input mechanisms such as keyboards, touch screens, etc. And you look at the output on a traditional screen.
Throughout the course, you’ve hopefully noticed that IoT devices may or may not have these traditional I/O mechanisms. The can be very different than the devices you may be familiar with.
In the case of IoT devices the device itself has an identity, not a user. The device has a name and some credentials that are independent from an user of the device.
So devices communicate with IoT hub using their own identity. And they communicate using messages, which are basically some metadata for IoT Hub, some properties that you could set, and then a serialized message body.
Because devices don’t have guaranteed connectivity, they communicate with IoT Hub through message queues, and that allows for asynchronous communication.
So IoT Hub is just a highly available messaging platform that knows how to interact with devices.
Okay, I want to try and answer any questions I suspect you might have.
First, why was this course so focused on the code, rather than IoT Hub through the portal?
This is a good question, and the answer is that in the real world, you’ll be working with code, so I want you to see it in action; I also want you to download it and try it out for yourself.
Another question you might have, especially if you’re not a .NET developer is related to C#. So, is C# a good language for IoT?
If you’re application developer then C# may already be your go-to language.
However C# also works well with devices such as a Mini PC, or anything running Windows. You can even run Windows IoT core on a raspberry pi, so C# is great option, because it can be used for multiple devices, and has great tooling.
Another question you may have asked is: where’s an actual device?
You probably want to see a Raspberry Pi interacting with IoT Hub, however for this course we wanted to keep it to simulators, since you’ll be able to play with simulators without requiring a device.
However, there are other courses that focus on using real devices. And those courses will cover using a Raspberry Pi with Node.js. In fact we’ll develop a node.js simulated device, and then deploy it to run on Raspbian, which is a Linux distro for as Raspberry pi. And we’ll include how to use actual sensors that are available in most startup kits.
You might also have wondered, what about an Arduino?
And like the Raspberry Pi, that’ll be covered in another lesson.
Is IoT Secure? That’s another common question.
It’s an extremely important topic, and it’s something IoT Hub has been built around. We’ve talked about device identity and security tokens, however there’s a lot to learn still about securing devices in the field. So keep in mind, you can secure your IoT devices and communication, however some of the security will be on you to take handle.
Another question you might have is, How can I apply all these things to my business?
For this, you should start gradually by starting with monitoring, which means send data to IoT hub and store it in a database.
This will allow you to learn about your data and the devices, while also helping you think about persisting this data.
Initially your data will probably be lousy, you’re going make mistakes and send erroneous data or send too much, or not enough. And that’s why you’re starting with this. Because once you figure this out, you can start to think about processing the data. And that’s a topic we’ll cover in another course. And then you can start thinking about sending messages back to the devices.
I want to leave you with some additional resources that you could check out, so here are some URLs you can explore.
Thanks a lot for taking the time to watch this course, I hope this was useful to you! If you have any questions or comments, feel free to reach out to me on the community forum!
Thanks again, and have fun with your IoT project!
Marco Parenzan is a Research Lead for Microsoft Azure in Cloud Academy. He has been awarded three times as a Microsoft MVP on Microsoft Azure. He is a speaker in major community events in Italy about Azure and .NET development and he is a community lead for 1nn0va, an official Microsoft community in Pordenone, Italy. He has written a book on Azure in 2016. He loves IoT and retrogaming.