These tutorials were compiled as a way to understand Azure and how to use the Internet of Things (IoT) cloud services with IoT devices.
IoT devices are physical devices that are embedded with sensors, software, and network connectivity, allowing them to collect and exchange data. Non-IoT devices are physical devices that do not have these capabilities.
One key advantage of IoT devices is their ability to communicate with other devices and systems over the internet, allowing them to send and receive data and be controlled remotely. This can make them more convenient and efficient to use, as they can be accessed and controlled from anywhere with an internet connection. For example, a smart thermostat can be controlled from a smartphone app, and a smart irrigation system can be programmed to turn on and off based on weather data.
Another advantage of IoT devices is their ability to collect and analyze data from their surroundings, which can provide valuable insights and improve decision-making. For example, an IoT-connected manufacturing plant can use sensors to monitor equipment performance and identify problems before they occur, reducing downtime and maintenance costs.
However, there are also some potential drawbacks to using IoT devices. One concern is the potential for security vulnerabilities, as these devices often have access to sensitive data and can be controlled remotely. Ensuring the security of IoT devices is important to prevent unauthorized access and protect sensitive data.
In summary, IoT devices offer the advantages of remote control and data collection, but it is important to carefully consider the security implications when implementing these devices. Non-IoT devices do not have these capabilities, but may be more secure and simpler to use in some cases.
Coding devices to use the IoT can provide a number of benefits, including:
- Improved efficiency. By using IoT devices, businesses and individuals can automate tasks and processes, which can lead to increased efficiency and productivity. For example, a company might use IoT sensors to monitor the temperature and humidity in a warehouse, and use this data to optimize the climate control system.
- Enhanced security. IoT devices can be used to monitor and secure physical assets and infrastructure. For example, a smart security system might use IoT sensors to detect unusual activity and send alerts to the owner or security personnel.
- Increased connectivity. IoT devices can be used to connect people, devices, and systems in ways that were previously not possible. For example, a smart home might use IoT devices to control the lighting, heating, and appliances, allowing the homeowner to control these systems remotely.
- Improved decision-making. IoT devices can generate large amounts of data, which can be used to inform decision-making and improve business operations. For example, a retailer might use IoT sensors to track customer foot traffic and use this data to optimize store layouts and product placements.
- Enhanced customer experience. IoT devices can be used to improve the customer experience in a variety of ways. For example, a hotel might use IoT devices to allow guests to control the temperature and lighting in their rooms, or a retailer might use IoT devices to personalize the shopping experience for individual customers.
When you complete these tutorials you will be able to build your own secured, remotely controlled devices and solutions. You don't need to know much about Azure and only be familiar with the basics of coding to successfully get through this program. These tutorials focus on minimizing the cost of using Azure. You'll use PowerShell for cloud service management and Python for an IoT capable device--a Raspberry Pi.
These tutorials are intended to be completed in the order they are listed. The table below details the supplies you'll need for a successful journey.
Ingredient | Description |
---|---|
An Azure Subscription | There are a few avenues to choose from: a one-time free Azure subscription with $200 USD 30-day starter or a student subscription with a 12 month $100 Azure credit limit. You'll need to opt in for pay-as-you go once the free offers expire. The $100 credit won't be enough should you need to create a cloud virtual machine, see the prerequisite tutorial to Create A Virtual Machine. The other option is to purchase a Visual Studio Professional subscription or higher, which provides you with an Azure monthly limit of around $150 USD. |
A Raspberry Pi | A model 3 was used to create these tutorials, however you'll only need a basic model. Note these tutorials do not make use of any desktop features. Your best bet is to purchase one directly from the https://www.raspberrypi.com/ website |
A Starter Kit for your Raspberry Pi | There is a wide variety to choose from but you'll only need the most basic starter kit. A good starter kit will have a plethora of electronics (sensors, LEDs, motors, buzzers, transistors, resistors), with accompanying tutorials explaining the concepts of each electronic part, the schematic for connecting the part to your Raspberry Pi, and provides reference material such as specifications to each electronic part. |
A micro-SD card of 16 MB or higher and a micro-SD to USB-C adapter | Note that some starter kits come with these items. |
This section of tutorials starts you on the basics of IoT cloud development. With the exception on the first tutorial to Create a Cloud Virtual Machine, the remaining tutorials focus on setting up and using IoT Cloud services and using a simulated device to interact with them. No need for a Raspberry Pi in this section. There are several reasons you'll start with a simulated IoT device rather than a real one:
- Cost. Simulated IoT devices are typically less expensive than real ones, which can make them a more affordable option for learning and experimentation.
- Convenience. Simulated IoT devices can be more convenient to use than real ones, as they do not require physical setup or maintenance. This can be especially useful if you do not have access to a real IoT device or if you are learning remotely.
- Safety. Simulated IoT devices can be safer to use than real ones, as they do not involve any physical components or connections. This can be especially important if you are working with potentially hazardous devices or if you are learning to code with a limited understanding of the underlying hardware.
- Reproducibility. Simulated IoT devices can be easier to reproduce and share than real ones, which can be useful for collaborative learning or for sharing code examples.
However, it is also important to note that learning to code with a real IoT device can provide a more realistic and hands-on experience, which is covered in the tutorials that follow this section. Once you've completed this section you'll have a solid understanding of how IoT devices interact with the Cloud.
- Create a Cloud Virtual Machine
- Configure your Cloud Machine
- Create an IoT Hub and Storage Account
- Create a Simulated Device
- Send a Message from the Cloud to a Simulated Device
- Send a Message from a Simulated Device to the Cloud
- Upload a file to the Cloud from your Device
- Create a Stream Analytics Job
This section of tutorials covers setting up your Raspberry Pi with an easy way to remotely code it. Once you've completed this section you'll have a solid understanding of how to scale and securely use IoT devices on the public internet.
- Set up your Raspberry Pi and Remotely Connect Visual Studio Code
- Create a Device Provisioning Service
- Create an x509 Certificate to Enroll Your Device
- Send Device Information to the Cloud
- Send Hostname and IP address to the Cloud when Booting Up your Raspberry Pi
This section of tutorials you'll explore the building blocks of various electronic components and the GPIO library.
- Light Emitting Diode (LEDs)
- Light Emitting Display Bar Graph
- Seven Segment Digit Display
- Button Switch and Simple Loop Lighting of LEDs
- Button Switch and Waiting for Edge Lighting of LEDs
- Button Switch and Event Detected Lighting of LEDs
- Four Digit Seven Segment Display
- Analog to Digital Conversion of a Light Dependent Resistor
- 8x8 LED Matrix Display
- Liquid Crystal Display
- Remotely Control a Liquid Crystal Display
- Active Buzzer
- Ultrasonic Distance Sensor
- Temperature and Humidity Sensor
- DC Motor
- Remotely Control a DC Motor
- Step Motor
- Remotely Control a Step Motor
- Sensor Hat
- Remotely Control a Sensor Hat
- Camera
- Remotely Control a Camera
This section of tutorials you'll remotely control various electronics connected to your Raspberry Pi
- Remotely Control an LED
- Remotely Control a Light Emitting Display Bar Graph
- Remotely Control a Seven Segment Display
- Remotely Control an 8x8 LED Matrix Display
- Send Light Measurements to the cloud
- Send Temperature and Humidity Sensor Data to the Cloud
- Remotely Control a Passive Buzzer with Morse Code
- Send Ultrasonic Distance Sensor Data to the Cloud
- Deploy Map Routing
- Create a Turn-by-turn Route Simulated Device
- Send a Route of Coordinates
- Create a Digital Twins Service
- Configure your Digital Twins Service