应用传感器模块

物联网 (IoT) 前景光明,将为消费者和企业提供多种全新的应用和服务。作为消费者,我们注意到 IoT 正缓步进入千家万户,但许多专家认为最大的获利者将是制造业,因为这一行业中,工业物联网 (IIoT) 一词已经广为流行。和所有基于 IoT 的应用一样,它实质上由常见的远程传感器和致动器构成,可切实发挥 IIoT 的作用。IIoT 将实现规模空前的有关制造和流程操作的数据可见性。另外,它将显示制造设备的能效和性能数据,再辅以预测性维护机制,将达到相得益彰的效果。用于此类应用的传感器可能是简单、小型、无源和/或半导体元器件,但这些元器件所在的工业环境中存在着极端温度、振动和湿度的影响。由于需要快速部署可在上述条件中正常工作的传感器和边缘节点设备,众多 IoT 开发人员采用了基于模块的方法将传感器集成到各自的设计中。

鉴于分立解决方案存在的各种挑战,模块有理由成为优先之选。例如,温度测量可以通过将负温度系数 (NTC) 热敏电阻与电阻器串联来实现,以便产生的结电压能够随环境温度而变化。然后,产生的结电压可以由主微控制器的模数转换器 (ADC) 进行读数,并利用公式计算温度。但 NTC 热敏电阻的温度/电阻具有非线性特征,需要在整个工作温度范围内进行最佳拟合线性化。此外,还需考虑温度补偿和漂移特性。主微控制器额外执行的处理过程需要占用更多的 MCU 资源,且所有终端传感器都应在制造期间完成校准。用于密封 NTC 电阻器的封装是另一个主要考虑因素,需要确保所需元器件免受环境影响。

Sensirion SHT35 温度和湿度传感器图片

图 1: SHT35 温度和湿度传感器。

相较于上述方案,我们可以采用温度模块,现以 Sensirion 的 SHT35 数字温度和湿度传感器为例(图 1)。这款表面贴装低功耗设备尺寸仅为 2.5 x 2.5 x 0.9 mm,在 2.4 至 5.5 VDC 供电电压下工作,测量时电流消耗仅为 800 µA,休眠模式下电流低至 0.2 µA。小型封装内置测量湿度的电容式传感器和测量温度的带隙传感器。这种传感器可以测量的温度范围为 -40 至 +125°C,相对湿度范围为 0 至 +100%。由于提供完全校准的数字输出,传感器元件可连接到信号处理电路与一个 14 位 ADC,其中 ADC 的温度和相对湿度精度分别达到 +/- 0.3°C 和 +/- 2%。

Sensirion SHT35 与主微控制器通信示意图

图 2: SHT35 与主微控制器通信。

图 2 所示为与主微控制器的通信过程。两者通过 I2C 串行接口实现通信,只需增加极少的上拉电阻器和去耦电容器。温度和湿度测量需要使用图 3 指定的命令。传感器数据一经读取,将以两个字节加上单字节 CRC 校验和(灰色模块)的形式传输。

Sensirion SHT3x 单步运算模式测量命令图片

图 3: SHT3x 单步运算模式测量命令。

如果要使用 SHT3x 系列协助传感器的原型设计,分线式评估板是一个不错的选择。这款评估板由 Adafruit 推出,可让传感器简单快速地连接到 Arduino 或兼容平台。有关连接到 SHT3x 的详细指南和 Arduino Sketch 代码示例,请点击此处。

Bosch BME280 是另一个数字温度和湿度传感器的例子。这是一款全封闭 LGA 封装设备,具有金属顶盖,还配备一个绝对气压传感器。藉由低功耗设计和极其紧凑的尺寸,BME280 适用于多种电池供电的便携式应用,从工业自动化控制到个人健身监测设备,不一而足。图 4 为 BME280 功能框图。

Bosch BME280 传感器功能框图

图 4: 结合湿度、压力和温度传感器的 Bosch BME280 功能框图。

传感器模拟和数字模块可由 1.7 至 3.6 V 的 DC 电源和 1.2 至 3.6 V 的独立数字接口电源提供,具体取决于应用要求。传感器支持 SPI 和 I2C 接口,且能够以三种不同的功耗模式工作。主 MCU 可触发测量功能,或让传感器以预先确定的速率自动测量。功耗在休眠模式下低至 0.1 µA,待机模式为 0.2 µA,而压力测量期间最高可达 714 µA。三种传感器工作模式为休眠、强制和普通。默认模式为休眠模式,在此模式下,将无任何 ADC 操作,且所有寄存器均可访问。

Bosch BME280 传感器模式转换示意图

图 5: BME280 传感器模式转换示意图。

强制模式通过主微控制器发出 SPI 或 I2C 请求才能调用,且每次仅执行一次测量。保存测量结果之后,传感器恢复到休眠模式。普通模式可持续执行多次测量,保存测量结果之后,传感器恢复到休眠模式。

BME280 上的规格书详细解释了工作模式、串行通信和访问测量结果寄存器的方法。另外,本文档还专门针对不同应用使用案例推荐了一些传感器设置配置文件,应用领域从天气监测到游戏,一应俱全。这些设置配置文档让各种不同应用的功率节省、采样率、噪声过滤和数据输出率各方面达到了最佳平衡状态。

对于希望基于 BME280 进行原型设计的工程师,建议尝试 Adafruit BME280 传感器分线板,如图 6 所示。

Adafruit BME280 结合式传感器分线板的图片

图 6: Adafruit BME280 结合式传感器分线板

Adafruit 提供详细的传感器使用指南,点击此处即可下载。使用指南包括连接 Arduino UNO 或兼容性单板计算机的方法,另外还提供 Arduino BME280 库(从 Adafruit GitHub 存储库获取)的链接。图 7 显示 BME280 测试草图(由库提供)代码片段。图片上方重点介绍将 SPI 引脚连接分配到 Arduino 的方法,而图片下方突出显示使用库读取数值的简单之处。

Adafruit BME280 测试草图代码片段

图 7: Adafruit BME280 测试草图代码片段。

差压传感器是燃气锅炉、燃料电池和 HVAC 系统等众多工业应用中另一种常见的传感器类型。以 Sensirion SDP8xx 系列为例,这款传感器专门用于测量大容量应用的空气或非腐蚀性气体的压力。SDP810 传感器是一款数字差压传感器,可以测量 +/- 500 Pa 范围内的气压,精度高达 0.1 Pa。通过 I2C 接口实现与主 MCU 的通信。图 8 为功能框图和传感器图片。

Sensirion SDP810 框图和图片

图 8: Sensirion SDP810 框图和图片。

差压传感器可用于测量气体流速,如图 9 所示。在此示例中,旁路气流用于计算通过主要通道或管道的气流。报告测量结果时可使用容积流量 (l/min) 或质量流量(每分钟标准立方厘米)。其中后者通常用于加热应用中,基准点为特定温度和气压。

使用差压传感器进行 Sensirion 流量测量的框图

图 9: 使用差压传感器进行流量测量

和 BME280 传感器一样,SDP810 可以在触发或持续运转的模式下工作。在 I2C 总线构建命令序列过程中,可使用简单协议。我们还提供了 SDP810 传感器的 SDP816 版本,该版本可实现模拟输出。模拟输出可以配置为与差压呈线性关系,或者平方根转换。

结论

本文仅涉及到一小部分用于各种工业应用的传感器模块。由于无需应对分立方案存在的挑战,使用数字传感器模块进行设计可以为开发团队节省大量的时间和精力。

  • 应用传感器模块已关闭评论
    A+
发布日期:2019年07月14日  所属分类:参考设计