Git Product home page Git Product logo

iot-for-beginners's Introduction

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

GitHub watchers GitHub forks GitHub stars

Under development animated GIF

This repo is heavily under development. Check back soon for more updates.

IoT for Beginners - A Curriculum

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.

A road map for the course showing 24 lessons covering intro, farming, transport, processing, retail and cooking

Hearty thanks to our authors Jen Looper, Jim Bennett, and sketchnote artist Nitya Narasimhan

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](create a Learn collection and post it here) and by watching the videos mentioned below.

Your promo video here

Promo video

๐Ÿ’ Click the image above for a video about the project and the folks who created it!

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.

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 mode before committing to a purchase. You can read more and find a 'shopping list' on the hardware page.

๐Ÿ’ Find our Code of Conduct, Contributing, and Translation guidelines. We welcome your constructive feedback!

Each lesson includes:

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

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.

Lessons

Project Name Concepts Taught Learning Objectives Linked Lesson
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

Offline access

You can run this documentation offline by using Docsify. Fork this repo, 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.

iot-for-beginners's People

Contributors

adityagarg00 avatar brminnick avatar dependabot[bot] avatar jlooper avatar microsoft-github-operations[bot] avatar microsoftopensource avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.