树莓派读取温度传感器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

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

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);

参考: