[![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/) [![Bengali](https://img.shields.io/badge/-Bengali-blue)](README.bn.md) [![English](https://img.shields.io/badge/-English-red)](../README.md) [![Turkish](https://img.shields.io/badge/-Turkish-darkgreen)](README.tr.md) # 物联网(IoT for Beginners) – 课程 Microsoft 的 Azure Cloud 大使很高兴提供关于 IoT 基础的一个 12 个星期、24 课的课程。每一课包括课前测验和课后测验、为了完成课的指示、解答、作业等。我们通过项目式的教学让你一边创建,一边学习,这是一种有效率巩固新技能的方式。 这些项目囊括食物从农场到桌子的过程。这包括农业、物流、制造、零售和消费者——这些都是 IoT 设备的热门行业。 ![课程的路线图;它在 24 课概括简介、农业 交通、处理、零售与烹饪](../sketchnotes/Roadmap.jpg) > Sketchnote by [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/).** > **老师们**,我们为这个课程的用法 [提供了一些意见](../for-teachers.md)。如果你想自己创建课程,那我们也提供了一个[课程模板](../lesson-template/README.md). > **学生们**, 为了自己学习这个课程,请复刻整个项目库,再自己完成练习,从课前知识测验开始,再阅读讲座,然后完成剩余的活动。尝试通过理解课程的内容来完成项目,而不要仅仅把代码答案抄下来;然而,在每个项目课程里,你都能从 /solutions 文件夹访问那些答案代码。另外一个办法是跟朋友成立学习小组,然后一起分析内容。想进一步研究,我们鼓励你查一查 [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn)。 [![宣传片](../images/iot-for-beginners.png)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") > 🎥 点击以上的图片来看这个项目的宣传片! ## 教学法 创建这个课程时,我们选择了两个教育原理:确保它基于项目以及它常常包括知识测验。完成课程后,学生们应该创建了一个植物监测和浇水系统、车辆追踪器、为了追踪和检查食物的智能工厂设置以及声控烹饪定时器,还有学会了物联网的基本技能,包括怎么为设备写代码、连接到云、分析遥测以及在边缘上运行人工智能。 当我们确保内容跟项目有连接,对学生来说,学习的过程会更加有趣,而这将让学生们更容易把概念记住。 此外,课前的一种低风险知识测验将帮学生为学某个题目树立目标,而课后的第二个知识测验确保他把内容记住。我们设计课程的其中一个目的是让它既灵活又有趣,也给学生们完成这个课程或者课程的一个部分的选择。项目一开始会小,但 12 星期的过程中,它就会变得越来越复杂。 每个项目基于在学生们和业余爱好者能把握到的物质硬件。每个项目调查某个项目领域,并提供相关的背景知识。想当个成功的开发者,理解问题的领域是有意义的,所以提供这些背景知识允许学生们在当个 IoT 开发者的景况下思考他们的 IoT 解决方案和新知识。学生们将学到解决方案的理由,便得到最终使用者的赞赏。 ## 硬件 根据你自己的选择、知道或喜欢的编码语言、学习目标等,我们对于项目的 IoT 硬件有两个选择。我们也提供了一个“虚拟硬件”的版本,为无法拿到硬件或者想在买硬件之前学多一点儿东西的人。你能在[硬件页](../hardware.md)找到更多资料与“购物清单”;它也包括来自我们朋友 Seeed Studio 完整套件的链接。 > 💁 找一下我们的[行为守则](../CODE_OF_CONDUCT.md)、 [贡献](../CONTRIBUTING.md)和 [翻译](../TRANSLATIONS.md)的指导方针。 我们欢迎你的建设性反馈! ## 每个课包括: - 涂鸦笔记(sketchnote) - 可选的补充视频 - 课前测验 - 讲座 - 为了基于项目的课,创建项目的逐步指南 - 知识测验 - 挑战 - 补充阅读 - 作业 - 课后测验 > **关于知识测验的注意**: 课前和课后的所有知识测验将在[这个应用中](https://brave-island-0b7c7f50f.azurestaticapps.net),总共有 48 个知识测验,每个有三个问题。课中将有它们的链接,但这个应用也可以在本地运行;按照 `quiz-app` 文件夹中的指示。它们正在逐渐被本地化中。 ## 课程 | | 项目 | 题目 | 学习目标 | 链接 | | :-: | :----------: | :-------------: | ------------------- | :-----------: | | 01 | [入门](../1-getting-started) | 物联网(IoT)简介 | 学会 IoT 的基本原则(例如:传感器和云服务),同时设置你的第一个 IoT 设备| [物联网(IoT)简介](../1-getting-started/lessons/1-introduction-to-iot/README.md) | | 02 | [入门](../1-getting-started) | 深入了解物联网(IoT) | 深入了解 IoT 系统的不同部分,以及微控制器和单板机 | [深入了解物联网(IoT)](../1-getting-started/lessons/2-deeper-dive/README.md) | | 03 | [入门](../1-getting-started) | 用传感器和执行器跟物质世界互相作用 | 学会传感器怎么从物质世界收集数据和执行器怎么发送反馈,同时创建一个夜灯 | [用传感器和执行器跟物质世界互相作用](../1-getting-started/lessons/3-sensors-and-actuators/README.md) | | 04 | [入门](../1-getting-started) | 将你的设备连接到互联网 | 学会怎么把一个 IoT 设备连接到互联网,将夜灯连接到 MQTT 中转站让它发送和收到消息 | [将你的设备连接到互联网](../1-getting-started/lessons/4-connect-internet/README.md) | | 05 | [农场](../2-farm) | 预测植物生长 | 学会怎么用 IoT 设备捕获的温度数据来预测植物生长 | [预测植物生长](../2-farm/lessons/1-predict-plant-growth/README.md) | | 06 | [农场](../2-farm) | 检测土壤水分 | 学会怎么检测土壤水分以及校准土壤湿度传感器 | [检测土壤水分](../2-farm/lessons/2-detect-soil-moisture/README.md) | | 07 | [农场](../2-farm) | 自动植物浇水 | 学会怎么用一个中继和 MQTT 为植物浇水使自动化和计时 | [自动植物浇水](../2-farm/lessons/3-automated-plant-watering/README.md) | | 08 | [农场](../2-farm) | 将你的植物迁移到云端 | 了解云端和云端 IoT 服务与学会怎么把你的植物连接到它,而不是一个公共 MQTT 中转站 | [将你的植物迁移到云端](../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | | 09 | [农场](../2-farm) | 将你的应用程序逻辑迁移到云端 | 学会怎么在云端写能够响应 IoT 消息的应用程序逻辑 | [将你的应用程序逻辑迁移到云端](../2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | | 10 | [农场](../2-farm) | 确保你的植物安全 | 了解 IoT 安全以及学会怎么用密钥和证书来确保你的植物安全 | [确保你的植物安全](../2-farm/lessons/6-keep-your-plant-secure/README.md) | | 11 | [交通](../3-transport) | 位置追踪 | 了解 IoT 设备的 GPS 位置追踪 | [位置追踪](../3-transport/lessons/1-location-tracking/README.md) | | 12 | [交通](../3-transport) | 存储位置数据 | 学会怎么存储 IoT 数据,让你未来能可视化或分析它 | [存储位置数据](../3-transport/lessons/2-store-location-data/README.md) | | 13 | [交通](../3-transport) | 可视化位置数据 | 学会在地图上可视化位置数据以及地图怎么用 2D 来代表 3D 的世界 | [可视化位置数据](../3-transport/lessons/3-visualize-location-data/README.md) | | 14 | [交通](../3-transport) | 地理围栏 | 学会地理围栏是什么以及怎么用它们来通知当供应链的车辆快到目的地时 | [地理围栏](../3-transport/lessons/4-geofences/README.md) | | 15 | [制造业](../4-manufacturing) | 训练水果质量检测器 | 学会怎么在云端上训练一个图片分类器来检测水果质量 | [训练水果质量检测器](../4-manufacturing/lessons/1-train-fruit-detector/README.md) | | 16 | [制造业](../4-manufacturing) | 从 IoT 设备检查水果质量 | 学会怎么从一个 IoT 设备使用你的水果质量检测器 | [从 IoT 设备检查水果质量](../4-manufacturing/lessons/2-check-fruit-from-device/README.md) | | 17 | [制造业](../4-manufacturing) | 在边缘上运行你的水果质量检测器 | 学会怎么在边缘上的 IoT 设备运行你的水果质量检测器 | [在边缘上运行你的水果质量检测器](../4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | | 18 | [制造业](../4-manufacturing) | 从传感器触发水果质量检测 | 学会怎么从传感器触发水果质量检测 | [从传感器触发水果质量检测](../4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | | 19 | [零售](../5-retail) | 训练存货检测器 | 学会用对象检测来训练存货检测器让你在店里数存货 | [训练存货检测器](../5-retail/lessons/1-train-stock-detector/README.md) | | 20 | [零售](../5-retail) | 从 IoT 设备检查存货 | 学会怎么用一个对象检测模型从 IoT 设备检查存货 | [从 IoT 设备检查存货](../5-retail/lessons/2-check-stock-device/README.md) | | 21 | [消费者](../6-consumer) | 用 IoT 设备识别语音 | 学会怎么用 IoT 设备识别语音来创建一个智能计时器 | [用 IoT 设备识别语音](../6-consumer/lessons/1-speech-recognition/README.md) | | 22 | [消费者](../6-consumer) | 理解语言 | 学会怎么理解向 IoT 设备说的语言 | [理解语言](../6-consumer/lessons/2-language-understanding/README.md) | | 23 | [消费者](../6-consumer) | 设置计时器和提供口头反馈 | 学会怎么设置计时器和提供口头反馈当计时器被设置和当它完成的时候 | [设置计时器和提供口头反馈](../6-consumer/lessons/3-spoken-feedback/README.md) | | 24 | [消费者](../6-consumer) | 支持多种语言 | 学会怎么支持多种语言,包括向智能计时器说的还有计时器回应的 | [支持多种语言](../6-consumer/lessons/4-multiple-language-support/README.md) | ## 离线访问 你可以用 [Docsify](https://docsify.js.org/#/) 离线运行这个文档。分叉这个存储库,在本地电脑[安装 Docsify](https://docsify.js.org/#/quickstart),然后在这个存储库的根文件夹中输入 `docsify serve`。网站将在你的本地主机(localhost)上的端口 3000 提供服务:`localhost:3000`。 ### PDF 如果有必要离线访问,你可以为这些内容生成一个 PDF。确保你已[安装了 npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm),再在这个存储库的根文件夹中运行以下的命令: ```sh npm i npm run convert ``` ## 需要帮忙! 想贡献一个翻译?请阅读我们的[翻译指导方针](../TRANSLATIONS.md) 以及在[其中一个翻译 issue](https://github.com/microsoft/IoT-For-Beginners/issues?q=is%3Aissue+is%3Aopen+label%3Atranslation) 添加输入。如果你想帮我们翻译成一个新语言,请提交一个新 issue 用于跟踪。 ## 其它课程 我们的组生成了其它课程!查一下: - [网站开发(Web Dev for Beginners)](https://aka.ms/webdev-beginners) - [机器学习(ML for Beginners)](https://aka.ms/ml-beginners) ## 图片属性 你能在[属性](../attributions.md)找到课程中所有需要的图片属性。