与传感器和执行器互动以感知物理世界 本课概述的草图笔记 草图笔记由 Nitya Narasimhan 绘制。点击图片查看大图。 本课程是作为 Hello IoT 系列 的一部分,在 Microsoft Reactor 教授的。该课程分为两个视频——一个 1 小时的主课,另一个 1 小时的办公室时间,深入探讨课程的部分内容并回答问题。 第 3 课:使用传感器和执行器与物理世界互动 第 3 课:使用传感器和执行器与物理世界互动 - 办公室时间 点击上面的图片观看视频 课前测验 课前测验 引言 本课程介绍了您的 IoT 设备中的两个重要概念——传感器和执行器。您还将亲自动手操作它们,为您的 IoT 项目添加光敏传感器,然后添加一个受光线水平控制的 LED,实际上是在构建一个夜灯。

草图笔记由 Nitya Narasimhan 绘制。点击图片查看大图。
本课程是作为 Hello IoT 系列 的一部分,在 Microsoft Reactor 教授的。该课程分为两个视频——一个 1 小时的主课,另一个 1 小时的办公室时间,深入探讨课程的部分内容并回答问题。
点击上面的图片观看视频
本课程介绍了您的 IoT 设备中的两个重要概念——传感器和执行器。您还将亲自动手操作它们,为您的 IoT 项目添加光敏传感器,然后添加一个受光线水平控制的 LED,实际上是在构建一个夜灯。
在本课程中,我们将涵盖以下内容:
传感器是硬件设备,用于感知物理世界——即它们测量周围的一个或多个属性,并将信息发送给 IoT 设备。传感器覆盖了广泛的设备,因为可以测量许多事物,从自然属性(如空气温度)到物理交互(如运动)。
一些常见的传感器包括:
✅ 做些研究。你的手机有哪些传感器?
所有传感器都有一个共同点——它们将所感知的内容转换成可由 IoT 设备解释的电信号。这种电信号如何被解释取决于传感器以及与 IoT 设备通信所使用的协议。
请按照下面的相关指南添加传感器到您的 IoT 设备:
传感器要么是模拟的,要么是数字的。
一些最基本的传感器是模拟传感器。这些传感器从 IoT 设备接收电压,传感器组件调整这个电压,然后从传感器返回的电压被测量以给出传感器值。
电压是一种衡量电力从一个地方移动到另一个地方的压力的方式,例如从电池的正极到负极。例如,标准 AA 电池是 1.5V(V 是伏特的符号),可以从正极推动电力以 1.5V 的力移动到负极。不同的电气设备需要不同电压才能工作,例如,LED 可以在 2-3V 之间发光,但一个 100W 的灯丝灯泡需要 240V。您可以阅读更多关于电压的内容在维基百科的 电压页面。
其中一个例子是电位计。这是一种你可以旋转两个位置之间的旋钮,传感器测量旋钮的旋转。

IoT 设备将向电位计发送一个电压,例如 5 伏特 (5V)。随着电位计的调整,它改变了从另一侧输出的电压。想象一下你有一个电位计,标记为一个从 0 到 11 的刻度,比如放大器上的音量旋钮。当电位计处于完全关闭位置 (0) 时,则会输出 0V (0 伏特)。当它处于完全打开位置 (11) 时,会输出 5V (5 伏特)。
这是一个简化的描述,您可以阅读更多关于电位计和可变电阻的信息在维基百科的 电位计页面。
传感器输出的电压然后被 IoT 设备读取,设备可以根据此电压做出反应。根据传感器的不同,这个电压可以是一个任意值,也可以映射到一个标准单位。例如,基于 热敏电阻 的模拟温度传感器根据温度改变其电阻。输出电压可以通过代码中的计算转换为开尔文温度,进而转换为 °C 或 °F。
✅ 你觉得如果传感器返回的电压高于发送的电压(例如来自外部电源)会发生什么? ⛔️ 不要实际测试这个。
IoT 设备是数字的——它们不能处理模拟值,只能处理 0 和 1。这意味着模拟传感器值需要转换成数字信号才能被处理。许多 IoT 设备都有模拟到数字转换器 (ADC),可以将模拟输入转换为其值的数字表示。传感器也可以通过连接板与 ADC 一起工作。例如,在使用 Raspberry Pi 的 Seeed Grove 生态系统中,模拟传感器连接到安装在 Pi 上的特定端口的“帽子”上,该帽子连接到 Pi 的 GPIO 引脚,而这个帽子具有 ADC 将电压转换成可以在 Pi 的 GPIO 引脚上发送的数字信号。
想象一下,你有一个连接到使用 3.3V 的 IoT 设备的模拟光敏传感器,它返回 1V 的值。这个 1V 在数字世界里没有意义,所以需要转换。电压将根据设备和传感器的比例转换为模拟值。例如,Seeed Grove 光敏传感器输出值从 0 到 1,023。对于这个在 3.3V 下运行的传感器,1V 输出将是 300。IoT 设备无法处理 300 作为一个模拟值,因此该值将通过 Grove 帽子转换为 0000000100101100,即 300 的二进制表示形式。这将然后由 IoT 设备处理。
✅ 如果你不知道二进制,那么进行少量的研究以了解数字是如何由 0 和 1 表示的。BBC Bitesize 关于二进制的介绍课程是一个很好的起点。
从编程的角度来看,所有这些通常都由随传感器一起提供的库处理,所以你不需要自己担心这种转换。对于 Grove 光敏传感器,你可以使用 Python 库调用 light 属性,或者使用 Arduino 库调用 analogRead 来获取值 300。
数字传感器与模拟传感器类似,使用电压变化检测周围的环境。不同之处在于它们输出数字信号,可以通过仅测量两种状态或通过内置 ADC 来实现。数字传感器变得越来越普遍,以避免在连接板或 IoT 设备本身上使用 ADC。
最简单的数字传感器是一个按钮或开关。这是一个有两个状态(开或关)的传感器。

IoT 设备的引脚,如 GPIO 引脚可以直接测量这个信号作为 0 或 1。如果发送的电压与返回的电压相同,读取的值为 1,否则读取的值为 0。不需要转换信号,它只能是 1 或 0。
电压从来都不是精确的,尤其是在传感器中的组件会有一定电阻的情况下,因此通常会有容差。例如,Raspberry Pi 上的 GPIO 引脚工作在 3.3V,读取高于 1.8V 的返回信号为 1,低于 1.8V 的返回信号为 0。
更高级的数字传感器读取模拟值,然后使用板载 ADC 将其转换为数字信号。例如,数字温度传感器仍然像模拟传感器一样使用热电偶,并仍然测量由于热电偶在当前温度下的电阻变化而引起的电压变化。与依赖设备或连接板将其转换为数字信号不同,传感器内置的 ADC 将值转换并将其作为一系列 0 和 1 发送到 IoT 设备。这些 0 和 1 以与按钮的数字信号相同的方式发送,1 表示全电压,0 表示 0V。

发送数字数据允许传感器变得更加复杂,并发送更详细的数据,甚至加密数据用于安全传感器。一个例子是相机。这是一种捕获图像并将图像作为数字数据发送到 IoT 设备的传感器,通常以压缩格式(如 JPEG)发送,以便 IoT 设备读取。它可以甚至通过捕获图像并逐帧发送整个图像帧或压缩视频流来流式传输视频。
执行器与传感器相反——它们将来自您的 IoT 设备的电信号转换为与物理世界的交互,例如发出光或声音,或驱动电机。
一些常见的执行器包括:
✅ 做些研究。你的手机有哪些执行器?
请按照下面的相关指南添加执行器到您的 IoT 设备,由传感器控制,以构建一个 IoT 夜灯。它将收集来自光敏传感器的光强度,并使用 LED 形式的执行器在检测到的光强度太低时发出光。

像传感器一样,执行器要么是模拟的,要么是数字的。
模拟执行器接受模拟信号并将其转换为某种交互,交互的变化基于提供的电压。
一个例子是调光灯,比如你在家里可能有的那种。提供的电压量决定了灯光的亮度。

就像传感器一样,实际的 IoT 设备工作在数字信号上,而不是模拟信号。这意味着为了发送模拟信号,IoT 设备需要一个数字到模拟转换器(DAC),要么直接在 IoT 设备上,要么在连接板上。这将把来自 IoT 设备的 0 和 1 转换为执行器可以使用的模拟电压。
✅ 你觉得如果 IoT 设备发送的电压高于执行器能承受的电压会发生什么?
⛔️ 不要实际测试这个。
另一种将 IoT 设备的数字信号转换为模拟信号的方法是脉冲宽度调制。这涉及发送许多短的数字脉冲,仿佛它是一个模拟信号。
例如,您可以使用 PWM 控制电机的速度。
想象一下你正在用 5V 电源控制一个电机。你向电机发送一个短脉冲,将电压切换到高电平(5V)持续两百分之一秒(0.02s)。在这段时间内,你的电机可以旋转十分之一转,或 36°。然后信号暂停两百分之一秒(0.02s),发送低电平信号(0V)。每个周期的开启然后关闭持续时间为 0.04s。然后重复这个周期。

以下是翻译后的Markdown文件:
这意味着在一秒钟内,您会得到25个持续0.02秒的5V脉冲,这些脉冲旋转电机,每个脉冲之后是0.02秒的0V停顿,不旋转电机。每个脉冲使电机旋转十分之一圈,这意味着电机每秒完成2.5次旋转。您使用数字信号使电机以每秒2.5次旋转或150转/分钟(一种非标准的旋转速度单位)的速度旋转。
25 pulses per second x 0.1 rotations per pulse = 2.5 rotations per second 2.5 rotations per second x 60 seconds in a minute = 150rpm
当PWM信号有一半时间开启,一半时间关闭时,这被称为50%占空比。占空比是指信号处于开启状态的时间百分比与关闭状态的时间百分比之比。

您可以通过改变脉冲的大小来改变电机的速度。例如,对于相同的电机,您可以保持相同的周期时间为0.04秒,开启脉冲减半至0.01秒,关闭脉冲增加到0.03秒。您仍然每秒有25个脉冲,但每个开启脉冲的长度减半。半个长度的脉冲仅使电机旋转二十分之一圈,并且每秒25个脉冲将使电机每秒完成1.25次旋转或75转/分钟。通过改变数字信号的脉冲速度,您可以将模拟电机的速度减半。
25 pulses per second x 0.05 rotations per pulse = 1.25 rotations per second 1.25 rotations per second x 60 seconds in a minute = 75rpm
✅ 您如何保持电机旋转平稳,尤其是在低速时?是使用少量长脉冲和长时间停顿,还是使用大量非常短的脉冲和非常短的停顿?
一些传感器也使用PWM将模拟信号转换为数字信号。
您可以在Wikipedia上的脉冲宽度调制页面上阅读更多关于脉冲宽度调制的内容。
数字执行器,像数字传感器一样,要么由高电压或低电压控制两种状态,要么内置DAC,可以将数字信号转换为模拟信号。
一个简单的数字执行器是一个LED。当设备发送数字信号1时,发送高电压点亮LED。当发送数字信号0时,电压降至0V,LED关闭。

✅ 您还能想到哪些其他的简单双态执行器?一个例子是电磁铁,它是一种可以激活的电磁体,可用于诸如移动门栓锁定/解锁门等操作。
更先进的数字执行器,如屏幕需要以特定格式发送数字数据。它们通常带有库,以便更容易地发送正确的数据来控制它们。
在最近两节课的挑战中,列出您家中、学校或工作场所中的所有物联网设备,并决定它们是否基于微控制器或单板计算机,甚至混合使用两者。
对于您列出的每台设备,它们连接了哪些传感器和执行器?这些设备连接的每个传感器和执行器的用途是什么?
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。