From a62f82cd3c7c6faa2188c2cf69303921d62e2941 Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Thu, 1 Jul 2021 19:49:11 -0700 Subject: [PATCH] Tweaks (#143) * Adding content * Update en.json * Update README.md * Update TRANSLATIONS.md * Adding lesson tempolates * Fixing code files with each others code in * Update README.md * Adding lesson 16 * Adding virtual camera * Adding Wio Terminal camera capture * Adding wio terminal code * Adding SBC classification to lesson 16 * Adding challenge, review and assignment * Adding images and using new Azure icons * Update README.md * Update iot-reference-architecture.png * Adding structure for JulyOT links * Removing icons * Sketchnotes! * Create lesson-1.png * Starting on lesson 18 * Updated sketch * Adding virtual distance sensor * Adding Wio Terminal image classification * Update README.md * Adding structure for project 6 and wio terminal distance sensor * Adding some of the smart timer stuff * Updating sketchnotes * Adding virtual device speech to text * Adding chapter 21 * Language tweaks * Lesson 22 stuff * Update en.json * Bumping seeed libraries * Adding functions lab to lesson 22 * Almost done with LUIS * Update README.md * Reverting sunlight sensor change Fixes #88 * Structure * Adding speech to text lab for Pi * Adding virtual device text to speech lab * Finishing lesson 23 * Clarifying privacy Fixes #99 * Update README.md * Update hardware.md * Update README.md * Fixing some code samples that were wrong * Adding more on translation * Adding more on translator * Update README.md * Update README.md * Adding public access to the container * First part of retail object detection * More on stock lesson * Tweaks to maps lesson * Update README.md * Update pi-sensor.md * IoT Edge install stuffs * Notes on consumer groups and not running the event monitor at the same time * Assignment for object detector * Memory notes for speech to text * Migrating LUIS to an HTTP trigger * Adding Wio Terminal speech to text * Changing smart timer to functions from hub * Changing a param to body to avoid URL encoding * Update README.md * Tweaks before IoT Show * Adding sketchnote links * Adding object detection labs * Adding more on object detection * More on stock detection * Finishing stock counting * Tidying stuff --- .../lessons/1-predict-plant-growth/README.md | 4 ---- .../lessons/2-detect-soil-moisture/README.md | 4 ---- .../3-automated-plant-watering/README.md | 4 ---- .../README.md | 4 ---- .../README.md | 4 ---- .../6-keep-your-plant-secure/README.md | 4 ---- .../lessons/1-location-tracking/README.md | 4 ---- .../lessons/2-store-location-data/README.md | 4 ---- .../3-visualize-location-data/README.md | 4 +--- 3-transport/lessons/4-geofences/README.md | 2 -- .../lessons/1-train-fruit-detector/README.md | 2 -- .../2-check-fruit-from-device/README.md | 2 -- .../3-run-fruit-detector-edge/README.md | 2 -- .../4-trigger-fruit-detector/README.md | 4 ---- .../lessons/1-train-stock-detector/README.md | 2 -- .../lessons/2-check-stock-device/README.md | 4 ---- .../lessons/1-speech-recognition/README.md | 2 -- .../2-language-understanding/README.md | 4 ---- .../lessons/3-spoken-feedback/README.md | 4 ---- .../4-multiple-language-support/README.md | 2 -- README.md | 4 ++-- SUPPORT.md | 18 ++---------------- hardware.md | 9 +++++++++ images/seeed-logo.png | Bin 0 -> 10183 bytes 24 files changed, 14 insertions(+), 83 deletions(-) create mode 100644 images/seeed-logo.png diff --git a/2-farm/lessons/1-predict-plant-growth/README.md b/2-farm/lessons/1-predict-plant-growth/README.md index 1c54528..5a56781 100644 --- a/2-farm/lessons/1-predict-plant-growth/README.md +++ b/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,9 +1,5 @@ # Predict plant growth with IoT -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/9) diff --git a/2-farm/lessons/2-detect-soil-moisture/README.md b/2-farm/lessons/2-detect-soil-moisture/README.md index 697bd88..eae4a82 100644 --- a/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/2-farm/lessons/2-detect-soil-moisture/README.md @@ -1,9 +1,5 @@ # Detect soil moisture -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/11) diff --git a/2-farm/lessons/3-automated-plant-watering/README.md b/2-farm/lessons/3-automated-plant-watering/README.md index c4d257b..4dbaf13 100644 --- a/2-farm/lessons/3-automated-plant-watering/README.md +++ b/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,9 +1,5 @@ # Automated plant watering -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/13) diff --git a/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 28361f0..994ae71 100644 --- a/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,9 +1,5 @@ # Migrate your plant to the cloud -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/15) diff --git a/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 3a45597..80223f7 100644 --- a/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,9 +1,5 @@ # Migrate your application logic to the cloud -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/17) diff --git a/2-farm/lessons/6-keep-your-plant-secure/README.md b/2-farm/lessons/6-keep-your-plant-secure/README.md index dce36fd..b999f53 100644 --- a/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,9 +1,5 @@ # Keep your plant secure -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/19) diff --git a/3-transport/lessons/1-location-tracking/README.md b/3-transport/lessons/1-location-tracking/README.md index 917a79f..cea9db8 100644 --- a/3-transport/lessons/1-location-tracking/README.md +++ b/3-transport/lessons/1-location-tracking/README.md @@ -1,9 +1,5 @@ # Location tracking -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/21) diff --git a/3-transport/lessons/2-store-location-data/README.md b/3-transport/lessons/2-store-location-data/README.md index ba4ca52..0cbb658 100644 --- a/3-transport/lessons/2-store-location-data/README.md +++ b/3-transport/lessons/2-store-location-data/README.md @@ -1,9 +1,5 @@ # Store location data -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/23) diff --git a/3-transport/lessons/3-visualize-location-data/README.md b/3-transport/lessons/3-visualize-location-data/README.md index f5c55d5..27c27dd 100644 --- a/3-transport/lessons/3-visualize-location-data/README.md +++ b/3-transport/lessons/3-visualize-location-data/README.md @@ -1,8 +1,6 @@ # Visualize location data -Add a sketchnote if possible/appropriate - -This video gives an overview of OAzure Maps with IoT, a service that will be covered in this lesson. +This video gives an overview of Azure Maps with IoT, a service that will be covered in this lesson. [![Azure Maps - The Microsoft Azure Enterprise Location Platform](https://img.youtube.com/vi/P5i2GFTtb2s/0.jpg)](https://www.youtube.com/watch?v=P5i2GFTtb2s) diff --git a/3-transport/lessons/4-geofences/README.md b/3-transport/lessons/4-geofences/README.md index c72422b..77b67ee 100644 --- a/3-transport/lessons/4-geofences/README.md +++ b/3-transport/lessons/4-geofences/README.md @@ -1,7 +1,5 @@ # Geofences -Add a sketchnote if possible/appropriate - This video gives an overview of geofences and how to use them in Azure Maps, topics that will be covered in this lesson: [![Geofencing with Azure Maps from the Microsoft Developer IoT show](https://img.youtube.com/vi/nsrgYhaYNVY/0.jpg)](https://www.youtube.com/watch?v=nsrgYhaYNVY) diff --git a/4-manufacturing/lessons/1-train-fruit-detector/README.md b/4-manufacturing/lessons/1-train-fruit-detector/README.md index 90a12c7..938ff3a 100644 --- a/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,7 +1,5 @@ # Train a fruit quality detector -Add a sketchnote if possible/appropriate - This video gives an overview of the Azure Custom Vision service, a service that will be covered in this lesson. [![Custom Vision – Machine Learning Made Easy | The Xamarin Show](https://img.youtube.com/vi/TETcDLJlWR4/0.jpg)](https://www.youtube.com/watch?v=TETcDLJlWR4) diff --git a/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 901839a..fe522c0 100644 --- a/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,7 +1,5 @@ # Check fruit quality from an IoT device -Add a sketchnote if possible/appropriate - ![Embed a video here if available](video-url) ## Pre-lecture quiz diff --git a/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 51e7896..de3d4c7 100644 --- a/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -2,8 +2,6 @@ -Add a sketchnote if possible/appropriate - This video gives an overview of running image classifiers on IoT devices, the topic that is covered in this lesson. [![Custom Vison AI on Azure IoT Edge](https://img.youtube.com/vi/_K5fqGLO8us/0.jpg)](https://www.youtube.com/watch?v=_K5fqGLO8us) diff --git a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index c3f9259..b358d2b 100644 --- a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,9 +1,5 @@ # Trigger fruit quality detection from a sensor -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/35) diff --git a/5-retail/lessons/1-train-stock-detector/README.md b/5-retail/lessons/1-train-stock-detector/README.md index 98f4420..7516434 100644 --- a/5-retail/lessons/1-train-stock-detector/README.md +++ b/5-retail/lessons/1-train-stock-detector/README.md @@ -1,7 +1,5 @@ # Train a stock detector -Add a sketchnote if possible/appropriate - This video gives an overview of Object Detection the Azure Custom Vision service, a service that will be covered in this lesson. [![Custom Vision 2 - Object Detection Made Easy | The Xamarin Show](https://img.youtube.com/vi/wtTYSyBUpFc/0.jpg)](https://www.youtube.com/watch?v=wtTYSyBUpFc) diff --git a/5-retail/lessons/2-check-stock-device/README.md b/5-retail/lessons/2-check-stock-device/README.md index 0a5d37d..595c4e8 100644 --- a/5-retail/lessons/2-check-stock-device/README.md +++ b/5-retail/lessons/2-check-stock-device/README.md @@ -1,9 +1,5 @@ # Check stock from an IoT device -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/39) diff --git a/6-consumer/lessons/1-speech-recognition/README.md b/6-consumer/lessons/1-speech-recognition/README.md index b3c2634..417af58 100644 --- a/6-consumer/lessons/1-speech-recognition/README.md +++ b/6-consumer/lessons/1-speech-recognition/README.md @@ -1,7 +1,5 @@ # Recognize speech with an IoT device -Add a sketchnote if possible/appropriate - This video gives an overview of the Azure speech service, a topic that will be covered in this lesson: [![How to get started using your Cognitive Services Speech resource from the Microsoft Azure YouTube channel](https://img.youtube.com/vi/iW0Fw0l3mrA/0.jpg)](https://www.youtube.com/watch?v=iW0Fw0l3mrA) diff --git a/6-consumer/lessons/2-language-understanding/README.md b/6-consumer/lessons/2-language-understanding/README.md index fc987b7..e6da5a2 100644 --- a/6-consumer/lessons/2-language-understanding/README.md +++ b/6-consumer/lessons/2-language-understanding/README.md @@ -1,9 +1,5 @@ # Understand language -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/43) diff --git a/6-consumer/lessons/3-spoken-feedback/README.md b/6-consumer/lessons/3-spoken-feedback/README.md index ef17d4c..3cff7a3 100644 --- a/6-consumer/lessons/3-spoken-feedback/README.md +++ b/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,9 +1,5 @@ # Set a timer and provide spoken feedback -Add a sketchnote if possible/appropriate - -![Embed a video here if available](video-url) - ## Pre-lecture quiz [Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/45) diff --git a/6-consumer/lessons/4-multiple-language-support/README.md b/6-consumer/lessons/4-multiple-language-support/README.md index 9fb0a0d..5fac47b 100644 --- a/6-consumer/lessons/4-multiple-language-support/README.md +++ b/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,7 +1,5 @@ # Support multiple languages -Add a sketchnote if possible/appropriate - This video gives an overview of the Azure speech services, covering speech to text and text to speech from earlier lessons, as well as translating speech, a topic covered in this lesson: [![Recognizing speech with a few lines of Python from Microsoft Build 2020](https://img.youtube.com/vi/h6xbpMPSGEA/0.jpg)](https://www.youtube.com/watch?v=h6xbpMPSGEA) diff --git a/README.md b/README.md index 2993aec..add188f 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,13 @@ The projects cover the journey of food from farm to table. This includes farming > **Teachers**, we have [included some suggestions](for-teachers.md) on how to use this curriculum. If you would like to create your own lessons, we have also included a [lesson template](lesson-template/README.md). -> **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. +> **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](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). > Your promo video here [![Promo video](./images/iot-for-beginners.png)](https://youtube.com/watch?v=R1wrdtmBSII "Promo video") -> 💁 Click the image above for a video about the project and the folks who created it! +> 💁 Click the image above for a video about the project! ## Pedagogy diff --git a/SUPPORT.md b/SUPPORT.md index dc72f0e..01161e9 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -1,24 +1,10 @@ -# TODO: The maintainer of this repo has not yet edited this file - -**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project? - -- **No CSS support:** Fill out this template with information about how to file issues and get help. -- **Yes CSS support:** Fill out an intake form at [aka.ms/spot](https://aka.ms/spot). CSS will work with/help you to determine next steps. More details also available at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). -- **Not sure?** Fill out a SPOT intake as though the answer were "Yes". CSS will help you decide. - -*Then remove this first heading from this SUPPORT.MD file before publishing your repo.* - # Support ## How to file issues and get help -This project uses GitHub Issues to track bugs and feature requests. Please search the existing -issues before filing new issues to avoid duplicates. For new issues, file your bug or -feature request as a new Issue. +This project uses GitHub Issues to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue. -For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE -FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER -CHANNEL. WHERE WILL YOU HELP PEOPLE?**. +For help and questions about using this project, please contact us by raising an issue in this repo. ## Microsoft Support Policy diff --git a/hardware.md b/hardware.md index 007e2c9..896ff74 100644 --- a/hardware.md +++ b/hardware.md @@ -10,6 +10,15 @@ The specific hardware was chosen to reduce the complexity of the lessons and ass You will also need a few non-technical items, such as soil or a pot plant, and fruit or vegetables. +## Buy the kits + +![The Seeed studios logo](./images/seeed-logo.png) + +Seeed Studios have very kindly made all the hardware available as easy to purchase kits: + +* [IoT for beginners with Seeed and Microsoft - Wio Terminal Starter Kit]() +* [IoT for beginners with Seeed and Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit.html) + ## Arduino All the device code for Arduino is in C++. To complete all the assignments you will need the following: diff --git a/images/seeed-logo.png b/images/seeed-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..53526172c7bfa98f1de47ac8231a329b75d983c4 GIT binary patch literal 10183 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 c(tn{u1Y2mQ!LRm`jsLP#6}1%V