查看: 1282|回复: 0

Raspberry Pi Zero W使用DS18B20温度传感器测量温度教程

[复制链接]
  • TA的每日心情
    奋斗
    2019-10-1 12:54
  • 签到天数: 313 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2017-7-6 08:41:46 | 显示全部楼层 |阅读模式
    分享到:
    夏日炎炎,对于有树莓派的朋友可以实时的测量和了解环境温度可以避免中暑,下面笔者会介绍利用树莓派Zero W和DS18B20温度传感器测量温度的具体步骤
    首先准备如下配件
    Raspberry Pi Zero W开发板1个 DS18B20温度传感器1个 4.7K-10K欧电阻一个 杜邦线3根 面包板1个
    将DS18B20的正极和数据引脚间加上电阻,然后正极接Raspberry Pi Zero W开发板的Pin1,负极接Pin6,数据线接Pin7,如下图

    然后给开发板上电,登陆后输入lsmod发现默认1-wire是关闭的

    输入如下命令
    sudo raspi-config选择5-interfacing option

    然后选择P7

    按下面操作选yes

    然后按ESC键退出后输入下面命令重启
    sudo reboot重启后再次输入lsmod可以看到wire-1正常加载了

    输入下面命令进入1-wire设备目录查看连接的设备
    cd /sys/bus/w1/devicesls
    其中28-*文件夹就是ds18b20传感器生成的目录,我们输入如下命令创建一个温度检测脚本
    sudo vi temp.py输入如下代码后保存
    import os,timedevice_file ='/sys/bus/w1/devices/28-000008bbc011/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.0    return temp_cwhile True:    print('temp C = %f'%read_temp())    time.sleep(1)笔者这里/sys/bus/w1/devices/28-000008bbc011/w1_slave,如果你的不一样,将上面修改即可
    运行温度检测脚本
    python temp.py
    笔者这边室内温度达到32摄氏度 汗!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-17 17:25 , Processed in 0.128038 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.