树莓派读取温度传感器DS18B20

注意事项

  1. 最新的raspbian的镜像,需打开/boot/config.txt ,在最后一行手动添加这个:dtoverlay=w1-gpio-pullup,gpiopin=4,保存后重启树莓派
  2. 加载一线总线: sudo modprobe w1_gpio && sudo modprobe w1_therm
  3. OK. 接入传感器

接入第一个DS18B20(2009年购买),以及再接入(直接并入)第二个DS18B20(2015年购买):

Golang 读取DS18B20

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main

import (
"fmt"

"github.com/yryz/ds18b20"
)

func main() {
sensors, err := ds18b20.Sensors()
if err != nil {
panic(err)
}

fmt.Printf("sensor IDs: %v\n", sensors)

for _, sensor := range sensors {
t, err := ds18b20.Temperature(sensor)
if err == nil {
fmt.Printf("sensor: %s temperature: %.2f°C\n", sensor, t)
}
}
}

NodeJS 读取DS18B20

1
2
3
4
5
6
7
8
9
var ds18b20 = require('ds18b20');

setInterval(() => {
// 获取温度
ds18b20.temperature('28-0000010ae26f', (err, value) => {
if (err) return console.log(err.message);
con.query("INSERT INTO Temperature(time, sensorId, temperature) VALUES(?,?,?)", [new Date(), '28-0000010ae26f', value]);
});
}, 5000);

参考: