带有趋势、最高和最低温度的室外温度计
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
关于这个项目
简介
我制作这个温度计是为了好玩,也是为了获得一些编写 Arduino 软件和使用 LCD 显示器的经验。在研究它时,我决定添加一些功能。测量的最高温度、最低温度和显示温度趋势的向上或向下箭头。按钮用于将显示的最低和最高温度重置为当前温度。
如何构建它
构建它相当简单。按照时间表连接组件。 Arduino Uno 的 5V 输出必须连接到所有 +5V 连接(箭头)。同时互连所有接地引脚。温度计由连接到 Arduino 的 12 V DC 外部电源供电。下载草图并将其上传到您的 Arduino,您就完成了。
你需要什么:
- Arduino Uno
- 液晶显示器 1602A
- 12 伏直流电源
- B+B Thermo Technik TS-NTC-103 (10kΩ)
- 金属膜电阻器 10kΩ,0.1% 容差
- 电位计 10kΩ 线性
- 电阻 820 Ω(公差不重要,10%、5% 或更好就可以了)
- 电阻 10 kΩ(公差不重要)
- 电容器 0,1 uF (=100nF) 16V(2 个)
- Elco 470 uF 16V
- 按钮(通常关闭)
- 外壳,如果你想在里面构建它
传感器,高精度NTC
我使用的 NTC 是 10 kΩ 的 B+B Thermo Technik 精密温度传感器。该传感器在 25 °C 时的电阻容差为 ±0.5% TS-NTC 系列的 NTC 温度传感器具有 -60 ... +150 °C 的宽测量范围,因此适用于以下应用:现在正在使用昂贵的铂电阻。基本电阻和B值均在±0.5%的容差范围内,因此该组件无需温度校准即可用于许多应用,也无需重新调整即可更换。因此,通过简单的电阻测量,可以在 25°C 下达到 ±0.12 K 的精度。在 -60 ...+85 °C 的温度范围内,最大误差约为 ±0.5K。您可以使用任何其他高精度 NTC,但随后您必须更改草图中的 Steinhart-Hart 系数以适合该 NTC(请参阅 Steinhart-Hart 近似值。)
显然,对于高精度温度测量,与 NTC 串联的分压器的另一个电阻器也需要是低容差类型。我使用了 10kΩ 的金属膜电阻器,容差 0.1%,0.6W,温度系数 25 ppm。容差为 0.5% 或更低的任何其他电阻器都可以。
NTC 电缆拾取噪声
NTC 被放置在房子外面。在我的情况下,有几米的电缆。为了避免房屋中其他电气“嘈杂”设备的干扰,我在 Arduino Uno(引脚 14)的模拟温度输入端与地之间放置了一个 0.1 uF 的去耦电容器。在那之后,示波器在 14 号引脚上仍然显示出一些噪音。噪音是由1602液晶显示器的时钟引起的。在 VDD 和 LCD 显示器的 Vss 引脚之间放置一个 0.1 uF 的去耦电容器后,它就消失了。此电容应直接焊接在 LCD PC 板上,导线尽量短(最多 1 厘米)。
之后示波器显示 14 针上的信号是干净的。为了避免开关电源的噪声和纹波,我在 Arduino 的 5V 和接地之间放置了 470 uF 的 elco
NTC的放置
为了避免错误的温度测量,NTC 及其外壳可能永远不会暴露在阳光下。所以它应该放在阴凉处,最好放在房子的北侧(如果你在南半球,在南侧)甚至远离房子。不紧贴墙壁,但至少在墙外几毫米,因为墙壁可能比外面的空气热几度。最好是后面没有暖气的墙,比如车库墙。
图>
关于软件。
LiquidCrystal 库包含在 1602 LCD 命令中。声明了几个常量和变量。请阅读 de Sketch 中的评论以获取更多信息。 A、B 和 C 是我使用的 NTC 的 Steinhart - Hart 系数。对于其他 NTC,您必须更改这些系数。第 17 行的整数间隔定义了两次连续测量之间的时间,即 3 秒。为了使温度测量顺利进行,从 30 次连续测量中计算出运行平均值(第 22 行的 numReadings)。因此,显示的温度始终是最近 90 秒温度的平均值。为了计算运行平均值,使用了一个数组:readings[numReadings] 或在本例中为 readings[30] 在第 21 行。每个读数都是 0 到 1023 之间的整数。
Steinhart-Hart 近似
NTC(负温度系数)是具有温度相关电阻的电阻器。如果温度升高,电阻会降低。不幸的是,电阻和温度之间的关系不是线性关系。但是 R-T 曲线可以通过一个公式来近似。在实践中使用了两个近似公式。所谓的 Beta 公式和 Steinhart-Hart 公式。由于后一个给出了最好的近似值,这就是我使用的那个。制造商通常会为我们提供两种近似值。然而,TS-NTC-103 可以在 -60...+150 摄氏度的宽温度范围内使用。由于我们在大约小得多的范围内使用它。 -10...+30 摄氏度,如果我们专门为这个范围计算系数,我们会得到更好的近似值。我在我们的工作范围(-10、0 和 +20 摄氏度)中使用了制造商规格中的三个电阻-温度对。使用斯坦福研究系统的在线计算器计算系数很简单。在下图中,您可以看到 Beta 模型近似值和 Steinhart-Hart 近似值的数据(红点)。在右下角,您会看到电阻值为 10k 时,使用 Steinhart-Hart 近似值的近似温度为 25,0035 摄氏度,非常好,而使用 Beta 近似值的近似温度为 25,7716 摄氏度,实际上不太好(NTC 在 25 摄氏度时为 10k)
NTC计算器链接
代码
阿杜诺
1.4 版解决了函数声明 PrintPG() 中的约定问题,该问题导致离线编辑器中的编译器错误,但 Web 编辑器中没有问题 1.3 版包括趋势箭头的滞后示意图
制造工艺
- 带二维码、RFID 和温度验证的访问控制
- 使用 1 线 DS18B20 传感器和 Raspberry Pi 测量温度
- 使用 DS18B20 读取温度 |树莓派 2
- 使用 RASPBERRY PI 测量温度
- Python 和 Raspberry Pi 温度传感器
- Raspberry Pi 上的简易温度和湿度
- 使用 Raspberry Pi 监测温度
- DIY:HomeBrew 的温度监控和调节
- 具有 Gnuplot 图像输出和电子邮件警报功能的 Raspberry Pi 控制室温监控
- Raspberry Pi 温度和光传感器
- 使用 Raspberry Pi 和 Python 构建机器人
- 超酷迷你温度计