[](https://github.com/microsoft/IoT-For-Beginners/blob/master/LICENSE)
[](https://GitHub.com/microsoft/IoT-For-Beginners/graphs/contributors/)
[](https://GitHub.com/microsoft/IoT-For-Beginners/issues/)
[](https://GitHub.com/microsoft/IoT-For-Beginners/pulls/)
[](http://makeapullrequest.com)
[](https://GitHub.com/microsoft/IoT-For-Beginners/watchers/)
[](https://GitHub.com/microsoft/IoT-For-Beginners/network/)
[](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/)
### 加入 Azure AI Foundry 社区
如果你遇到困难或者有关于构建 AI 应用的任何问题,欢迎加入学习者和经验丰富的开发者们的 MCP 讨论。这里是一个支持性的社区,欢迎提问并自由分享知识。
[](https://discord.gg/nTYy5BXMWG)
如果你在构建过程中有产品反馈或遇到错误,请访问:
[](https://aka.ms/foundry/forum)
按照以下步骤开始使用这些资源:
1. 派生仓库:点击 [](https://GitHub.com/microsoft/IoT-For-Beginners/fork)
2. 克隆仓库:`git clone https://github.com/microsoft/IoT-For-Beginners.git`
3. [**加入 Microsoft Foundry Discord,认识专家和其他开发者**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 多语言支持
#### 通过 GitHub Action 支持(自动且始终保持最新)
[阿拉伯语](../ar/README.md) | [孟加拉语](../bn/README.md) | [保加利亚语](../bg/README.md) | [缅甸语 (Myanmar)](../my/README.md) | [中文(简体)](./README.md) | [中文(繁体,香港)](../zh-HK/README.md) | [中文(繁体,澳门)](../zh-MO/README.md) | [中文(繁体,台湾)](../zh-TW/README.md) | [克罗地亚语](../hr/README.md) | [捷克语](../cs/README.md) | [丹麦语](../da/README.md) | [荷兰语](../nl/README.md) | [爱沙尼亚语](../et/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) | [卡纳达语](../kn/README.md) | [高棉语](../km/README.md) | [朝鲜语](../ko/README.md) | [立陶宛语](../lt/README.md) | [马来语](../ms/README.md) | [马拉雅拉姆语](../ml/README.md) | [马拉地语](../mr/README.md) | [尼泊尔语](../ne/README.md) | [尼日利亚皮钦语](../pcm/README.md) | [挪威语](../no/README.md) | [波斯语(法尔西语)](../fa/README.md) | [波兰语](../pl/README.md) | [葡萄牙语(巴西)](../pt-BR/README.md) | [葡萄牙语(葡萄牙)](../pt-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) | [泰米尔语](../ta/README.md) | [泰卢固语](../te/README.md) | [泰语](../th/README.md) | [土耳其语](../tr/README.md) | [乌克兰语](../uk/README.md) | [乌尔都语](../ur/README.md) | [越南语](../vi/README.md)
> **更喜欢本地克隆?**
>
> 本仓库包含 50 多种语言的翻译,显著增加了下载大小。若想克隆但不包含翻译内容,请使用稀疏检出功能:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git
> cd IoT-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git
> cd IoT-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> 这样你将获得完成课程所需的所有内容,并大幅提升下载速度。
# 初学者物联网课程大纲
微软 Azure 云推广团队高兴地提供一个为期 12 周、共 24 课的关于物联网基础知识的课程。每节课包括课前和课后小测、书面指导以完成课程、解决方案、作业等内容。我们的项目驱动教学法让你在动手构建的过程中学习,这是一种经过验证的技能“牢固掌握”方法。
这些项目涵盖了从农场到餐桌的食物流通过程,包括农业、物流、制造、零售和消费者——这些都是物联网设备广泛应用的热门行业。

> 绘图由 [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/)。**
认识团队!
[](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://youtube.com/watch?v=bccEMm8gRuc "宣传视频")
> 🎥 点击上方图片观看项目介绍视频!
## 教学法
我们设计本课程时选择了两个教学原则:确保课程项目驱动和包含频繁的小测。学习完成本系列课程后,学生将构建一个植物监测和灌溉系统、车辆跟踪器、一个智能工厂用于追踪和检查食品,以及一个语音控制的烹饪定时器,并学习物联网基础知识,包括如何编写设备代码、连接云服务、分析遥测数据以及在边缘运行人工智能。
通过确保内容与项目紧密结合,学生学习过程更加投入,概念掌握更牢固。
此外,课堂前的小测设定学习者的学习目标,课堂后的小测则帮助进一步巩固知识。此课程设计灵活有趣,可整套学习,也可部分学习。项目从简单渐进到复杂,贯穿整个 12 周周期。
每个项目基于学生和爱好者能够获得的真实硬件。每个项目都会探讨特定领域,提供相关背景知识。成为成功的开发者有助于理解所解决问题的领域背景,提供这些背景让学生能在实际物联网问题的上下文中思考解决方案和学习内容。学生理解他们构建解决方案的“原因”,并体会到最终用户的需求。
## 硬件
我们根据个人偏好、编程语言知识或偏好、学习目标及可用情况,为项目提供了两种物联网硬件选择。我们还为那些无法访问硬件,或想在购买前深入了解的人提供了“虚拟硬件”版本。您可以在[硬件页面](./hardware.md)了解更多信息,并找到“购物清单”,其中包括我们在 Seeed Studio 的朋友提供的完整套件购买链接。
> 💁 查阅我们的[行为准则](CODE_OF_CONDUCT.md)、[贡献指南](CONTRIBUTING.md)和[翻译指南](..)。欢迎您提出建设性的反馈!
>
> 🔧 遇到问题?请查看我们的[故障排除指南](TROUBLESHOOTING.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) 文件夹。
## 其他课程
我们的团队制作了其他课程!请查看:
### LangChain
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 生成式 AI 系列
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 核心学习
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot 系列
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
## 图片归属说明
您可以在[归属说明](./attributions.md)中找到本课程中所用图片的全部归属信息(如适用)。
---
**免责声明**:
本文件是使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)翻译的。尽管我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言版本的文件应被视为权威来源。对于关键信息,建议使用专业人工翻译。我们不对因使用本翻译而产生的任何误解或错误理解承担责任。