ESP8266-Arduino编程实例-TM36温度传感器驱动

TM36温度传感器驱动

1、TM36介绍

TMP35、TMP36 和 TMP37 是低压、精密摄氏度温度传感器。 它们提供与摄氏(摄氏度)温度成线性比例的电压输出。

TMP36 温度传感器相当精确,可在多种环境条件下工作,无需外部组件即可工作。 此外,TMP36 传感器无需校准,在 +25°C 和 -40°C 至 +125°C 温度范围内的典型精度为 ±1°C 和 ±2°C。

该传感器可由 2.7V 至 5.5V 电源供电,在主动温度转换期间仅消耗 50µA,提供非常低的自发热(在静止空气中低于 0.1°C)。 此外,还提供关断功能,可将电源电流降至 0.5µA 以下。

TM36的主要特性如下:

  • 电源 2.7V 至 5.5V
  • 电流消耗 50µA
  • 温度范围 -40°C 至 125°C
  • 精度 ±2°C
  • 输出比例因子 10mV/°C
  • 输出范围 0.1V (-40°C) 至 1.75V (125°C)
  • 25°C 时输出 750mV

在这里插入图片描述

以下公式将电压转换为温度:

T


e


m


p


(


°


C


)

(

V

o

u

t

0.5

)

100

Temp (°C) = (Vout – 0.5) * 100

Temp(°C)=(Vout–0.5)∗100

在Arduino平台中,analogRead()函数实际上并不返回传感器的输出电压。 相反,它将输入电压在 0 和 ADC 参考电压之间(技术上它是工作电压,即 5V 或 3.3V,除非你改变它)映射到 0 到 1023 之间的 10 位整数值。将此值转换回 传感器的输出电压,使用这个公式:

V


o


u


t

(

r

e

a

d

i

n

g

f

r

o

m

A

D

C

)

(

5

/

1024

)

Vout = (reading from ADC) * (5 / 1024)

Vout=(readingfromADC)∗(5/1024)

上面公式将 ADC 中的数字 0-1023 转换为 0-5V。

如果使用的是 3.3V Arduino平台,则按如下公式计算

Vout = (reading from ADC) * (3.3 / 1024)

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • TM36传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

ESP8266引脚 TM36引脚
3v3 Vcc
Gnd Gnd
A0 Vout

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// TM32传感器输出引脚
#define sensorPin A0

void setup() {
// 初始化串口
Serial.begin(9600);
}

void loop() {
// 读取TM36输出
int reading = analogRead(sensorPin);

// 转换输出电压
float voltage = reading \* (3.3 / 1024.0);

// 将电压转换为摄氏温度
float temperatureC = (voltage - 0.5) \* 100;

// 打印摄氏温度
Serial.print("Temperature: ");
Serial.print(temperatureC);
// 打印温度符号
Serial.print("\xC2\xB0");
Serial.print("C | ");

// 转换为华氏温度
float temperatureF = (temperatureC \* 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.print("\xC2\xB0");
Serial.println("F");

delay(1000);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126206150