做企业网站可以没有后台吗,二维码表白在线制作,南昌集团制作网站公司,网创电商是什么简介 使用的是树莓派3B, Go编程实现OneWire方式读取DS18B20温度。 接线
DS18B20 包含经典三线#xff0c; VCC和GND自不必说#xff0c; 主要的是DQ线#xff0c; 需要接4.7K的上拉电阻#xff0c; 即4.7K欧姆的电阻接到DQ和VCC#xff0c; 否则树莓派识别不到DS18B20, Go编程实现OneWire方式读取DS18B20温度。 接线
DS18B20 包含经典三线 VCC和GND自不必说 主要的是DQ线 需要接4.7K的上拉电阻 即4.7K欧姆的电阻接到DQ和VCC 否则树莓派识别不到DS18B20 切记…
树莓派OneWire
树莓派支持任意引脚实现One-Wire方式 只是默认GPIO4支持
开启1-Wire支持
sudo raspi-config Interfaces Options - 1-Wire - YES-OK
指令查看总线设备
ls /sys/bus/w1/devices/ 28-00000094bebd : 0x28是family code 00000094bebd 是DS18B20的SN 使用系统指令直接查看读值
在/sys/bus/w1/devices/28-00000094bebd目录下的 w1_slave文件保存读取的信息, 第一句告诉你crc校验OK 第二句告诉你值是29375 根据数据手册 d6 1101 0110 表示LSB 01 0000 0001 表示MSB 转成摄氏度就是29.375所以t29375也就是后三位是小数点 总线路径下的temperature也可以读取温度 sudo cat ./temperature 29812
查看模块是都被加载 手动加载w1内核模块
未被加载则使用如下指令进行加载 sudo modprobe w1-gpio sudo modprobe w1-therm
选择/修改1-wire引脚
sudo dtoverlay w1-gpio gpiopin4 pullup0 # header pin 7 sudo dtoverlay w1-gpio gpiopin17 pullup0 # header pin 11 sudo dtoverlay w1-gpio gpiopin27 pullup0 # header pin 13
最后
看了上面 暂时不使用Go去进行读取DS18B20了 目前思路步骤记录一下 简单点就是: 读取28目录下的temperature文件或w1_slave文件过滤到txxxxx读取温度 多个DS18B20做法类同
Note 关于 /sys/bus/w1/下的总线目录和从设备目录的文件解释可以参考 https://www.kernel.org/doc/Documentation/w1/w1.generic 关于内核模块 w1_therm 的作用 https://www.kernel.org/doc/html/latest/w1/slaves/w1_therm.html
参考
GPIO and the 40-pin header W1-GPIO - One-Wire Interface Linux 内核 W1相关说明