亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Raspberry Pi 上的 1 线温度传感器 DS1820(直接 GPIO)

要使用 Raspberry Pi 测量室内或室外温度,有多种可能性。本文介绍了外部组件数量最少的版本。这是基于DS18S20温度传感器和1-wire协议的软件仿真。

DS18S20 和相关的 DS18B20 和 DS1822 是 TO-92 外壳中的集成电路,包含温度传感器、模数转换器和 1 线接口。提到的类型是引脚和软件兼容的,它们在测量精度和价格上有很大不同。三个连接器(见左图)是接地(GND,引脚 1)、数据(DQ 引脚 2)和工作电压(VDD、引脚 3)。您可以连接 VDD 和 GND,并使用 3-5 伏的寄生电源操作传感器。然后可以使用简单的两线双绞线将电路与计算机连接起来。

在这条电缆上——1-wire 总线——你可以连接几个并行的 DS1820。每个传感器都有一个由制造商分配的唯一代码来识别自己。

树莓派和 1-wire

使用 Raspberry Pi 和 1-wire 温度传感器 DS1820 进行的温度测量包含一系列从 Raspberry Pi 驱动 1-wire 总线的不同方法。本文介绍了使用最少外部电路的解决方案(1)。除了传感器之外,您只需要一个电阻器,因为该解决方案在软件中完全模拟了 1-wire 协议。

只有一个电阻

DS1820的数据口DQ直接与树莓派GPIO接口的GPIO4口相连。 GND 和 VDD 位于接地端 GND。寄生电源在3.3伏连接3V3和GPIO4之间完成了一个4k7的上拉电阻。

电阻器、用于连接到 GPIO 端口的母连接器和 1 线连接被焊接到一个小面包板上,该面包板直接位于 GPIO 端口上。 1-wire 连接可以通过节省空间的角形母连接器来实​​现。所有这些都适合 Raspberry Pi 的 TEK-BERRY 外壳。

1 线软件驱动程序

激活 1-wire 温度传感器所需的内核模块是 Linux 发行版 Raspbian “wheezy”的一部分。但是,您应该明确加载它们:

sudo modprobe w1-gpio pullup=1sudo modprobe w1-therm

重要的是参数 pullup =1 ,它告诉模块存在通过上拉电阻的寄生电源。这些模块为位于 /sys/bus/w1/devices 下方的每个传感器创建一个子目录。目录名称由传感器的系列代码及其唯一标识号组成。 DS1820 和 DS18S20 类型的传感器的系列代码为 10,DS18B20 的代码为 28,DS1822 类型为 22。在每个子目录中都有一个文件 w1_slave,其中包含传感器状态和测量的温度值:

cd /sys/bus/w1/devicescd 10-000801b5*cat w1_slave0f 00 4b 46 ff ff 06 10 0c :crc=0c YES0f 00 4b 46 ff ff 06 10 0第7375章 

该文件由两行组成,每行包含传感器 IC 的十六进制寄存器转储。第一行的末尾是校验和 (CRC) 以及它是否为有效读数的信息 (YES)。第二行以千分之一摄氏度的温度读数结束。在示例中,温度因此为 7.375 °C。小数点后三位的精度当然只是表面的;例如,DS18S20的datasheet上说测量精度只有±0.5°C,实际温度在6.8~7.9°C之间。

如果到目前为止一切正常,您应该将两个必需的模块输入到文件 /etc/modules 中,以使它们在启动时自动加载:

# /etc/modulesw1-gpio pullup=1w1-therm

循环数据库 RRDtool

为了长期记录温度读数和舒适地生成图形,建议使用 RRDtool。文章使用 USB WDE1 获取天气数据和使用 Raspberry Pi(USB 串行)进行温度测量详细解释了该工具。

首先,您必须借助 Raspberry Pi 上的包管理器安装 RRDtool:

sudo apt-get install rrdtool python-rrdtool

第二个安装包python-rrdtool 是 RRDtool 的 Python 接口,后面会用到。使用RRDtool 工作之初是定义数据库。以下示例为两个温度传感器 temp0 创建一个数据库 和 temp1 .目的是每四分之一小时(900 秒)存储一个值。十天后(=960 个值),每天减少到一个平均值、最小值和最大值。这些每日值的保留时间为十年(=3600 个值):

rrdtool create temperature.rrd --step 900 \DS:temp0:GAUGE:1200:-40:80 \DS:temp1:GAUGE:1200:-40:80 \RRA:AVERAGE:0.5:1:960 \RRA:MIN:0.5:96:3600 \RRA:MAX:0.5:96:3600 \RRA:AVERAGE:0.5:96:3600

使用 Python 进行数据采集

一个 Python 脚本读取特殊文件 w1_slave 并将温度值插入到循环数据库中:

欲了解更多详情:Raspberry Pi 上的 1 线温度传感器 DS1820(直接使用 GPIO)


制造工艺

  1. Raspberry Pi 温度记录器
  2. 使用 1 线 DS18B20 传感器和 Raspberry Pi 测量温度
  3. 使用 DS18B20 读取温度 |树莓派 2
  4. Raspberry Pi 上的温度监控
  5. 使用 RASPBERRY PI 测量温度
  6. TMP006 温度传感器 Python 库,使用 Raspberry pi,
  7. Python 和 Raspberry Pi 温度传感器
  8. Raspberry Pi 气象站
  9. 使用 Raspberry Pi 监测温度
  10. 超声波传感器 (HC-SR04) + Raspberry Pi
  11. 使用 Raspberry Pi 的运动传感器
  12. Raspberry Pi 1-Wire 数字温度计传感器 (DS18B20)