/iot-curriculum

Hands on labs and content for students and educators to learn and teach the Internet of Things at schools, universities, coding clubs, community colleges and bootcamps

Primary LanguageJavaScriptMIT LicenseMIT

Azure IoT Curriculum

GitHub license GitHub contributors GitHub issues GitHub pull-requests PRs Welcome

GitHub watchers GitHub forks GitHub stars

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.

Hardware needs

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.

Device setup

The devices folder contains details on setting up the different devices recommended for the IoT Cart.

Labs

The labs folder contains details on a range of different labs covering IoT and AI on the edge.

Educator guides

The educator-guides folder contains guides for educators, including suggested course outlines and IoT lab guides.

Microsoft Learn

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.

Fundamentals

IoT Concepts and services

Data

AI and Machine Learning

IoT Scenarios

IoT Videos

Solution quickstarts

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.

Reference architectures

The Azure Architecture Center provides guidance for architecting solutions on Azure using established patterns and practices.

Industrial IoT

For Industrial IoT (IIoT), Microsoft provides a range of reference materials and samples based around OPC-UA.

Digital Agriculture

Digital Twins

Robotics

Azure RTOS

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.

Programming languages, platforms and tools

There are many different programming languages, platforms and tools you can use for IoT. Here are some language resources:

Python

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.

.NET

.NET is a free, cross-platform, open source developer platform for building applications, and supports programming languages such as C# and F#.

C/C++

JavaScript/Node.js

  • 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!

Arduino

  • 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

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

IoT Events in a box

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.

Azure subscriptions

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.

Get certified

Microsoft offers a certification in IoT - AZ-220, the Microsoft Certified: Azure IoT Developer Specialty.

Microsoft Learn Student Ambassadors

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.

Imagine Cup

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.

Contributing

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.

Legal Notices

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.