# 物联网简介 ![本课程的手绘笔记概览](../../../../../translated_images/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.zh.jpg) > 手绘笔记由 [Nitya Narasimhan](https://github.com/nitya) 提供。点击图片查看大图。 本课程是 [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn) 的 [Hello IoT 系列](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-) 的一部分。课程分为两部分:一个小时的课程和一个小时的答疑环节,深入探讨课程内容并回答问题。 [![课程 1:物联网简介](https://img.youtube.com/vi/bVFfcYh6UBw/0.jpg)](https://youtu.be/bVFfcYh6UBw) [![课程 1:物联网简介 - 答疑环节](https://img.youtube.com/vi/YI772q5v3yI/0.jpg)](https://youtu.be/YI772q5v3yI) > 🎥 点击上方图片观看视频 ## 课前测验 [课前测验](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/1) ## 简介 本课程涵盖了物联网的一些基础知识,并帮助你开始设置硬件。 在本课程中,我们将讨论以下内容: * [什么是“物联网”?](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [物联网设备](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [设置你的设备](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [物联网的应用](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [你身边可能存在的物联网设备示例](../../../../../1-getting-started/lessons/1-introduction-to-iot) ## 什么是“物联网”? “物联网”这一术语由 [Kevin Ashton](https://wikipedia.org/wiki/Kevin_Ashton) 于 1999 年提出,用来描述通过传感器将互联网与物理世界连接起来。从那时起,这个术语被用来描述任何与周围物理世界交互的设备,无论是通过传感器收集数据,还是通过执行器(例如打开开关或点亮 LED 的设备)提供现实世界的交互,这些设备通常连接到其他设备或互联网。 > **传感器** 从世界中收集信息,例如测量速度、温度或位置。 > > **执行器** 将电信号转换为现实世界的交互,例如触发开关、点亮灯光、发出声音或向其他硬件发送控制信号,例如打开电源插座。 物联网不仅仅是设备,它还包括基于云的服务,这些服务可以处理传感器数据或向连接到物联网设备的执行器发送请求。它还包括不具备或不需要互联网连接的设备,通常称为边缘设备。这些设备可以自行处理和响应传感器数据,通常使用在云中训练的 AI 模型。 物联网是一个快速发展的技术领域。据估计,到 2020 年底,已有 300 亿物联网设备被部署并连接到互联网。展望未来,据估计到 2025 年,物联网设备将收集近 80 ZB(zettabytes,即 80 万亿 GB)的数据。这是一个庞大的数据量! ![一张显示活跃物联网设备数量随时间增长的图表,从 2015 年的不到 50 亿增长到 2025 年的超过 300 亿](../../../../../images/connected-iot-devices.svg) ✅ 做一些研究:物联网设备生成的数据中有多少被实际使用了?有多少被浪费了?为什么会有这么多数据被忽略? 这些数据是物联网成功的关键。要成为一名成功的物联网开发者,你需要了解需要收集的数据、如何收集数据、如何基于数据做出决策,以及在需要时如何利用这些决策与物理世界交互。 ## 物联网设备 物联网中的 **T** 代表 **Things**(设备)——与周围物理世界交互的设备,无论是通过传感器收集数据,还是通过执行器提供现实世界的交互。 用于生产或商业用途的设备,例如消费者健身追踪器或工业机器控制器,通常是定制制造的。这些设备使用定制电路板,甚至可能使用定制处理器,以满足特定任务的需求,无论是小到可以戴在手腕上,还是坚固到可以在高温、高压力或高振动的工厂环境中工作。 作为一名学习物联网或创建设备原型的开发者,你需要从开发套件开始。这些是为开发者设计的通用物联网设备,通常具有生产设备所没有的功能,例如一组外部引脚,用于连接传感器或执行器,支持调试的硬件,或在大规模制造时会增加不必要成本的额外资源。 这些开发套件通常分为两类——微控制器和单板计算机。这里将介绍这两类设备,下一课中会详细讲解。 > 💁 你的手机也可以被认为是一种通用物联网设备,内置了传感器和执行器,不同的应用程序以不同的方式使用这些传感器和执行器,并与不同的云服务交互。你甚至可以找到一些使用手机应用程序作为物联网设备的教程。 ### 微控制器 微控制器(也称为 MCU,Microcontroller Unit 的缩写)是一种小型计算机,由以下部分组成: 🧠 一个或多个中央处理单元(CPU)——微控制器的“大脑”,运行你的程序 💾 内存(RAM 和程序内存)——存储你的程序、数据和变量 🔌 可编程输入/输出(I/O)连接——与外部设备(连接的传感器和执行器)通信 微控制器通常是低成本的计算设备,用于定制硬件的微控制器平均价格约为 0.50 美元,有些设备甚至低至 0.03 美元。开发套件的起价约为 4 美元,随着功能的增加成本也会增加。[Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) 是 [Seeed Studios](https://www.seeedstudio.com) 的一个微控制器开发套件,配备传感器、执行器、WiFi 和屏幕,价格约为 30 美元。 ![Wio Terminal](../../../../../translated_images/wio-terminal.b8299ee16587db9aa9e05fabf9721bccd9eb8fb541b7c1a8267241282d81b603.zh.png) > 💁 在网上搜索微控制器时,请注意搜索术语 **MCU**,因为这可能会返回大量关于“漫威电影宇宙”的结果,而不是微控制器。 微控制器设计用于执行有限数量的非常具体的任务,而不是像 PC 或 Mac 那样的通用计算机。除非是非常特殊的场景,你无法连接显示器、键盘和鼠标来执行通用任务。 微控制器开发套件通常配备额外的传感器和执行器。大多数开发板会有一个或多个可编程的 LED,以及其他设备,例如标准插头,用于通过各种制造商的生态系统添加更多传感器或执行器,或者内置传感器(通常是最受欢迎的传感器,例如温度传感器)。一些微控制器内置无线连接功能,例如蓝牙或 WiFi,或者在开发板上添加额外的微控制器以提供这些连接功能。 > 💁 微控制器通常使用 C/C++ 编程。 ### 单板计算机 单板计算机是一种小型计算设备,所有计算机的组成部分都集成在一个小型电路板上。这些设备的规格接近台式机或笔记本电脑 PC 或 Mac,运行完整的操作系统,但体积更小,功耗更低,价格也更便宜。 ![Raspberry Pi 4](../../../../../translated_images/raspberry-pi-4.fd4590d308c3d456db1327e86b395ddcd735513267aafd4879ea2785f7792eac.zh.jpg) Raspberry Pi 是最受欢迎的单板计算机之一。 与微控制器类似,单板计算机具有 CPU、内存和输入/输出引脚,但它们还具有额外的功能,例如图形芯片,可以连接显示器、音频输出和 USB 端口,用于连接键盘、鼠标和其他标准 USB 设备(如摄像头或外部存储)。程序和操作系统存储在 SD 卡或硬盘上,而不是内置在开发板上的内存芯片中。 > 🎓 你可以将单板计算机看作是你正在使用的 PC 或 Mac 的一个更小、更便宜的版本,并额外配备了 GPIO(通用输入/输出)引脚,用于与传感器和执行器交互。 单板计算机是功能齐全的计算机,因此可以使用任何编程语言进行编程。物联网设备通常使用 Python 编程。 ### 后续课程的硬件选择 后续课程包括使用物联网设备与物理世界交互并与云通信的作业。每节课支持三种设备选择——Arduino(使用 Seeed Studios 的 Wio Terminal),或单板计算机(物理设备 Raspberry Pi 4 或运行在 PC 或 Mac 上的虚拟单板计算机)。 你可以在 [硬件指南](../../../hardware.md) 中阅读完成所有作业所需的硬件。 > 💁 你不需要购买任何物联网硬件即可完成作业,你可以使用虚拟单板计算机完成所有任务。 选择哪种硬件取决于你家里或学校的可用设备,以及你熟悉或计划学习的编程语言。两种硬件选项将使用相同的传感器生态系统,因此如果你选择了一种路径,之后可以切换到另一种路径,而无需更换大部分设备。虚拟单板计算机相当于学习 Raspberry Pi,代码大部分可以转移到实际的 Pi 上,如果你最终购买了设备和传感器。 ### Arduino 开发套件 如果你对学习微控制器开发感兴趣,可以使用 Arduino 设备完成作业。你需要对 C/C++ 编程有基本了解,因为课程只会教授与 Arduino 框架、传感器和执行器以及与云交互的库相关的代码。 作业将使用 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn) 和 [PlatformIO 微控制器开发扩展](https://platformio.org)。如果你熟悉 Arduino IDE,也可以使用该工具,但课程不会提供相关说明。 ### 单板计算机开发套件 如果你对使用单板计算机进行物联网开发感兴趣,可以使用 Raspberry Pi 或运行在 PC 或 Mac 上的虚拟设备完成作业。 你需要对 Python 编程有基本了解,因为课程只会教授与传感器和执行器以及与云交互的库相关的代码。 > 💁 如果你想学习 Python 编程,可以查看以下两个视频系列: > > * [Python 初学者教程](https://channel9.msdn.com/Series/Intro-to-Python-Development?WT.mc_id=academic-17441-jabenn) > * [Python 进阶教程](https://channel9.msdn.com/Series/More-Python-for-Beginners?WT.mc_id=academic-7372-jabenn) 作业将使用 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)。 如果你使用 Raspberry Pi,可以选择运行完整桌面版的 Raspberry Pi OS,并直接在 Pi 上使用 [Raspberry Pi OS 版 VS Code](https://code.visualstudio.com/docs/setup/raspberry-pi?WT.mc_id=academic-17441-jabenn) 进行编码,或者将 Pi 作为无头设备运行,并通过 PC 或 Mac 使用 VS Code 的 [Remote SSH 扩展](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn) 连接到 Pi,像直接在 Pi 上编码一样编辑、调试和运行代码。 如果你选择虚拟设备选项,你将在自己的电脑上直接编码。你将使用一个工具来模拟硬件,提供你定义的传感器值,并在屏幕上显示执行器的结果。 ## 设置你的设备 在开始编程你的物联网设备之前,你需要进行一些简单的设置。根据你使用的设备,按照相关说明进行操作。 💁 如果你还没有设备,请参考[硬件指南](../../../hardware.md),帮助你决定将使用哪种设备,以及需要购买哪些额外的硬件。你不需要购买硬件,因为所有项目都可以在虚拟硬件上运行。 这些说明包括了硬件或工具制造商提供的第三方网站链接。这是为了确保您始终使用最新的工具和硬件说明。 按照相关指南设置您的设备,并完成一个“Hello World”项目。这是本入门部分四节课中创建物联网夜灯的第一步。 * [Arduino - Wio Terminal](wio-terminal.md) * [单板计算机 - 树莓派](pi.md) * [单板计算机 - 虚拟设备](virtual-device.md) ✅ 您将在 Arduino 和单板计算机上使用 VS Code。如果您之前没有使用过,可以在 [VS Code 网站](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn)上了解更多信息。 ## 物联网的应用 物联网涵盖了广泛的使用场景,主要分为以下几类: * 消费级物联网 * 商业级物联网 * 工业级物联网 * 基础设施物联网 ✅ 做一些研究:对于以下描述的每个领域,找到一个文中未提到的具体例子。 ### 消费级物联网 消费级物联网指的是消费者会购买并在家中使用的物联网设备。这些设备中有些非常实用,比如智能音箱、智能供暖系统和扫地机器人。也有一些设备的实用性值得商榷,比如语音控制的水龙头——当水声太大时,语音控制可能无法识别,导致无法关闭水龙头。 消费级物联网设备让人们在日常生活中能够实现更多,尤其是全球约10亿有残疾的人群。例如,扫地机器人可以帮助行动不便的人保持地板清洁;语音控制的烤箱让视力或运动能力有限的人仅通过语音就能加热烤箱;健康监测设备可以让患者更频繁、更详细地监控自己的慢性病状况。这些设备已经变得如此普及,甚至连小孩子都在日常生活中使用它们。例如,在 COVID 疫情期间进行远程学习的学生会用智能家居设备设置计时器来跟踪作业时间,或者设置闹钟提醒即将开始的课程。 ✅ 您身上或家中有哪些消费级物联网设备? ### 商业级物联网 商业级物联网涵盖了物联网在工作场所的应用。在办公室环境中,可能会有占用传感器和运动检测器,用于管理照明和供暖,仅在需要时开启灯光和供暖,从而降低成本和碳排放。在工厂中,物联网设备可以监控安全隐患,例如工人未佩戴安全帽或噪音达到危险水平。在零售业中,物联网设备可以监测冷藏设备的温度,如果冰箱或冷柜的温度超出规定范围,会提醒店主;或者监控货架上的商品,指引员工补充已售出的商品。运输行业越来越依赖物联网来监控车辆位置、记录道路行驶里程以便收费、跟踪驾驶员的工作时间和休息合规性,或者在车辆接近仓库时通知工作人员做好装卸准备。 ✅ 您的学校或工作场所有哪些商业级物联网设备? ### 工业级物联网 (IIoT) 工业级物联网(IIoT)是指在大规模机械控制和管理中使用物联网设备。这涵盖了从工厂到数字农业的广泛应用场景。 工厂以多种方式使用物联网设备。通过多个传感器监控机械设备的温度、振动和转速等数据。这些数据可以实时监控,当设备超出某些容差范围时(例如过热),可以自动停止运行。这些数据还可以长期收集并分析,用于预测性维护。AI 模型会分析设备故障前的数据,从而预测其他潜在故障。 数字农业对于养活不断增长的人口至关重要,尤其是全球约20亿人依赖于[自给农业](https://wikipedia.org/wiki/Subsistence_agriculture)的5亿个家庭。数字农业的成本可以从几美元的传感器到大型商业系统不等。农民可以通过监测温度并使用[生长度日](https://wikipedia.org/wiki/Growing_degree-day)预测作物的收获时间。他们还可以将土壤湿度监测与自动灌溉系统连接起来,确保作物获得所需的水分,同时避免浪费水资源。农民甚至可以进一步利用无人机、卫星数据和 AI 来监测大面积农田的作物生长、病害和土壤质量。 ✅ 还有哪些物联网设备可以帮助农民? ### 基础设施物联网 基础设施物联网用于监控和控制人们日常使用的本地和全球基础设施。 [智慧城市](https://wikipedia.org/wiki/Smart_city)是利用物联网设备收集城市数据并改善城市运行的城市。这些城市通常由地方政府、学术界和本地企业合作管理,监控和管理从交通到停车和污染等各种事务。例如,在丹麦哥本哈根,当地居民非常关注空气污染,因此城市会测量空气污染数据,并提供最清洁的骑行和慢跑路线信息。 [智能电网](https://wikipedia.org/wiki/Smart_grid)通过收集家庭级别的用电数据来提供更好的电力需求分析。这些数据可以指导国家层面的决策,例如在哪里建设新的发电站;也可以为个人提供用电量、用电时间的洞察,甚至提供节约成本的建议,例如在夜间为电动车充电。 ✅ 如果您可以在居住地添加物联网设备来监测任何事物,您会选择什么? ## 您周围可能存在的物联网设备示例 您可能会惊讶于周围有多少物联网设备。我正在家中写这篇文章,我家中有以下设备连接到互联网,并具有应用程序控制、语音控制或通过手机向我发送数据的功能: * 多个智能音箱 * 冰箱、洗碗机、烤箱和微波炉 * 太阳能板的电力监测器 * 智能插座 * 视频门铃和安全摄像头 * 带有多个智能房间传感器的智能恒温器 * 车库门开启器 * 家庭娱乐系统和语音控制电视 * 照明设备 * 健身和健康追踪器 所有这些设备都配备了传感器和/或执行器,并与互联网通信。我可以通过手机查看车库门是否打开,并通过智能音箱关闭它。我甚至可以设置定时器,如果晚上车库门仍然打开,它会自动关闭。当门铃响起时,无论我身在何处,我都可以通过手机看到是谁,并通过门铃内置的扬声器和麦克风与他们对话。我可以监测我的血糖、心率和睡眠模式,通过数据模式改善健康状况。我可以通过云端控制灯光,但如果网络连接中断,我可能会坐在黑暗中。 --- ## 🚀 挑战 列出您家中、学校或工作场所中的所有物联网设备——可能比您想象的还要多! ## 课后测验 [课后测验](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/2) ## 复习与自学 阅读有关消费级物联网项目的优缺点。查看新闻网站上的文章,了解物联网项目失败的案例,例如隐私问题、硬件问题或因缺乏连接性导致的问题。 一些示例: * 查看 Twitter 账号 **[Internet of Sh*t](https://twitter.com/internetofshit)** *(含粗俗语言警告)*,了解消费级物联网失败的有趣案例。 * [c|net - 我的 Apple Watch 救了我的命:5 人分享他们的故事](https://www.cnet.com/news/apple-watch-lifesaving-health-features-read-5-peoples-stories/) * [c|net - ADT 技术员承认多年来偷窥客户摄像头画面](https://www.cnet.com/news/adt-home-security-technician-pleads-guilty-to-spying-on-customer-camera-feeds-for-years/) *(触发警告 - 非自愿偷窥)* ## 作业 [调查一个物联网项目](assignment.md) **免责声明**: 本文档使用AI翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。因使用本翻译而导致的任何误解或误读,我们概不负责。