
In this lecture we discuss a general overview of the course. We start off with making an IoT Hub, an IoT Device, then briefly testing our configuration before installing the Azure CLI with IoT extensions. We then go one to create virtual IoT devices and then use actual physical IoT devices to talk to the Azure cloud. Then we move on to IoT centric workflows on the Azure cloud utilizing both Azure Blob storage and Cosmos DB storage with Azure functions for manipulating and graphing our IoT data.
In this section we create an IoT hub and an IoT device representation on that hub which will be the nexus point for all incoming IoT data from our IoT devices. The IoT hub name and device name will be utilized in all our physical and virtual IoT devices to direct our IoT transmissions to the correct endpoints.
In this lecture we use the Azure Cloud Shell to test the transmission of an IoT data payload into our account through our IoT Hub and IoT Device. This insures our IoT Hib and Device are set up correctly and can receive IoT transmissions which will be required when we move on to using both virtual and physical IoT devices.
In this lecture we install the Azure CLI to automate sending commands to the Azure cloud without having to go through the Azure portal when it isn't needed. We also install the Azure IoT extensions package so that we have specific commands for IoT on the Azure cloud.
For this section we will discuss transmit IoT payloads via a data production software package. This IoT data can them be manipulated by any service available on the Azure cloud. For our purposes we will focus on Azure Blob storage and Cosmos DB with potential for streaming Azure applications later on. Also we will discuss how you can chose one virtual IoT device once you have a software IoT data producer you are comfortable. Some lectures in this section are optional as students do not need to implement every IoT data producing program.
In this video I send a single IoT payload in JSON format from the terminal from the Azure Console to the Azure cloud. I demonstrate that the commands can be used from terminals in the command prompt in Windows, PowerShell in Windows, or the Azure terminal in the Azure console. The specific commands can be found in the resources section of this lecture for you to test by copying and pasting from a aforementioned terminal.
In this video I demonstrate how to use a Bash script to automate IoT payload transmissions to IoT Hub on the Azure Cloud. The script works by evoking the Azure CLI to transmit and dispatch the value generated by the script. This Bash script allows the user to configure variables to whatever values they like.
In this lecture I demonstrate how to use the free Azure IoT explorer tool to generate IoT payloads to send to the Azure cloud. Going over the "Advanced Scenario" we can send custom payloads direct to the Azure cloud via PowerShell, the DOS box Terminal in Windows, or the Cloud Shell terminal built into Azure. The Explorer tool has other options you can explore on your own I don't cover in the lecture.
In this lecture I demonstrate how to use the MQTT Explorer App to communicate with your IoT Hub on the Azure cloud. The first step is to download and then configure the app. Once this is done you can give it the specified topic and fill out the JSON payload to send IoT data to Azure.
In this video we install and configure the MQTTfx tool as a virtual device to transmit IoT payloads to the Azure cloud. In this first part we simply need to install and configure the IoT tool correctly so that it can recognize your account to transmit IoT payloads.
In this video we develop a custom IoT producer program in JavaScript which will automate the transmission of a user designated number of JSON payloads of randomly generated values to the Azure cloud.
In this lecture I download the Azure IoT SDK in Python and modify the "Recurring Telemetry" program to send a custom payload suited for our needs. The only alteration you need to do in the program is to insert your own connection string.
In this lecture we use the Node SDK to transmit recurring IoT payloads to the Azure cloud. Compared to Python we need a couple extra steps like using the "npm install azure-iot-device azure-iot-device-mqtt --save" to install the dependencies. Once we add the connection string in the program and install the MQTT specific dependencies from the Node SDK we are good to go.
In this lecture we program an online virtual device simulator with real MicroPython device code to talk with the Azure cloud. Wokwi has the ability to be programmed with multiple device languages on multiple simulated devices. We only need to use our own connection string and SAS token in the included MicroPython script to communicate with our Azure account.
In this video we use a Raspberry Pi simulator using the same Node.js script we used previously to send recurring data to the Azure cloud. This is an even easier method to quickly mock up and emulate real hardware components in your browser online.
In this lecture we speak about using physical IoT devices to transmit IoT payloads to the Azure cloud. We will cover the difference between an embedded level processor (MCU) on a application specific board like the ESP32 and compare that to an application level processor used on a SBC (Single-Board computer). For the SBC we will be using the Raspberry in this course.
In this lecture I discuss where to download the basic Arduino GitHub repository that will allow us to transmit data to the Azure cloud using our ESP32 device
In this lecture we use the first example program called "SimpleMQTT" to transmit data to the Azure cloud. However the data isn't very useful so in the next lecture we will need to modify the example program to input data that is actually useful for us.
In this lecture I modify the SimpleMQTT Arduino sketch to a version which will send out our JSON IoT data payload in a recurring loop. The modified sketch adds a memory buffer to contain three randomly generated variables.
In this video we move on the a slightly more advanced "GetStarted" sketch which allows a few more options but still allows us to easily connect and transmit IoT data to the Azure Cloud.
In this video we download and install the Azure SDK in C for Arduino so that we can run more advanced sketches on the ESP32 programmed in C with very few Arduino Wiring Macros. This gives us a finer level of control over our program for more fine tuning as necessary. For our purposes we will simply add in a useful IoT payload to the sketch to transmit recurring telemetry to the Azure cloud.
In this lecture we speak about MicroPython suitability for embedded devices for IoT applications. We cover how suitable it is for Azure IoT. We also talk about using Thonny as the preferred IDE as well as some other MicroPython IDE alternatives.
In this lecture we erase and flash the ESP32 with the MicroiPython environment using the MicroPython binaries we downloaded in the previous lecture with the Thonny IDe. With the binary file flashed to the ESP32 we can now program our ESP32 Microcontroller in MicroPython.
In this lecture we go over our MicroPython code which the student will customize with their own WiFi configuration information as well as Primary connection string, and SAS token. The students specific credentials can be found vi the Azure CLI as well as through the console on the Azure Portal. Once your MicroPython program is configured to your own customization you can run the code and it will generate IoT payloads to transmit to the Azure cloud via MQTT on the ESP32 device.
In this lecture we introduce the basic design flow of using the Raspberry Pi to transmit IoT data utilizing the MQTT protocol to send sensor data to the Azure Cloud. We will discuss additional free software dependencies to help configure your raspberry Pi and configure your RPi so that it can easily transmit the data given the supplied recurring transmission programs designed in both Python and Node.
In this lesson we tunnel into our Raspberry Pi with Putty. First we make sure both Python and then PIP are installed so we can load our Azure dependencies. Net we create a directory to store the Azure specific IoT device dependencies in Python. Finally we add our connection string to two customized programs in Python. The first Python program sends a recurring IoT data payload to the azure cloud while the second program is a simplified version resulting in the same IoT payload being delivered.
In this lecture we use the built in Nano editor on the Raspberry Pi or you can use Filezilla to transfer our recurring IoT data Python programs to our RPi. Once the programs are installed we an run the recurring IoT data Python program and monitor the IoT payload being delivered to our account in the Azure cloud.
In this lecture we use a Node.js program to send recurring IoT data to the Azure cloud. The program is similar to the recurring telemetry program in Python, but it is in Node for those developers more comfortable with that language.
In this lecture we use the built in Nano editor on the Raspberry Pi to save our recurring data Node.js program to our RPi. Once the program is installed we can run the recurring data program and monitor the IoT payload being delivered to our account in the Azure cloud.
Introduction for utilizing our IoT data in blob storage for static web site visualizations.
In this lecture we create a Blob storage account on the Azure cloud. Blob storage is extremely cheap and a great way to hold "cold" IoT data assuming we don't need to query or structure that data over time.
In this lecture we create a custom message route which will work as a unidirectional funnel from our incoming IoT data from IoT Hub to send our IoT data to the Azure blob storage container that we created in the previous lecture.
In this lecture we fill the blob storage container with IoT date sent to IoT Hub and routed through our custom endpoint message routing. In this lecture I demonstrate this using our Bash script as a virtual IoT device, however you can use any physical or virtual IoT device you like to transmit data to the Azure cloud as long as the IoT data is structured correctly so we can visualize it with our web code later.
In this final lecture we create a custom website also held in Blob storage that requests our IoT data with an open endpoint. Once the website fetches the data it graphs the results using HighCharts in JavaScript.
Introduction to using Azure CosmosDB with Azure functions to retrieve IoT data from a database for graphing on a website hosted on Azure Blob storage.
In this lecture we Create a Cosmos DB Data table to hold the IoT data that will be transmitted from the virtual or physical IoT device to the Azure cloud.
In this lecture we create custom route to send the IoT data from our device into IoT hub and pass it along to the Cosmos DB data table. We will need to delete our old message route as the free tier only allows one active route at a time to operate on our incoming IoT data.
In this lecture we fill our Cosmos DB table with IoT data using a virtual device. Any IoT device will work to send data to IoT hub as long as the JSON format and order of key-value data items is correct
In this lecture we develop an Azure Function App capable of extracting all of our IoT items from the CosmosDB we created earlier. The function needs the dependencies loaded properly as well as both the CosmosDB endpoint and Primary key. Once configured we will test it to ensure it extracts all our data table's items successfully from both the Azure Console and with the Function URL pasted into a browser window.
In the lecture we discuss the HTML web code that will visualize and graph our IoT data by sending a GET request to the Function URL, which we developed in the last lecture, which in turn extracts our IoT data from the CosmosDB we created earlier that stores our IoT data.
In this course we will use both virtual and physical devices to connect and transmit IoT data to Microsoft Azure. Students should either have an ESP32 or Raspberry Pi IoT device, but if not, they can use the free virtual IoT devices that will be explained in this course. Learners can sign up for a free tier Azure account or use their regular accounts if they are already Azure users. In this course we will program these IoT devices in various languages to suit the student's preferences. We will cover the programming languages of Arduino, MicroPython and C programming for the ESP32. For the Raspberry Pi we will program the devices in both Python and Node.js using the Azure device SDKs to transmit IoT data to the Azure cloud using our custom IoT Data Producer programs.
Once our IoT data is transmitted to the Azure cloud we can then cover some basic IoT-Centric design flows on the cloud. First, we will store our IoT data in ultra cheap Azure Blob storage and then graph that data with a custom designed static website, also held in blob storage. Our IoT data will utilize JavaScript to chart the data. Finally, we will create a second IoT-centric custom design on the Azure cloud which will store our IoT data in a Cosmos database and then use a custom designed website with a call to our custom designed Azure Function to query and fetch data from our Cosmos Database. Once the data is retrieved from the database, we will then chart our IoT variables to our own static website held in blob storage.
By the end of the course the students should have a much better understanding on how to program embedded devices to talk to the Azure cloud as well as gain an understanding of typical IoT-Centric workflows on the Azure Cloud.