树莓派4B

您所在的位置:网站首页 Iabp传感器未打开 树莓派4B

树莓派4B

#树莓派4B| 来源: 网络整理| 查看: 265

树莓派4B-Python-控制DS18B20

文章目录 树莓派4B-Python-控制DS18B20前言一、DS18B20模块二、参数介绍三、与树莓派连接1.打开单总线(1-wire)2.连接温度传感器DS18B20 四、代码2.输出数据 总结

前言

该文章也是与最近制作的V4小车有关,打算将温度传感器也安装到小车上,用于稍微的增加小车的附加功能吧。

一、DS18B20模块

DS18B20 以下为百度百科的引用内容:

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

二、参数介绍

以下为百度百科的引用内容:

技术性能描述: ①、** 独特的单线接口方式**,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 ② 、测温范围 -55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)1℃。 ③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。 ④、工作电源: 3.0~5.5V/DC (可以数据线寄生电源) ⑤ 、在使用中不需要任何外围元件 ⑥、 测量结果以9~12位数字量方式串行传送 ⑦ 、不锈钢保护管直径 Φ6 ⑧ 、适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温 ⑨、 标准安装螺纹 M10X1, M12X1.5, G1/2”任选 ⑩ 、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。

三、与树莓派连接 1.打开单总线(1-wire) 进入树莓派软件配置工具 sudo raspi-config 选择 3.Interface Options 激活单总线设置 P7 1-Wire

在这里插入图片描述

重启树莓派。重启后,路径 /sys/bus/ 下才会出现 w1 文件夹 2.连接温度传感器DS18B20 首先使用单总线的接口默认是GPIO04(BCM),若想更换自己选择的端口,则需要在 /boot/config.txt 文件的最后那行中加上 “,gpiopin=你想要的端口”。

如:

dtoverlay=w1-gpio, gpiopin=17

则在GPIO17(BCM)可进行单总线操作。 关于树莓派单总线的相关博客文章

与树莓派的接线图 与温度传感器的接线图 红线————3.3V 黑线————GND 黄线————GPIO04(BCM) 四、代码

(1)如下为非代码型查看当前传感器温度:

cd /sys/bus/w1/devices/ ls

一般显示的地址为 28-xxxxxxxxxxxx 查看地址

cd 28-012029ad0b30 cat w1_slave

查看温度 最后的 “ t=29750 ” 为当前的温度(摄氏度) X 100 后的结果,所以除以100才是真正的温度(29.75℃)。

(2)如下为写成代码形式:

#!/usr/bin/python3 import os import time device_file ='/sys/bus/w1/devices/28-012029ad0b30/w1_slave' def read_temp_raw(): f = open(device_file,'r') lines = f.readlines() f.close() return lines def read_temp(): lines = read_temp_raw() while lines[0].strip()[-3:] != 'YES': time.sleep(0.2) lines = read_temp_raw() equals_pos = lines[1].find('t=') if equals_pos != -1: temp_string = lines[1][equals_pos+2:] temp_c = float(temp_string)/1000.0 return temp_c while True: print('当前温度是%f'%read_temp(),'度') time.sleep(0.5) 2.输出数据

结果如下所示:

Python 3.7.3 (/usr/bin/python3) >>> %Run DS18B20.py 当前温度是30.375000 度 当前温度是30.312000 度 当前温度是30.312000 度 当前温度是30.250000 度 总结

有点感觉该程序不能实时显示温度,它会有大约0.5S的变化延迟。 之后打算将此温度放于OLED中进行显示,这样小车就能有个微型情况显示屏了。 然后还打算装个人体红外传感器,用于感知周围大约一米内是否有人,虽然还没想好到底有什么用,就当是个待扩展功能吧。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3