查看: 2260|回复: 0

树莓派+18B20做多点温度监测

[复制链接]
  • TA的每日心情
    开心
    2019-6-25 09:54
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-11-30 16:57:57 | 显示全部楼层 |阅读模式
    分享到:
    18B20是个温度传感器,它采用独特的单线接口方式,在与微处理器连接时仅需要一条口线即可实现双向通讯。并且因为每个传感器都有独有的编号,所以可以多个传感器在一条总线上实现多点通讯。那下面我就来教大家如何利用多个18B20和树莓派连接实现多点温度监控。
    首先我们把18B20和树莓派连接。树莓派的GPIO4是W1设备的接口,所以我们需要把18B20的数据脚接到GPIO4上。GPIO4是GPIO的第7个插针。


    然后VCC和3.3V连接,GND和GND连接。之后要记得在数据脚和VCC之间连接个1K~10K的上拉电阻【建议4.7K】,不然读取数据会不正常。多个18B20也是这样连接。
    然后我们需要加载2个驱动。
    sudo modprobe w1-gpio sudo modprobe w1-thermw1-gpio是单总线的IO操作方法,用于模拟单总线时序;w1_therm是DS18B20的内部操作方法(读写寄存器),和IO时序无关;
    我们可以将驱动结构看成是将“w1_therm”挂接到“w1-gpio”总线上,由w1-gpio控制w1_therm工作。
    成功加载驱动后我们可以在/sys/bus/w1/devices/看到连接的设备信息
    cd /sys/bus/w1/devices/ls如果正确连接了设备和加载了驱动的话可以看到类似下面的信息:
    28-00000812ac12    28-00000581ea9e    w1_bus_master1那个28-0000开头的就是18B20的设备号。这个设备号是固定唯一的,所以你看到的你的设备号也会和我的不一样~
    然后你可以先连接一个18B20看看设备号,这样就知道哪个设备号是哪个18B20的了。然后把18B20分别放在不同的地方,你就可以监测不同地点的温度。
    读取温度的方法如下:

    设备号的文件夹里面有个w1_slave文件,那个就是设备信息,用cat去读取它可以看到图里那些内容。
    其中,t=25500就是温度信息,也就是25.5摄氏度。
    连接了多个设备后你可以使用通配符来同时获取所有的温度传感器信息,
    cat /sys/bus/w1/devices/28*/w1_slave不过这样你可能分辨不出哪个温度是哪个传感器的……
    所以,建议使用分别读取的方式来进行读取。当然你可以用& 或|符号来把2个命令连接起来同时运行。
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 17:04 , Processed in 0.117613 second(s), 17 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.