[![GitHub license](https://img.shields.io/github/license/microsoft/IoT-For-Beginners.svg)](https://github.com/microsoft/IoT-For-Beginners/blob/master/LICENSE) [![GitHub contributors](https://img.shields.io/github/contributors/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/graphs/contributors/) [![GitHub issues](https://img.shields.io/github/issues/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/issues/) [![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/pulls/) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![GitHub watchers](https://img.shields.io/github/watchers/microsoft/IoT-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/IoT-For-Beginners/watchers/) [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/network/) [![GitHub stars](https://img.shields.io/github/stars/microsoft/IoT-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/) ### 加入 Azure AI Foundry 社区 [![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4) 按照以下步骤开始使用这些资源: 1. **Fork 仓库**:点击 [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) 2. **克隆仓库**:`git clone https://github.com/microsoft/IoT-For-Beginners.git` 3. [**加入 Azure AI Foundry Discord,与专家和开发者交流**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 多语言支持 #### 通过 GitHub Action 支持(自动化且实时更新) [阿拉伯语](../ar/README.md) | [孟加拉语](../bn/README.md) | [保加利亚语](../bg/README.md) | [缅甸语](../my/README.md) | [简体中文](./README.md) | [繁体中文(香港)](../hk/README.md) | [繁体中文(澳门)](../mo/README.md) | [繁体中文(台湾)](../tw/README.md) | [克罗地亚语](../hr/README.md) | [捷克语](../cs/README.md) | [丹麦语](../da/README.md) | [荷兰语](../nl/README.md) | [芬兰语](../fi/README.md) | [法语](../fr/README.md) | [德语](../de/README.md) | [希腊语](../el/README.md) | [希伯来语](../he/README.md) | [印地语](../hi/README.md) | [匈牙利语](../hu/README.md) | [印尼语](../id/README.md) | [意大利语](../it/README.md) | [日语](../ja/README.md) | [韩语](../ko/README.md) | [马来语](../ms/README.md) | [马拉地语](../mr/README.md) | [尼泊尔语](../ne/README.md) | [挪威语](../no/README.md) | [波斯语](../fa/README.md) | [波兰语](../pl/README.md) | [葡萄牙语(巴西)](../br/README.md) | [葡萄牙语(葡萄牙)](../pt/README.md) | [旁遮普语](../pa/README.md) | [罗马尼亚语](../ro/README.md) | [俄语](../ru/README.md) | [塞尔维亚语(西里尔字母)](../sr/README.md) | [斯洛伐克语](../sk/README.md) | [斯洛文尼亚语](../sl/README.md) | [西班牙语](../es/README.md) | [斯瓦希里语](../sw/README.md) | [瑞典语](../sv/README.md) | [他加禄语](../tl/README.md) | [泰语](../th/README.md) | [土耳其语](../tr/README.md) | [乌克兰语](../uk/README.md) | [乌尔都语](../ur/README.md) | [越南语](../vi/README.md) # IoT 初学者课程 微软 Azure 云倡导团队很高兴为大家提供一个为期 12 周、共 24 节课的 IoT 基础课程。每节课都包含课前和课后测验、完成课程的书面指导、解决方案、作业等内容。我们的项目式教学法让你在实践中学习,这是一种被证明能让新技能更牢固掌握的方法。 这些项目涵盖了从农场到餐桌的食物旅程。这包括农业、物流、制造、零售和消费者——所有这些都是 IoT 设备的热门行业领域。 ![课程路线图,展示了涵盖介绍、农业、运输、加工、零售和烹饪的 24 节课](../../translated_images/Roadmap.bb1dec285dda0eda691788b95ddfc96d31d76bb7649e3f04a135e4ad395f323e.zh.jpg) > 由 [Nitya Narasimhan](https://github.com/nitya) 绘制的草图笔记。点击图片查看更大版本。 **特别感谢我们的作者 [Jen Fox](https://github.com/jenfoxbot)、[Jen Looper](https://github.com/jlooper)、[Jim Bennett](https://github.com/jimbobbennett) 和我们的草图笔记艺术家 [Nitya Narasimhan](https://github.com/nitya)。** **同时感谢我们的 [Microsoft Learn 学生大使团队](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn),他们审阅并翻译了本课程——[Aditya Garg](https://github.com/AdityaGarg00)、[Anurag Sharma](https://github.com/Anurag-0-1-A)、[Arpita Das](https://github.com/Arpiiitaaa)、[Aryan Jain](https://www.linkedin.com/in/aryan-jain-47a4a1145/)、[Bhavesh Suneja](https://github.com/EliteWarrior315)、[Faith Hunja](https://faithhunja.github.io/)、[Lateefah Bello](https://www.linkedin.com/in/lateefah-bello/)、[Manvi Jha](https://github.com/Severus-Matthew)、[Mireille Tan](https://www.linkedin.com/in/mireille-tan-a4834819a/)、[Mohammad Iftekher (Iftu) Ebne Jalal](https://github.com/Iftu119)、[Mohammad Zulfikar](https://github.com/mohzulfikar)、[Priyanshu Srivastav](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba)、[Thanmai Gowducheruvu](https://github.com/innovation-platform) 和 [Zina Kamel](https://www.linkedin.com/in/zina-kamel/)。** 认识我们的团队! [![宣传视频](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **Gif 作者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) > 🎥 点击上方图片观看项目相关视频! > **教师们**,我们提供了一些[建议](for-teachers.md),帮助您使用本课程。如果您想创建自己的课程,我们还提供了[课程模板](lesson-template/README.md)。 > **[学生们](https://aka.ms/student-page)**,如果您想自行使用本课程,请 fork 整个仓库并独立完成练习,从课前测验开始,然后阅读课程内容并完成其他活动。尝试通过理解课程内容来创建项目,而不是直接复制解决方案代码;不过,解决方案代码可以在每个项目课程的 /solutions 文件夹中找到。另一个建议是与朋友组成学习小组,共同学习内容。进一步学习建议访问 [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn)。 观看本课程的视频概述,请查看以下视频: [![宣传视频](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "宣传视频") > 🎥 点击上方图片观看项目相关视频! ## 教学法 在设计本课程时,我们选择了两个教学原则:确保课程以项目为基础,并包含频繁的测验。在本系列课程结束时,学生将完成一个植物监测和浇水系统、一个车辆追踪器、一个智能工厂设置(用于追踪和检查食品)以及一个语音控制的烹饪计时器,并学习 IoT 的基础知识,包括如何编写设备代码、连接云端、分析遥测数据以及在边缘运行 AI。 通过确保内容与项目相结合,学习过程变得更加有趣,学生对概念的记忆也会得到增强。 此外,课前的低风险测验可以让学生明确学习目标,而课后的测验则进一步巩固记忆。本课程设计灵活有趣,可以整体学习,也可以部分学习。项目从简单开始,到 12 周课程结束时逐渐变得复杂。 每个项目都基于学生和爱好者可以获得的真实硬件。每个项目都深入到特定的项目领域,提供相关的背景知识。成为一名成功的开发者需要了解您正在解决问题的领域,提供这些背景知识可以让学生在解决 IoT 问题时将所学内容与现实世界的问题联系起来。学生不仅学习如何构建解决方案,还能理解其背后的原因,并对最终用户有更深的认识。 ## 硬件 根据个人偏好、编程语言知识或偏好、学习目标和可用性,我们提供了两种 IoT 硬件选择用于项目。此外,对于没有硬件或想在购买前多了解的用户,我们还提供了“虚拟硬件”版本。您可以在[硬件页面](./hardware.md)上阅读更多内容,并找到“购物清单”,包括从 Seeed Studio 购买完整套件的链接。 > 💁 查看我们的 [行为准则](CODE_OF_CONDUCT.md)、[贡献指南](CONTRIBUTING.md) 和 [翻译指南](TRANSLATIONS.md)。我们欢迎您的建设性反馈! ## 每节课包括: - 草图笔记 - 可选的补充视频 - 课前热身测验 - 书面课程内容 - 对于基于项目的课程,提供逐步构建项目的指南 - 知识检查 - 挑战任务 - 补充阅读材料 - 作业 - [课后测验](https://ff-quizzes.netlify.app/en/) > **关于测验的说明**:所有测验都存放在 quiz-app 文件夹中,总共有 48 个测验,每个测验包含三个问题。测验在课程中有链接,但测验应用程序可以在本地运行或部署到 Azure;请按照 `quiz-app` 文件夹中的说明操作。测验正在逐步进行本地化。 ## 课程 | | 项目名称 | 教授的概念 | 学习目标 | 相关课程 | | :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | | 01 | [入门](./1-getting-started/README.md) | 物联网简介 | 学习物联网的基本原理以及物联网解决方案的基本构建模块,例如传感器和云服务,同时设置您的第一个物联网设备 | [物联网简介](./1-getting-started/lessons/1-introduction-to-iot/README.md) | | 02 | [入门](./1-getting-started/README.md) | 深入了解物联网 | 进一步了解物联网系统的组成部分,以及微控制器和单板计算机 | [深入了解物联网](./1-getting-started/lessons/2-deeper-dive/README.md) | | 03 | [入门](./1-getting-started/README.md) | 使用传感器和执行器与物理世界交互 | 学习如何使用传感器从物理世界收集数据,以及使用执行器发送反馈,同时构建一个夜灯 | [使用传感器和执行器与物理世界交互](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | | 04 | [入门](./1-getting-started/README.md) | 将设备连接到互联网 | 学习如何将物联网设备连接到互联网以发送和接收消息,通过将您的夜灯连接到MQTT代理 | [将设备连接到互联网](./1-getting-started/lessons/4-connect-internet/README.md) | | 05 | [农场](./2-farm/README.md) | 预测植物生长 | 学习如何使用物联网设备捕获的温度数据预测植物生长 | [预测植物生长](./2-farm/lessons/1-predict-plant-growth/README.md) | | 06 | [农场](./2-farm/README.md) | 检测土壤湿度 | 学习如何检测土壤湿度并校准土壤湿度传感器 | [检测土壤湿度](./2-farm/lessons/2-detect-soil-moisture/README.md) | | 07 | [农场](./2-farm/README.md) | 自动植物浇水 | 学习如何使用继电器和MQTT实现自动化和定时浇水 | [自动植物浇水](./2-farm/lessons/3-automated-plant-watering/README.md) | | 08 | [农场](./2-farm/README.md) | 将植物迁移到云端 | 学习云和云托管的物联网服务,以及如何将您的植物连接到这些服务,而不是公共MQTT代理 | [将植物迁移到云端](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | | 09 | [农场](./2-farm/README.md) | 将应用逻辑迁移到云端 | 学习如何在云端编写响应物联网消息的应用逻辑 | [将应用逻辑迁移到云端](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | | 10 | [农场](./2-farm/README.md) | 保护植物安全 | 学习物联网安全性以及如何使用密钥和证书保护您的植物 | [保护植物安全](./2-farm/lessons/6-keep-your-plant-secure/README.md) | | 11 | [运输](./3-transport/README.md) | 位置追踪 | 学习物联网设备的GPS位置追踪 | [位置追踪](./3-transport/lessons/1-location-tracking/README.md) | | 12 | [运输](./3-transport/README.md) | 存储位置数据 | 学习如何存储物联网数据以便后续可视化或分析 | [存储位置数据](./3-transport/lessons/2-store-location-data/README.md) | | 13 | [运输](./3-transport/README.md) | 可视化位置数据 | 学习如何在地图上可视化位置数据,以及地图如何将真实的三维世界表示为二维 | [可视化位置数据](./3-transport/lessons/3-visualize-location-data/README.md) | | 14 | [运输](./3-transport/README.md) | 地理围栏 | 学习地理围栏,以及如何在供应链中的车辆接近目的地时发出警报 | [地理围栏](./3-transport/lessons/4-geofences/README.md) | | 15 | [制造业](./4-manufacturing/README.md) | 训练水果质量检测器 | 学习如何在云端训练图像分类器以检测水果质量 | [训练水果质量检测器](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | | 16 | [制造业](./4-manufacturing/README.md) | 从物联网设备检查水果质量 | 学习如何从物联网设备使用水果质量检测器 | [从物联网设备检查水果质量](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | | 17 | [制造业](./4-manufacturing/README.md) | 在边缘运行水果检测器 | 学习如何在边缘的物联网设备上运行水果检测器 | [在边缘运行水果检测器](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | | 18 | [制造业](./4-manufacturing/README.md) | 从传感器触发水果质量检测 | 学习如何从传感器触发水果质量检测 | [从传感器触发水果质量检测](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | | 19 | [零售](./5-retail/README.md) | 训练库存检测器 | 学习如何使用对象检测训练库存检测器以统计商店库存 | [训练库存检测器](./5-retail/lessons/1-train-stock-detector/README.md) | | 20 | [零售](./5-retail/README.md) | 从物联网设备检查库存 | 学习如何使用对象检测模型从物联网设备检查库存 | [从物联网设备检查库存](./5-retail/lessons/2-check-stock-device/README.md) | | 21 | [消费者](./6-consumer/README.md) | 使用物联网设备识别语音 | 学习如何从物联网设备识别语音以构建智能计时器 | [使用物联网设备识别语音](./6-consumer/lessons/1-speech-recognition/README.md) | | 22 | [消费者](./6-consumer/README.md) | 理解语言 | 学习如何理解对物联网设备说出的句子 | [理解语言](./6-consumer/lessons/2-language-understanding/README.md) | | 23 | [消费者](./6-consumer/README.md) | 设置计时器并提供语音反馈 | 学习如何在物联网设备上设置计时器,并提供计时器设置和完成时的语音反馈 | [设置计时器并提供语音反馈](./6-consumer/lessons/3-spoken-feedback/README.md) | | 24 | [消费者](./6-consumer/README.md) | 支持多语言 | 学习如何支持多语言,包括对设备的语音输入和设备的响应 | [支持多语言](./6-consumer/lessons/4-multiple-language-support/README.md) | ## 离线访问 您可以使用 [Docsify](https://docsify.js.org/#/) 离线运行此文档。Fork 此仓库,在本地机器上[安装 Docsify](https://docsify.js.org/#/quickstart),然后在此仓库的根文件夹中输入 `docsify serve`。网站将在本地的端口 3000 上运行:`localhost:3000`。 ## 测验 感谢社区提供的互动测验,测试您对每一章的知识。您可以在[这里](https://ff-quizzes.netlify.app/en/)测试您的知识。 ### PDF 如果需要,您可以生成此内容的 PDF 以供离线访问。为此,请确保您已[安装 npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm),然后在此仓库的根文件夹中运行以下命令: ```sh npm i npm run convert ``` ### 幻灯片 部分课程的幻灯片可以在 [slides](../../slides) 文件夹中找到。 ## 其他课程 我们的团队还制作了其他课程!查看以下内容: - [AI Agents for Beginners](https://aka.ms/ai-agents-beginners) - [MCP for Beginners](https://aka.ms/mcp-for-beginners) - [Generative AI for Beginners](https://aka.ms/genai-beginners) - [Generative AI for Beginners .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet) - [Generative AI with JavaScript](https://github.com/microsoft/generative-ai-with-javascript) - [Generative AI with Java](https://github.com/microsoft/Generative-AI-for-beginners-java) - [AI for Beginners](https://aka.ms/ai-beginners) - [Data Science for Beginners](https://aka.ms/datascience-beginners) - [ML for Beginners](https://aka.ms/ml-beginners) - [Cybersecurity for Beginners](https://github.com/microsoft/Security-101) - [Web Dev for Beginners](https://aka.ms/webdev-beginners) - [IoT for Beginners](https://aka.ms/iot-beginners) - [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners) - [Mastering GitHub Copilot for Agentic use](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming) - [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers) - [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures) ## 图片归属 您可以在 [Attributions](./attributions.md) 文件中找到本课程中使用的图片的归属信息。 --- **免责声明**: 本文档使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)进行翻译。尽管我们努力确保准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。因使用本翻译而引起的任何误解或误读,我们概不负责。