1.16. 温度传感器和温度监测

本节中我们将认识两类温度传感器,分别用于监测环境温度和芯片温度。

1.16.1. 芯片内部温度

你的电脑电风扇是自动开启和关闭的,计算机系统根据CPU芯片、计算机主板的温度自动控制其风扇的开关。为什么CPU需要风扇来散热? 事实上,所有电子元件在工作时都会发热,只是大多数电子元件的发热量非常小,几乎被我们忽略,因为他们发热的量小于环境散热量,他们所产生 的热量不会积累而不会出现高温。引起电子元件发热的主要因素是他的工作电流和内阻,根据焦耳热定律,电子元件产生的热量与内阻成正比,与 电流的平方成正比。因此所有大功率电子元件都会产生很大的热量。现代高性能处理器由于工作速度很高需要消耗较大电流,自然会产生很多 热量,如果不能即使散热让产生的热量积累起来,将是芯片的温度越来越高,当温度超过芯片能承受的最大温度时,其内部电子单元会被热击穿 而损坏。反过来,低功耗的CPU,意味着工作速度比较低,产生的热量很少,无需风扇。

BlueFi使用的是低功耗的32位处理器,主时钟速度仅仅64MHz,与仅仅是桌面计算机CPU速度的2~5%,所以工作电流极小,处理一般性的I/O 控制事物,BlueFi的主CPU几乎不发热,或者更准确地说其发热量小于环境对其散热量。使用下面的示例程序,我们能够得到主CPU内部的温度。

../../_static/images/basics/temp.png

将上示例程序保存到BlueFi的/CIRCUITPY/code.py,BlueFi将实时地显示主CPU的芯片温度。

示例代码分析:

  • 第1行,初始化程序,相当与程序下载进Bluefi之后告知Bluefi从此开始执行程序
  • 第2行,一个无穷循环的程序块
  • 第3行(无穷循环程序块的第1行),打印值”Temp=”,将环境温度(即主cpu芯片温度)的数值打印出来
  • 第4行(无穷循环程序块的第2行),等待0.1秒(即系统空操作0.1秒)

当BlueFi的主CPU工作任务非常繁重时,消耗的电流也会增加,芯片温度也会随之增加。

1.16.2. 环境温度和温度监视器

BlueFi反面的温度计符号附近有一颗数字型高精度温度传感器,我们可以使用这个传感器监测环境温度,当环境温度超过设定阈值时给予报警或其他处理。 示例程序如下:

../../_static/images/basics/temp1.png

将本示例代码保存到BlueFi的/CIRCUITPY/code.py文件中,想法改变BlueFi的温度传感器附近的温度,譬如靠近燃烧的 火柴或打火机,温度上升至设定阈值(示例程序中设定为33度)后,你看到彩色LED从绿色灯光变成红色,且伴有急促的声音警示。

本示例程序的具体细节不再详细赘述。

实际应用的警报器的声音提示是可以关闭的,就像闹钟响起后,我们被闹钟叫醒后第一件事就是关闭闹钟的声音提示,当我们发现温度 监视器的警示音响起后,也会先关闭警示音再处理温度超高。你能修改程序实现:当温度超过设定阈值时,将温度显示为红色,并响起警报, 如果按下A按钮则关闭声音警报,直到下次温度再次从低温到高温变化且超过设定阈值时警示音才会再次响起。


总结:

  • 温度
  • 芯片温度和环境温度
  • 温度监测与报警
  • 本节中,你总计完成了16行代码的编写工作

重要

Sensors类的温度传感器接口

  • 环境温度 (有效值: 0.0~65.0), 当前环境温度, 精度为+/-0.2