diff --git a/.vscode/settings.json b/.vscode/settings.json index 73f0095d..b3d8c5b5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,6 +10,7 @@ "UDID", "Zigbee", "antimeridian", + "architecting", "geofence", "geofences", "geofencing", diff --git a/1-getting-started/lessons/2-deeper-dive/README.md b/1-getting-started/lessons/2-deeper-dive/README.md index a8730269..ec67ac70 100644 --- a/1-getting-started/lessons/2-deeper-dive/README.md +++ b/1-getting-started/lessons/2-deeper-dive/README.md @@ -120,7 +120,7 @@ Microcontrollers usually have two types of memory - program memory and random-ac Program memory is non-volatile, which means whatever is written to it stays when there is no power to the device. This is the memory that stores your program code. -RAM is the memory used by the program to run, containing variables allocated by your program and data gathered from peripherals. RAM is volatile, when the power goes out the content is lost, effectively resetting your program. +RAM is the memory used by the program to run, containing variables allocated by your program and data gathered from peripherals. RAM is volatile, when the power goes out the contents are lost, effectively resetting your program. > 🎓 Program memory stores your code and stays when there is no power. diff --git a/4-manufacturing/lessons/1-train-fruit-detector/README.md b/4-manufacturing/lessons/1-train-fruit-detector/README.md index 010ab39c..181af1e4 100644 --- a/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -90,6 +90,8 @@ There are a wide range of tools that can help you do this, including cloud-based Custom Vision is a cloud based tool for training image classifiers. It allows you to train a classifier using only a small number of images. You can upload images through a web portal, web API or an SDK, giving each image a *tag* that has the classification of that image. You then train the model, and test it out to see how well it performs. Once you are happy with the model, you can publish versions of it that can be accessed through a web API or an SDK. +![The Azure Custom Vision logo](../../../images/custom-vision-logo.png) + > 💁 You can train a custom vision model with as little as 5 images per classification, but more is better. You can get better results with at least 30 images. Custom Vision is part of a range of AI tools from Microsoft called Cognitive Services. These are AI tools that can be used either without any training, or with a small amount of training. They include speech recognition and translation, language understanding and image analysis. These are available with a free tier as services in Azure. 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 46767307..72329511 100644 --- a/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -151,7 +151,7 @@ If you were to create a production device to sell to farms or factories, how wou You trained your custom vision model using the portal. This relies on having images available - and in the real world you may not be able to get training data that matches what the camera on your device captures. You can work round this by training directly from your device using the training API, to train a model using images captured from your IoT device. -* Read up on the training API in the [Using the Custom Vision SDK quickstart](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/quickstarts/image-classification?tabs=visual-studio&pivots=programming-language-python&WT.mc_id=academic-17441-jabenn) +* Read up on the training API in the [Using the Custom Vision SDK quick start](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/quickstarts/image-classification?tabs=visual-studio&pivots=programming-language-python&WT.mc_id=academic-17441-jabenn) ## Assignment 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 ccebe9ac..120c1d18 100644 --- a/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -2,7 +2,9 @@ Add a sketchnote if possible/appropriate -![Embed a video here if available](video-url) +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) ## Pre-lecture quiz diff --git a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index bbf413f7..a92ce100 100644 --- a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -10,13 +10,37 @@ Add a sketchnote if possible/appropriate ## Introduction -In this lesson you will learn about +An IoT application is not just a single device capturing data and sending it to the cloud, it is more often that not multiple devices all working together to capture data from the physical world using sensors, make decisions based off that data, and interacting back with the physical world via actuators or visualizations. + +In this lesson you will learn more about architecting complex IoT applications, incorporating multiple sensors, multiple cloud services to analyze and store data, and showing a response via an actuator. You will piece together a more advanced fruit quality tracking system. In this lesson we'll cover: -* [Thing 1](#thing-1) +* [Architect complex IoT applications](#architect-complex-iot-applications) +* [Design a fruit quality control system](#design-a-fruit-quality-control-system) +* [Trigger fruit quality checking from a sensor](#trigger-fruit-quality-checking-from-a-sensor) +* [Store fruit quality data](#store-fruit-quality-data) +* [Control feedback via an actuator](#control-feedback-via-an-actuator) + +## Architect complex IoT applications + +![A reference iot architecture](../../../images/iot-reference-architecture.png) + +***A reference iot architecture. LED by abderraouf omara / Microcontroller by Template - all from the [Noun Project](https://thenounproject.com)*** + +## Design a fruit quality control system + +![A reference iot architecture for fruit quality checking](../../../images/iot-reference-architecture-fruit-quality.png) + +***A reference iot architecture for fruit quality checking. LED by abderraouf omara / Microcontroller by Template - all from the [Noun Project](https://thenounproject.com)*** + +## Trigger fruit quality checking from a sensor + +### Task - trigger fruit quality detection from a distance sensor + +## Store fruit quality data -## Thing 1 +## Control feedback via an actuator --- diff --git a/5-retail/README.md b/5-retail/README.md new file mode 100644 index 00000000..0471ed34 --- /dev/null +++ b/5-retail/README.md @@ -0,0 +1,7 @@ +# Retail - using IoT to manage stock levels + +## Topics + + +## Credits + diff --git a/6-consumer/README.md b/6-consumer/README.md new file mode 100644 index 00000000..021b558b --- /dev/null +++ b/6-consumer/README.md @@ -0,0 +1,5 @@ +# Consumer IoT - build a smart voice assistant + +## Topics + +## Credits diff --git a/images/Diagrams.sketch b/images/Diagrams.sketch index 867c5171..1f53a291 100644 Binary files a/images/Diagrams.sketch and b/images/Diagrams.sketch differ diff --git a/images/azure-functions-logo.png b/images/azure-functions-logo.png index 0f3ad2db..131df47b 100644 Binary files a/images/azure-functions-logo.png and b/images/azure-functions-logo.png differ diff --git a/images/azure-iot-edge-logo.png b/images/azure-iot-edge-logo.png new file mode 100644 index 00000000..e753df68 Binary files /dev/null and b/images/azure-iot-edge-logo.png differ diff --git a/images/azure-iot-hub-logo.png b/images/azure-iot-hub-logo.png index 5c2417b2..ef3095ee 100644 Binary files a/images/azure-iot-hub-logo.png and b/images/azure-iot-hub-logo.png differ diff --git a/images/azure-maps-logo.png b/images/azure-maps-logo.png index 03af39b8..7f9267ad 100644 Binary files a/images/azure-maps-logo.png and b/images/azure-maps-logo.png differ diff --git a/images/azure-storage-logo.png b/images/azure-storage-logo.png index df93cc98..b3039c44 100644 Binary files a/images/azure-storage-logo.png and b/images/azure-storage-logo.png differ diff --git a/images/consumer-groups.png b/images/consumer-groups.png index 6c885084..3be72179 100644 Binary files a/images/consumer-groups.png and b/images/consumer-groups.png differ diff --git a/images/custom-vision-logo.png b/images/custom-vision-logo.png new file mode 100644 index 00000000..c28055e5 Binary files /dev/null and b/images/custom-vision-logo.png differ diff --git a/images/gps-telemetry-iot-hub-functions.png b/images/gps-telemetry-iot-hub-functions.png index 7d920915..a43395be 100644 Binary files a/images/gps-telemetry-iot-hub-functions.png and b/images/gps-telemetry-iot-hub-functions.png differ diff --git a/images/gps-telemetry-iot-hub.png b/images/gps-telemetry-iot-hub.png index 7908ca81..26e801b2 100644 Binary files a/images/gps-telemetry-iot-hub.png and b/images/gps-telemetry-iot-hub.png differ diff --git a/images/iot-hub-cloud-to-device-message.png b/images/iot-hub-cloud-to-device-message.png index 27412e5c..5b7eb4a8 100644 Binary files a/images/iot-hub-cloud-to-device-message.png and b/images/iot-hub-cloud-to-device-message.png differ diff --git a/images/iot-hub-device-to-cloud-message.png b/images/iot-hub-device-to-cloud-message.png index 7c9a7954..c9967e58 100644 Binary files a/images/iot-hub-device-to-cloud-message.png and b/images/iot-hub-device-to-cloud-message.png differ diff --git a/images/iot-hub-device-twins.png b/images/iot-hub-device-twins.png index 678c2980..7f39c7e5 100644 Binary files a/images/iot-hub-device-twins.png and b/images/iot-hub-device-twins.png differ diff --git a/images/iot-hub-direct-method-request.png b/images/iot-hub-direct-method-request.png index 9e31acb1..afadb672 100644 Binary files a/images/iot-hub-direct-method-request.png and b/images/iot-hub-direct-method-request.png differ diff --git a/images/iot-reference-architecture-fruit-quality.png b/images/iot-reference-architecture-fruit-quality.png new file mode 100644 index 00000000..865f06f8 Binary files /dev/null and b/images/iot-reference-architecture-fruit-quality.png differ diff --git a/images/iot-reference-architecture.png b/images/iot-reference-architecture.png new file mode 100644 index 00000000..5615b63e Binary files /dev/null and b/images/iot-reference-architecture.png differ diff --git a/images/save-telemetry-to-storage-from-functions.png b/images/save-telemetry-to-storage-from-functions.png index 5a9a5b94..f1632a1f 100644 Binary files a/images/save-telemetry-to-storage-from-functions.png and b/images/save-telemetry-to-storage-from-functions.png differ