This repo is actively developed - watch, star or check back often for updates
This repo contains hands-on-labs and other lab and workshop based material designed to support the creation of IoT curricula for higher education, covering IoT and AI on the edge. All the labs use physical devices, such as Raspberry Pis and NVIDIA Jetson boards, and are designed for in-class or at home study. As an educator, you would use these labs in a blended learning environment, teaching concepts and theory in the classroom, mixed with labs from here to supplement the course and provide hands-on experience.
Most of the content here is Microsoft content available in other places - this repo brings some of the content together and provides a single place to find content across different gitHub repos, documentation, Microsoft Learn and other sites.
All the content contained in this repo is free for you to use in your courses however you see fit. We will endeavour to keep the content up to date, but seeing as technology moves fast, things may be missed. If you find any errors in these materials, please either raise an issue, or feel free to raise a PR with the fix.
We will be continually adding and updating the content here. If there is a particular lab or content you would like added, please raise an issue. If you have content you would like to share, please raise a PR.
If you are after beginner IoT content, check out IoT for beginners, a 12-week, 24 lesson curriculum that teaches IoT from the 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.
These labs make use of a variety of hardware, all connected to cloud services. Each lab indicates up front what hardware is required. There is also an overall list for an 'IoT Cart' that provides a complete, all-in-one hardware solution that covers all these labs. This is designed to be a 'course in a box' - you purchase everything on the list and that can be shared between groups of students learning IoT in a more IoT focused degree program, rather than a single course as part of a wider technology-based learning program. Details of the cart are in the cart folder.
The devices folder contains details on setting up the different devices recommended for the IoT Cart.
The labs folder contains details on a range of different labs covering IoT and AI on the edge.
The educator-guides folder contains guides for educators, including suggested course outlines and IoT lab guides.
Microsoft Learn is a free, online training platform that provides interactive learning for Microsoft products and more. Our goal is to help you become proficient on our technologies and learn more skills with fun, guided, hands-on, interactive content that's specific to your role and goals.
There are a number of Learning Paths covering IoT technologies, services and solutions. These can form a hands-on component of a blended learning setup in the classroom, or provide a way for students to learn by themselves.
- Azure Fundamentals
- Introduction to internet of things
- Build the intelligent edge with Azure IoT Edge
- Architect API integration in Azure
- Microsoft Power Platform Fundamentals
- IOT10: Connecting Your Physical Environment to a Digital World – A Roadmap to IoT Solutioning
- Introduction to Azure IoT Hub
- Securely connect IoT devices to the cloud
- Develop IoT solutions with Azure IoT Central
- IOT20: Deciphering Data – Optimizing Data Communication to Maximize Your ROI
- Develop with Azure Digital Twins
- Create and use analytics reports with Power BI
- Azure for the Data Engineer
- Architect a data platform in Azure
- Implement a Data Warehouse with Azure Synapse Analytics
- Azure Data Fundamentals: Explore core data concepts
- Data engineering with Azure Databricks
- IOT40: Big Data 2.0 IoT as your New Operational Data Source
- AI edge engineer
- Create machine learning models
- Create no-code predictive models with Azure Machine Learning
- AI business school for manufacturing
- Get started with artificial intelligence on Azure
- Microsoft Azure Artificial Intelligence (AI) strategy and solutions
- Build AI solutions with Azure Machine Learning
- Explore computer vision in Microsoft Azure
- Process and classify images with the Azure Cognitive Vision Services
- Explore natural language processing
- Process and Translate Speech with Azure Cognitive Speech Services
- Evaluate text with Azure Cognitive Language Services
- Bring AI to business users in your organization
- IOT30: Adding Intelligence – Unlocking New Insights with AI & Machine Learning
- IoT demos - examples of end-to-end use cases and the IoT architectures that enable to those use cases.
- Configure and manage products and inventory in Dynamics 365 Supply Chain Management
- Configure and use lean manufacturing in Dynamics 365 Supply Chain Management
- Configure and use discrete manufacturing in Dynamics 365 Supply Chain Management
- IOT50: Get to Solutioning - Strategy & Best Practices when Mapping Designs from Edge to Cloud
- Microsoft IoT Developers channel on YouTube - watch latest videos about Microsoft IoT updates and news, partners and customers spotlights, interactive deep dives as well as demos.
- The IoT Show on Channel9 - the latest Microsoft IoT announcements, product and features demos, customer and partner spotlights, top industry talks, and technical deep dives.
- Maker Show - a maker and IoT focused show from the ForDevs community
- IoT 101 with .NET on Channel9 - a 101 level video series to learn IoT on .NET.
Microsoft offers a number of 'solution accelerators' - almost complete IoT setups that can be customized to your needs. As a part of this, there are a number of quickstarts that allow you to try out the different solutions.
- Try a cloud-based remote monitoring solution
- Try a cloud-based solution to manage my industrial IoT devices
- Deploy and run an IoT device simulation in Azure
- Try a cloud-based solution to run a predictive maintenance analysis on my connected devices
The Azure Architecture Center provides guidance for architecting solutions on Azure using established patterns and practices.
- Azure IoT reference architecture
- IoT and data analytics in the construction industry
- Controlling IoT devices using a Voice Assistant
- IoT using Cosmos DB
- IoT Connected Platform for COVID-19 protection
- Contactless interfaces with Azure IoT Edge
- COVID-19 Safe Solutions at the IoT Edge
- Smart and secure lighting and disinfection
- Predictive maintenance with the intelligent IoT Edge
- Ingestion and processing of real-time automotive IoT data
- Create a safe building
- Secure your IoT SaaS app with the Microsoft identity platform
- Azure Industrial IoT Analytics Guidance
For Industrial IoT (IIoT), Microsoft provides a range of reference materials and samples based around OPC-UA.
- IIoT on Azure documentation - documentation and a solution accelerator for IIoT
- Open62541 - an open source OPC-UA implementation
- OPC-UA with IoT Central - a reference implementation for connecting OPC-Servers to IoT Edge and then passing data up to IoT Central
- IoT Edge offline dashboarding - a set of modules that can be used with Azure IoT Edge to perform dashboarding at the edge
- FarmBeats - AI, Edge & IoT for Agriculture
- FarmBeats for students lesson plans - a program combining an affordable hardware kit with curriculum and activities designed to give students hands-on experience in applying precision agriculture techniques to food production
- FarmBeats for students videos on YouTube
Azure RTOS is an embedded development suite including a small but powerful operating system that provides reliable, ultra-fast performance for resource-constrained devices. It’s easy-to-use and market-proven, having been deployed on more than 6.2 billion devices worldwide. Azure RTOS supports the most popular 32-bit microcontrollers and embedded development tools, so you can make the most of your team’s existing skills.
There are many different programming languages, platforms and tools you can use for IoT. Here are some language resources:
Python is a popular language for developing IoT solutions on devices such as the Raspberry Pi. It's also popular for data science, and building machine learning models to analyze the data coming from IoT devices.
- Azure Python IoT SDK - This repository contains code for the Azure IoT SDKs for Python. This enables python developers to quickly create IoT device solutions that seamlessly connect to the Azure IoTHub ecosystem.
- Python for beginners video series on Channel9 - Over the course of a set of videos we're going to show you the ropes of Python development
- More Python for beginners video series on Channel9 - More Python for beginners videos
- Take your first steps with Python learning path on Microsoft Learn - Interested in learning a programming language but aren't sure where to start? Start here! Learn the basic syntax and thought processes required to build simple applications using Python.
- CircuitPython Azure IoT SDK - An Azure IoT SDK for use with Adafruit CircuitPython, a variant of Python for embedded devices.
.NET is a free, cross-platform, open source developer platform for building applications, and supports programming languages such as C# and F#.
- Azure IoT C# SDK - A C# SDK for connecting to Azure IoT Services
- .NET home page - the home of .NET
- .NET 101 video series - a 101 level video series to learn .NET.
- IoT 101 on Channel9 - a 101 level video series to learn IoT on .NET.
- .NET for IoT devices - This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.
- Azure IoT C SDK - A C SDK for connecting to Azure IoT Services
- Azure IoT Node SDK - The Azure IoT Node.js SDK enables developers to create IoT solutions written in Node.js for the Azure IoT platform.
- Beginner's Series to: JavaScript - a series of practical, bite-sized videos about JavaScript for beginners so you can get up to speed quickly!
- Beginner's Series to: Node.js - a series of practical, bite-sized videos about Node.js for beginners so you can get up to speed quickly!
- Azure IoT Hub library for Arduino - This library is a port of the Microsoft Azure IoT device SDK for C to Arduino. It allows you to use several Arduino compatible boards with Azure IoT Hub
Visual Studio Code (VS Code) is a free, open source, cross-platform developer text editor that can be extended by a huge range of extensions to support different programing languages and capabilities.
- Visual Studio Code - the home of VS Code
- Platform.io - an extension for VS Code that provides tools for embedded C/C++ development, with no additional dependencies
- Remote developer pack - an extension to support remote development, such as connecting to a Raspberry Pi and developing on that Pi from your PC or Mac
- PyLance - Python language extension - an extension providing Python language support to VS Code
- C/C++ - full intellisense and debugging support for C and C++ development
If you are interested in running an IoT event, here are some 'events in a box', giving access to event materials, such as slide decks, video walkthroughs and code samples.
- IoT Event Learning Path - The Internet of Things Event Learning Path is designed for Solution Architects, Business Decision Makers, and Development teams that are interested in building IoT Solutions with Azure Services. The content is comprised of 5 video based modules that approach topics ranging from IoT device connectivity, IoT data communication strategies, use of artificial intelligence at the edge, data processing considerations for IoT data, and IoT solutioning based on the Azure IoT reference architecture.
These labs are designed for courses where Azure resources are provided to students by the institution. To try them out, you can use one of our free subscriptions. Head to the Azure Subscriptions Guide for from information on setting up a subscription.
Microsoft offers a certification in IoT - AZ-220, the Microsoft Certified: Azure IoT Developer Specialty.
Finding your community is more important than ever as classes and social activities take place virtually. Amplify your impact and bring together your peers to learn new skills, solve real-world problems, and build communities across the globe.
Students can apply to be a Microsoft Learn Student Ambassadors. The Student Ambassadors program provides clear steps to help you learn and lead so you can make a difference and empower those around you.
Student Ambassadors get access to unique resources like our global student network on Microsoft Teams and a Microsoft 365 account, and can earn badges for activities and contributions to unlock additional benefits such as cloud credits.
If you are an educator, encourage your students to sign up for this program to help their peers learn new skills, and to improve employability after their studies.
You can learn more on the Microsoft Learn Student Ambassadors site.
Reimagine our world with technology in the 2021 Imagine Cup
We’re looking for bold thinkers and big dreamers to join the 2021 competition journey.
Make an impact through coding, collaboration, and competition. Innovate with passion to tackle global issues and bring your idea to life in the Imagine Cup.
The 19th annual Imagine Cup is more than just a competition for students—you can work with friends (and make new ones!), network with professionals, gain new skills, make a difference in the world, and have the chance to win great prizes.
Read more and sign up at imaginecup.microsoft.com.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Microsoft and any contributors grant you a license to the Microsoft documentation and other content in this repository under the MIT License, see the LICENSE file, and grant you a license to any code in the repository under the MIT License, see the LICENSE-CODE file.
Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.
Privacy information can be found at https://privacy.microsoft.com/
Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents, or trademarks, whether by implication, estoppel or otherwise.