Azure Cloud Advocates at Microsoft are pleased to offer a 12-week, 24-lesson curriculum all about IoT basics. Each lesson includes pre- and post-lesson quizzes, written instructions to complete the lesson, a solution, an assignment and more. Our project-based pedagogy allows you to learn while building, a proven way for new skills to 'stick'.
The projects cover the journey of food from farm to table. This includes farming, logistics, manufacturing, retail and consumer - all popular industry areas for IoT devices.
Sketchnote by Nitya Narasimhan. Click the image for a larger version.
🎥 Click the image above for a video about the project!
Teachers, we have included some suggestions on how to use this curriculum. If you would like to create your own lessons, we have also included a lesson template.
Students, to use this curriculum on your own, fork the entire repo and complete the exercises on your own, starting with a pre-lecture quiz, then reading the lecture and completing the rest of the activities. Try to create the projects by comprehending the lessons rather than copying the solution code; however that code is available in the /solutions folders in each project-oriented lesson. Another idea would be to form a study group with friends and go through the content together. For further study, we recommend Microsoft Learn.
For a video overview of this course, check out this video:
🎥 Click the image above for a video about the project!
Pedagogy
We have chosen two pedagogical tenets while building this curriculum: ensuring that it is project-based and that it includes frequent quizzes. By the end of this series, students will have built a plant monitoring and watering system, a vehicle tracker, a smart factory setup to track and check food, and a voice-controlled cooking timer, and will have learned the basics of the Internet of Things including how to write device code, connect to the cloud, analyze telemetry and run AI on the edge.
By ensuring that the content aligns with projects, the process is made more engaging for students and retention of concepts will be augmented.
In addition, a low-stakes quiz before a class sets the intention of the student towards learning a topic, while a second quiz after class ensures further retention. This curriculum was designed to be flexible and fun and can be taken in whole or in part. The projects start small and become increasingly complex by the end of the 12 week cycle.
Each project is be based around real-world hardware available to students and hobbyists. Each project looks into the specific project domain, providing relevant background knowledge. To be a successful developer it helps to understand the domain in which you are solving problems, providing this background knowledge allows students to think about their IoT solutions and learnings in the context of the kind of real-world problem that they might be asked to solve as an IoT developer. Students learn the 'why' of the solutions they are building, and get an appreciation of the end user.
Hardware
We have two choices of IoT hardware to use for the projects depending on personal preference, programming language knowledge or preferences, learning goals and availability. We have also provided a 'virtual hardware' version for those who don’t have access to hardware, or want to learn more before committing to a purchase. You can read more and find a 'shopping list' on the hardware page, including links to buy complete kits from our friends at Seeed Studio.
for project-based lessons, step-by-step guides on how to build the project
knowledge checks
a challenge
supplemental reading
assignment
post-lesson quiz
A note about quizzes: All quizzes are contained in this app, for 48 total quizzes of three questions each. They are linked from within the lessons but the quiz app can be run locally; follow the instruction in the quiz-app folder. They are gradually being localized.
Learn the basic principles of IoT and the basic building blocks of IoT solutions such as sensors and cloud services whilst you are setting up your first IoT device
You can run this documentation offline by using https://docsify.js.org//[Docsify]. Fork this repo, https://docsify.js.org//quickstart[install Docsify] on your local machine, and then in the root folder of this repo, type docsify serve. The website will be served on port 3000 on your localhost: localhost:3000.
readme
PDF
You can generate a PDF of this content for offline access if needed. To do this, make sure you have npm installed and run the following commands in the root folder of this repo:
npm i
npm run convert
Slides
There are slide decks for some of the lessons in the slides folder.
@microsoft
Azure Cloud Advocates at Microsoft are pleased to offer a 12-week, 24-lesson curriculum all about IoT basics. Each lesson includes pre- and post-lesson quizzes, written instructions to complete the lesson, a solution, an assignment and more. Our project-based pedagogy allows you to learn while building, a proven way for new skills to 'stick'.
The projects cover the journey of food from farm to table. This includes farming, logistics, manufacturing, retail and consumer - all popular industry areas for IoT devices.
Hearty thanks to our authors Jen Fox, Jen Looper, Jim Bennett, and our sketchnote artist Nitya Narasimhan.
Thanks as well to our team of Microsoft Learn Student Ambassadors who have been reviewing and translating this curriculum - Aditya Garg, Anurag Sharma, Arpita Das, Aryan Jain, Bhavesh Suneja, Faith Hunja, Lateefah Bello, Manvi Jha, Mireille Tan, Mohammad Iftekher (Iftu) Ebne Jalal, Mohammad Zulfikar, Priyanshu Srivastav, Thanmai Gowducheruvu, and Zina Kamel.
Meet the team!
Gif by Mohit Jaisal
For a video overview of this course, check out this video:
Pedagogy
We have chosen two pedagogical tenets while building this curriculum: ensuring that it is project-based and that it includes frequent quizzes. By the end of this series, students will have built a plant monitoring and watering system, a vehicle tracker, a smart factory setup to track and check food, and a voice-controlled cooking timer, and will have learned the basics of the Internet of Things including how to write device code, connect to the cloud, analyze telemetry and run AI on the edge.
By ensuring that the content aligns with projects, the process is made more engaging for students and retention of concepts will be augmented.
In addition, a low-stakes quiz before a class sets the intention of the student towards learning a topic, while a second quiz after class ensures further retention. This curriculum was designed to be flexible and fun and can be taken in whole or in part. The projects start small and become increasingly complex by the end of the 12 week cycle.
Each project is be based around real-world hardware available to students and hobbyists. Each project looks into the specific project domain, providing relevant background knowledge. To be a successful developer it helps to understand the domain in which you are solving problems, providing this background knowledge allows students to think about their IoT solutions and learnings in the context of the kind of real-world problem that they might be asked to solve as an IoT developer. Students learn the 'why' of the solutions they are building, and get an appreciation of the end user.
Hardware
We have two choices of IoT hardware to use for the projects depending on personal preference, programming language knowledge or preferences, learning goals and availability. We have also provided a 'virtual hardware' version for those who don’t have access to hardware, or want to learn more before committing to a purchase. You can read more and find a 'shopping list' on the hardware page, including links to buy complete kits from our friends at Seeed Studio.
Each lesson includes:
sketchnote
optional supplemental video
pre-lesson warmup quiz
written lesson
for project-based lessons, step-by-step guides on how to build the project
knowledge checks
a challenge
supplemental reading
assignment
post-lesson quiz
Lessons
01
Getting started
Introduction to IoT
Learn the basic principles of IoT and the basic building blocks of IoT solutions such as sensors and cloud services whilst you are setting up your first IoT device
Introduction to IoT
02
Getting started
A deeper dive into IoT
Learn more about the components of an IoT system, as well as microcontrollers and single-board computers
A deeper dive into IoT
03
Getting started
Interact with the physical world with sensors and actuators
Learn about sensors to gather data from the physical world, and actuators to send feedback, whilst you build a nightlight
Interact with the physical world with sensors and actuators
04
Getting started
Connect your device to the Internet
Learn about how to connect an IoT device to the Internet to send and receive messages by connecting your nightlight to an MQTT broker
Connect your device to the Internet
05
Farm
Predict plant growth
Learn how to predict plant growth using temperature data captured by an IoT device
Predict plant growth
06
Farm
Detect soil moisture
Learn how to detect soil moisture and calibrate a soil moisture sensor
Detect soil moisture
07
Farm
Automated plant watering
Learn how to automate and time watering using a relay and MQTT
Automated plant watering
08
Farm
Migrate your plant to the cloud
Learn about the cloud and cloud-hosted IoT services and how to connect your plant to one of these instead of a public MQTT broker
Migrate your plant to the cloud
09
Farm
Migrate your application logic to the cloud
Learn about how you can write application logic in the cloud that responds to IoT messages
Migrate your application logic to the cloud
10
Farm
Keep your plant secure
Learn about security with IoT and how to keep your plant secure with keys and certificates
Keep your plant secure
11
Transport
Location tracking
Learn about GPS location tracking for IoT devices
Location tracking
12
Transport
Store location data
Learn how to store IoT data to be visualized or analysed later
Store location data
13
Transport
Visualize location data
Learn about visualizing location data on a map, and how maps represent the real 3d world in 2 dimensions
Visualize location data
14
Transport
Geofences
Learn about geofences, and how they can be used to alert when vehicles in the supply chain are close to their destination
Geofences
15
Manufacturing
Train a fruit quality detector
Learn about training an image classifier in the cloud to detect fruit quality
Train a fruit quality detector
16
Manufacturing
Check fruit quality from an IoT device
Learn about using your fruit quality detector from an IoT device
Check fruit quality from an IoT device
17
Manufacturing
Run your fruit detector on the edge
Learn about running your fruit detector on an IoT device on the edge
Run your fruit detector on the edge
18
Manufacturing
Trigger fruit quality detection from a sensor
Learn about triggering fruit quality detection from a sensor
Trigger fruit quality detection from a sensor
19
Retail
Train a stock detector
Learn how to use object detection to train a stock detector to count stock in a shop
Train a stock detector
20
Retail
Check stock from an IoT device
Learn how to check stock from an IoT device using an object detection model
Check stock from an IoT device
21
Consumer
Recognize speech with an IoT device
Learn how to recognize speech from an IoT device to build a smart timer
Recognize speech with an IoT device
22
Consumer
Understand language
Learn how to understand sentences spoken to an IoT device
Understand language
23
Consumer
Set a timer and provide spoken feedback
Learn how to set a timer on an IoT device and give spoken feedback on when the timer is set and when it finishes
Set a timer and provide spoken feedback
24
Consumer
Support multiple languages
Learn how to support multiple languages, both being spoken to and the responses from your smart timer
Support multiple languages
Offline access
You can run this documentation offline by using https://docsify.js.org//[Docsify]. Fork this repo, https://docsify.js.org//quickstart[install Docsify] on your local machine, and then in the root folder of this repo, type
docsify serve
. The website will be served on port 3000 on your localhost:localhost:3000
.readme
PDF
You can generate a PDF of this content for offline access if needed. To do this, make sure you have npm installed and run the following commands in the root folder of this repo:
Slides
There are slide decks for some of the lessons in the slides folder.
Help Wanted!
Would you like to contribute a translation? Please read our translation guidelines and add input to one of the translations issues. If you want to translate into a new language, please raise a new issue for tracking.
Other Curricula
Our team produces other curricula! Check out:
Web Dev for Beginners
ML for Beginners
Data Science for Beginners
AI for Beginners
XR Development for Beginners
Image attributions
You can find all the attributions for the images used in this curriculum where required in the Attributions.