Grove - 温度传感器 V1.2

Grove - 温度传感器使用热敏电阻来检测环境温度。当环境温度降低时,热敏电阻的阻值会增加。我们利用这一特性来计算环境温度。该传感器的检测范围是 -40 - 125ºC,精度为 ±1.5ºC
注意:本说明文档同样适用于 Grove - 温度传感器 V1.1,对于 V1.0 版本请参考 Grove - 温度传感器
可升级为工业级传感器
通过 SenseCAP S2110 控制器和 S2100 数据记录器,您可以轻松将 Grove 转换为 LoRaWAN® 传感器。Seeed 不仅帮助您进行原型设计,还为您提供了使用 SenseCAP 系列坚固耐用的工业传感器扩展项目的可能性。
SenseCAP S210x 系列工业传感器为环境感知提供开箱即用的体验。请参考具有更高性能和稳定性的 S2101 无线温湿度传感器,用于空气质量监测。该系列包括土壤湿度、空气温湿度、光照强度、CO2、EC 和 8 合 1 气象站传感器。试试最新的 SenseCAP S210x,助力您下一个成功的工业项目。
| SenseCAP 工业传感器 |
| S2101 空气温湿度传感器 |
规格参数
- 电压:3.3 ~ 5V
- 零功率电阻:100 KΩ
- 电阻容差:±1%
- 工作温度范围:-40 ~ +125 ℃
- 标称B常数:4250 ~ 4299K
更多关于Grove模块的详细信息,请参考Grove系统
支持的平台
| Arduino | Raspberry | ArduPy |
|---|---|---|
![]() | ![]() | ![]() |
上述提到的支持平台是模块软件或理论兼容性的指示。在大多数情况下,我们只为Arduino平台提供软件库或代码示例。无法为所有可能的MCU平台提供软件库/演示代码。因此,用户必须编写自己的软件库。
入门指南
在本节之后,您只需几个步骤就可以让Grove - 温度传感器 V1.1/1.2 运行起来。
如果这是您第一次使用Arduino,我们强烈建议您在开始之前先查看Arduino入门指南。
与Arduino一起使用
硬件
- 步骤1. 准备以下物品:
| Seeeduino V4.2 | Base Shield | Grove - 温度传感器 |
|---|---|---|
![]() | ![]() | ![]() |
| 立即购买 | 立即购买 | 立即购买 |
-
步骤2. 将Grove - 温度传感器连接到Grove-Base Shield的A0端口。
-
步骤3. 将Grove - Base Shield插入Seeeduino。
-
步骤4. 通过USB线将Seeeduino连接到PC。

如果我们没有Grove Base Shield,我们也可以直接将Grove_Ultrasonic_Ranger连接到Seeeduino,如下所示。
| Seeeduino | Grove - 温度传感器 |
|---|---|
| 5V | 红色 |
| GND | 黑色 |
| 未连接 | 白色 |
| A0 | 黄色 |
软件
- 步骤1. 启动Arduino IDE,点击文件>新建打开新页面。将以下代码复制到新页面中并上传。如果您不知道如何上传代码,请查看如何上传代码。
// Grove - 温度传感器 V1.1/1.2 演示代码
// Loovee @ 2015-8-26
#include <math.h>
const int B = 4275000; // 热敏电阻的B值
const int R0 = 100000; // R0 = 100k
const int pinTempSensor = A0; // Grove - 温度传感器连接到A0
#if defined(ARDUINO_ARCH_AVR)
#define debug Serial
#elif defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_SAM)
#define debug SerialUSB
#else
#define debug Serial
#endif
void setup()
{
Serial.begin(9600);
}
void loop()
{
int a = analogRead(pinTempSensor);
float R = 1023.0/a-1.0;
R = R0*R;
float temperature = 1.0/(log(R/R0)/B+1/298.15)-273.15; // 通过数据表转换为温度
Serial.print("temperature = ");
Serial.println(temperature);
delay(100);
}
步骤2. 点击工具-> 串口监视器打开Arduino IDE的串口监视器。或者同时按下++ctrl+shift+m++键。如果一切正常,您将获得温度值。
结果应该如下所示:

与Raspberry Pi一起使用(使用Grove Base Hat for Raspberry Pi)
硬件
- 步骤1. 本项目中使用的物品:
| Raspberry pi | Grove Base Hat for RasPi | Grove - 温度传感器 |
|---|---|---|
![]() | ![]() | |
| 立即购买 | 立即购买 | 立即购买 |
- 步骤2. 将Grove Base Hat插入Raspberry。
- 步骤3. 将温度传感器连接到Base Hat的A0端口。
- 步骤4. 通过USB线将Raspberry Pi连接到PC。

对于步骤3,您可以将温度传感器连接到任何模拟端口,但请确保您使用相应的端口号更改命令。
软件
如果您使用的是Raspberry Pi with Raspberrypi OS >= Bullseye,您必须仅使用Python3运行此命令行。
- 步骤 1. 按照设置软件配置开发环境。
- 步骤 2. 通过克隆 grove.py 库下载源文件。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- 步骤 3. 执行以下命令运行代码。
cd grove.py/grove
python3 grove_temperature_sensor.py 0
以下是 grove_temperature_sensor.py 代码。
import sys
import time
from grove.factory import Factory
def main():
from grove.helper import SlotHelper
sh = SlotHelper(SlotHelper.ADC)
pin = sh.argv2pin()
sensor = Factory.getTemper("NTC-ADC", pin)
print('Detecting temperature...')
while True:
print('{} Celsius'.format(sensor.temperature))
time.sleep(1)
if __name__ == '__main__':
main()
如果一切顺利,您将能够看到以下结果
pi@raspberrypi:~/grove.py/grove $ python3 grove_temperature_sensor.py 0
Hat Name = 'Grove Base Hat RPi'
Detecting temperature...
24.7473402633 Celsius
24.7473402633 Celsius
24.7473402633 Celsius
24.7112751977 Celsius
24.7112751977 Celsius
^CTraceback (most recent call last):
File "grove_temperature_sensor.py", line 53, in <module>
main()
File "grove_temperature_sensor.py", line 49, in main
time.sleep(1)
KeyboardInterrupt
您可以通过简单地按 ++ctrl+c++ 退出此程序。
您可能已经注意到,对于模拟端口,丝印引脚编号类似于 A1, A0,但在命令中我们使用参数 0 和 1,与数字端口相同。因此请确保将模块插入正确的端口,否则可能会出现引脚冲突。
与 Raspberry Pi 配合使用(使用 GrovePi_Plus)
硬件
- 步骤 1. 准备以下物品:
| Raspberry pi | GrovePi_Plus | Grove - Temperature Sensor |
|---|---|---|
![]() | ![]() | ![]() |
| 立即获取 | 立即获取 | 立即获取 |
-
步骤 2. 将 GrovePi_Plus 插入 Raspberry。
-
步骤 3. 将 Grove - Temperature Sensor 连接到 GrovePi_Plus 的 A0 端口。
-
步骤 4. 通过 USB 线将 Raspberry 连接到 PC。

软件
在本 wiki 中,我们使用路径 ~/GrovePi/ 而不是 /home/pi/Desktop/GrovePi,您需要确保步骤 2 和步骤 3 使用相同的路径。
我们强烈建议您更新固件,否则某些传感器可能会出现错误。
如果您使用的是 Raspberry Pi with Raspberrypi OS >= Bullseye,您必须仅使用 Python3 运行此命令行。
- 步骤 3. Git 克隆 Github 仓库。
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- 步骤 4. 执行以下命令使用 Grove - Temperature Sensor 测量温度。
cd ~/GrovePi/Software/Python
sudo python3 grove_temperature_sensor.py
以下是 grove_temperature_sensor.py 代码。
# NOTE:
# The sensor uses a thermistor to detect ambient temperature.
# The resistance of a thermistor will increase when the ambient temperature decreases.
#
# There are 3 revisions 1.0, 1.1 and 1.2, each using a different model thermistor.
# Each thermistor datasheet specifies a unique Nominal B-Constant which is used in the calculation forumla.
#
# The second argument in the grovepi.temp() method defines which board version you have connected.
# Defaults to '1.0'. eg.
# temp = grovepi.temp(sensor) # B value = 3975
# temp = grovepi.temp(sensor,'1.1') # B value = 4250
# temp = grovepi.temp(sensor,'1.2') # B value = 4250
import time
import grovepi
# Connect the Grove Temperature Sensor to analog port A0
# SIG,NC,VCC,GND
sensor = 0
while True:
try:
temp = grovepi.temp(sensor,'1.2')
print("temp =", temp)
time.sleep(.5)
except KeyboardInterrupt:
break
except IOError:
print ("Error")
结果应该如下:
pi@raspberrypi:~/GrovePi/Software/Python $ sudo python3 grove_temperature_sensor.py
('temp =', 25.28652137917777)
('temp =', 25.28652137917777)
('temp =', 25.28652137917777)
('temp =', 25.28652137917777)
('temp =', 25.368489566400115)
('temp =', 25.61468397498203)
('temp =', 27.43501590142614)
('temp =', 27.85285590636829)
('temp =', 27.18509952680688)
('temp =', 26.852756540240193)
与 Wio Terminal 配合使用(ArduPy)
硬件
- 步骤 1. 准备以下物品:
| Wio Terminal | Grove - Temperature Sensor |
|---|---|
![]() | |
| 立即获取 | 立即获取 |
-
步骤 2. 将 Grove - 温度传感器连接到 Wio Terminal 的 A0 端口。
-
步骤 3. 通过 USB Type-C 线缆将 Wio Terminal 连接到 PC。

软件
-
步骤 1. 按照 ArduPy 入门指南 在 Wio Terminal 上配置 ArduPy 开发环境。
-
步骤 2. 确保 ArduPy 固件已刷入 Wio Terminal。更多信息请参考 这里。
aip build
aip flash
- 步骤 3. 复制以下代码并保存为
ArduPy-temp.py:
from machine import Pin, ADC
from machine import LCD
from machine import Sprite
import time, math
raw = ADC(Pin(13))
lcd = LCD()
spr = Sprite(lcd) # 创建一个缓冲区
B = 4275 # 热敏电阻的 B 值
R0 = 100000 # R0 = 100k
def temp(reading):
R = 1023.0 / reading - 1.0
R = R0*R
temperature = 1.0/(math.log(R/R0)/B+1/298.15)-273.15 # 通过数据表转换为温度
return temperature
def main():
spr.createSprite(320, 240)
while True:
spr.setTextSize(2)
spr.fillSprite(spr.color.BLACK)
spr.setTextColor(lcd.color.ORANGE)
spr.drawString("Temperature Reading", 45, 10)
spr.drawFastHLine(40, 35, 240, lcd.color.DARKGREY)
spr.setTextColor(lcd.color.WHITE)
spr.drawString("- ", 20, 50)
spr.drawFloat(temp(raw.read()), 3, 40,50)
spr.drawString("C", 120, 50)
spr.pushSprite(0,0)
time.sleep_ms(500)
print("Temperature: ", temp(raw.read()), "C")
if __name__ == "__main__":
main()
- 步骤 4. 将
ArduPy-temp.py保存在您知道的位置。运行以下命令并将<YourPythonFilePath>替换为您的ArduPy-temp.py位置。
aip shell -n -c "runfile <YourPythonFilePath>"
# 示例:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-temp.py"
- 步骤 5. 我们将看到温度值在终端中显示如下,并在 Wio Terminal LCD 屏幕上显示。
ansonhe@Ansons-Macbook-Pro ~:aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-temp.py"
Positional argument (/dev/cu.usbmodem141101) takes precedence over --open.
Connected to ardupy
Temperature: 28.08603 C
Temperature: 28.50415 C
Temperature: 28.16953 C
Temperature: 28.25308 C
Temperature: 28.08603 C
Temperature: 28.16953 C
Temperature: 28.08603 C
Temperature: 28.16953 C
Temperature: 28.33671 C
Temperature: 28.16953 C
Temperature: 28.25308 C

参考资料
如果您想了解温度算法的原理,请参考下图:

原理图在线查看器
资源
- [Zip] Grove - 温度传感器 v1.1 Eagle 文件
- [PDF] Grove - 温度传感器 v1.1.PDF
- [PDF] 温度传感器数据手册
项目
温度传感器 Grove 模块:
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。









