首页

树莓派DS18B20教程|基本接口和物联网监视器

在之前的DS18B20数字传感器项目中,我们已经看到了如何将Arduino与DS18B20连接,并在16X2 LCD显示器上显示温度。在这个项目中,我们将学习树莓派DS18B20温度传感器接口,以及如何从远程位置监控温度,即基于web的温度监视器。

该项目由两部分组成:第一部分包括将DS18B20与树莓派连接,并在终端上查看温度;第二部分,使用Dataplicity通过互联网访问树莓派,并从远程计算机查看温度。

概述

我们已经在前面的教程中了解了DS18B20温度传感器。但作为提醒,我将提到一些关于传感器的重要细节。

DS18B20是一个数字温度传感器,通过1线接口通信。由于树莓派没有任何模拟输入引脚,选择数字传感器在项目中实现是显而易见的。

Arduino DS18B20温度传感器

DS18B20传感器在其TO-92包有三个引脚:GND, DQ(数据)和VDD.你可以通过V给传感器供电DD引脚或传感器可从DQ引脚(寄生电源模式)汲取电源。

有关DS18B20温度传感器以及如何将其与Arduino连接的更多信息,请访问:Arduino DS18B20接口教程

树莓派DS18B20接口电路图

下图为DS18B20温度传感器与树莓派的接口电路图。第一张图展示了树莓派和DS18B20之间使用Fritzing零件的连接。

树莓派DS18B20温度传感器抖动

如果您想清楚地了解这些连接,下面的接线图可能会有帮助。

树莓派DS18B20温度传感器接线

组件的要求

  • 树莓派3 B型
  • DS18B20数字温度传感器
  • 4.7KΩ电阻器(1/4瓦)
  • 电路试验板
  • 连接电线
  • Micro USB连接线
  • 可连接互联网的电脑

电路设计

首先,连接V字DDDS18B20传感器的GND引脚到3.3V,树莓派的GND引脚。DS18B20可耐受+5V电源。

然后在DS18B20的DQ引脚和3.3V之间连接一个4.7KΩ电阻,即一个上拉电阻。最后,将DQ引脚连接到树莓派的GPIO4(即Physical Pin 7)上。

树莓派DS18B20温度传感器接口

我们现在将看到如何接口DS18B20温度传感器和树莓派。使用这个界面,您可以开发应用程序,如气象站,远程温度监视器,温度数据记录器等。

启用树莓派的单线接口

按照电路图完成连接后,给树莓派上电。由于DS18B20传感器仅在单线接口上通信,我们需要在树莓派上启用同样的功能。所以,打开树莓派的命令提示符,输入以下命令打开config.txt文件。

Sudo nano /boot/config.txt

树莓派DS18B20温度传感器图片

在该文件的末尾,添加以下语句。

dtoverlay = w1-gpio

按“Ctrl+x”、“y”保存“config.txt”文件,保存完成后需要重启树莓派。因此,使用以下命令重新启动树莓派。

sudo重启

检查传感器是否处于工作状态

如果您想检查DS18B20温度传感器是否工作,下面的步骤将是有用的。您可以跳过此步骤,继续为树莓派编写Python程序。

重新启动树莓派后,登录树莓派,在命令提示符中输入以下命令。

Sudo modprobe w1-gpio
Sudo modprobe w1-therm

注意:您也可以通过在命令提示符中输入sudo modprobe w1-gpio && sudo modprobe w1-therm在一行中输入它们。

现在,您需要使用以下命令切换到devices目录。

cd / sys /汽车/ w1 /设备

在此目录中,使用ls命令查找设备列表。

在我的例子中,DS18B20 Sensor对应的目录是28-0316555c2fff。使用cd命令打开该目录。

cd 28 - 0316555 c2fff

注意:用目录中出现的名称替换28-0316555c2fff。

要查看传感器的原始温度读数,使用以下命令。

猫w1_slave

如果您注意到,结果的第二行末尾的值t=25250表示温度为25.250C。

树莓派DS18B20温度传感器

Python程序从DS18B20读取温度

我在树莓派的Home中创建了一个名为“projects”的文件夹。切换到这个目录,并使用vim编辑器创建一个名为' temperature.py '的新Python文件。

Sudo vim python temperature.py

树莓派DS18B20温度传感器

在此文件中,键入以下代码并保存文件。

将代码写入或复制到编辑器后,保存文件,就可以运行脚本了。要运行Python脚本,只需使用以下命令。

Sudo python temperature.py

树莓派DS18B20温度传感器图片

你会得到温度的单位是摄氏度。如果您想显示华氏温度,只需修改def read_temp():部分中的代码。

基于物联网的温度监测仪

我们将通过建立一个基于Web的温度监视器将该项目向前推进一步。为此,我将使用Dataplicity的服务。从提供的链接转到主页Dataplicity。

在第1部分中输入您的电子邮件id,然后单击Start。守则将出现在第2部分。复制此代码并粘贴到树莓派的“命令行提示符(终端)”中,激活远程shell。

树莓派DS18B20温度传感器图片

代码大概是这样的。

Curl https://www.dataplicity.com/xxxxxxxx.py | sudo python

注意:' xxxxxxxx '将是特定于您的电子邮件id。

输入代码后,它会尝试下载必要的文件到你的树莓派,在Dataplicity Server上注册你的设备,配置你的系统,最后运行远程代理。

树莓派DS18B20温度传感器图片

现在,点击Dataplicity网站上的“完成”,开始远程访问树莓派。该终端将启用,您可以使用树莓派的凭证登录。

由于我的DS18B20传感器Python脚本存储在文件夹“projects”中,我将移动到该目录并使用以下命令运行脚本。

Sudo python temperature.py

树莓派DS18B20温度传感器图片

就是这样。您已经使用树莓派、DS18B20温度传感器和Dataplicity成功完成了基于物联网的温度监视器应用程序。

留言回复

您的电邮地址将不会公布。

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map