树莓派4B-Python-控制DS18B20(温度传感器)
树莓派4B-Python-控制DS18B20
文章目录
- 树莓派4B-Python-控制DS18B20
- 前言
- 一、DS18B20模块
- 二、参数介绍
- 三、与树莓派连接
- 1.打开单总线(1-wire)
- 2.连接温度传感器DS18B20
- 四、代码
- 2.输出数据
- 总结
前言
该文章也是与最近制作的V4小车有关,打算将温度传感器也安装到小车上,用于稍微的增加小车的附加功能吧。
一、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 linesdef 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.0return temp_cwhile 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中进行显示,这样小车就能有个微型情况显示屏了。
然后还打算装个人体红外传感器,用于感知周围大约一米内是否有人,虽然还没想好到底有什么用,就当是个待扩展功能吧。
树莓派4B-Python-控制DS18B20(温度传感器)相关推荐
- 树莓派利用python控制57步进电机
一.57步进电机参数 二.树莓派利用python控制57步进电机 import RPi.GPIO as GPIO import time# w1,w2,w3,w4,w5,w6 = 0,1,0,0,0, ...
- python控制电机_树莓派使用Python控制步进电机
步进电机和普通电机最大的不同是步进电机可以更加精确地旋转,这个特性使得它们在各种树莓派项目中得到广泛运用. 步进电机选择 市面上有很多步进电机可供选择,最后我们还是决定使用ULN2003控制板和28B ...
- (贫民窟系列)Raspberry 树莓派+L298N+Python控制小车
写在前面: 三年疫情未感染,一朝解封首批阳.高烧和不知道哪里疼的浑身疼搞得有气无力,且被圈在家里无所事事,每天昏昏沉沉,于是决定掏出尘封许久的树莓派玩玩,不搞不要紧,网上一查居然涨价了?话说那算不算是 ...
- 树莓派控制DS18B20温度传感器
DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,它的通信接口采用的是1-Wire(单总线).1-Wire是一种半双工异步的通讯协议(通信双方可以各自约定通信速率 ...
- python控制树莓派gpioled,Python 控制树莓派 GPIO 输出:控制 LED 灯
树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...
- 树莓派python_树莓派使用Python控制LCD1602模块
本文将介绍使用Python通过树莓派控制LCD1602,LCD1602液晶模块相当便宜,关键是它很容易与树莓派(Raspberry Pi)进行接口连接.LCD1602模块有16个引脚,但是我们只需要在 ...
- 树莓派4B、Python与三相四线多功能电力仪表通过RS485(modbus RTU协议)收发数据
树莓派4B+Python与三相四线多功能电力仪表通过RS485(modbus RTU协议)接口发送和接收数据 请耐心把下面的警告⚠️看完 开始之前需要注意以下点:一.那就是安全,生命为本,安全第一.因 ...
- 树莓派4b安装windows iot_树莓派4B基于python3安装opencv4全教程
昨天有同学私信说编译几个小时安装太麻烦,有没有简单点的方法,现在提供两种安装方法 我的环境 树莓派4B python = 3.7.3 操作系统,2020-3 官方最新镜像 1.换国内源(详细步骤看我以 ...
- 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
以下内容为本人原创 原文链接:https://blog.csdn.net/Yhen1/article/details/113760948 作者:@Yhen 发布网站:CSDN 未经本人同意禁止转载,如 ...
- 【树莓派】关于树莓派2代,更新最新内核后,DS18B20温度传感器无法找到对应文件的问题的解决
一.问题和解决方法 问题: 在网上关于DS18B20温度传感器的教程有很多,但大部分都是基于老版本内核的例子.在入手树莓派2代后,加上DS18B20,按照他们的方法就是找不到对应的28-****文件, ...
最新文章
- numpy.where用法
- Jsp+Servlet+JavaBean经典MVC模式理解
- NVIDIA Jetson 系列产品开发相关文档,TAO、TLT、NGC
- Stanford机器学习笔记-5.神经网络Neural Networks (part two)
- 智能路由器-OpenWRT 系列五 (NAS-SMB家庭共享)
- python apriori_python apriori算法代码怎么实现
- 光纤交换机是什么,光纤交换机的作用是什么?
- UDP套接字编程以及提高UDP可靠性的方法
- Zabbix 对接 LDAP 实现用户统一登录的方法
- iOS通俗易懂的微信支付接入和爬坑指南,十分钟轻松搞完
- php 微信推送提醒,php实现微信模板消息推送
- 计算机用老毛桃u盘备份系统,老毛桃u盘启动盘ghost备份系统操作步骤
- 金仕达程序化交易平台初步设计
- FusionPortable:用于评估不同平台上的定位和建图精度的多传感器校园数据集
- MySQL之23:59:59进位
- php 继承 父类使用子类,在PHP中使用 来 实现子类和父类之间的继承 。
- k8s学习-污点和容忍(概念、模版、创建、删除)
- ai为什么要栅格化_AI 效果-栅格化的具体用途是什么
- CityMaker学习教程10 示例代码的使用Javascript
- 【已开源】Qt 艾宾浩斯(Ebbinghaus)记忆 软件