1
0
mirror of https://github.com/kidoman/embd synced 2024-06-01 08:38:05 +02:00
embd/samples/ds18b20.go

79 lines
1.2 KiB
Go

// +build ignore
package main
import (
"fmt"
"strings"
"github.com/zlowred/embd"
"github.com/zlowred/embd/sensor/ds18b20"
_ "github.com/zlowred/embd/host/rpi"
)
func main() {
if err := embd.InitW1(); err != nil {
panic(err)
}
defer embd.CloseW1()
w1 := embd.NewW1Bus(0)
devs, err := w1.ListDevices()
if err != nil {
panic(err)
}
var name string = ""
for _, dev := range devs {
if strings.HasPrefix(dev, "28-") {
name = dev
break
}
}
if name == "" {
fmt.Println("No DS18B20 devices found")
}
fmt.Printf("Using DS18B20 device %s\n", name)
w1d, err := w1.Open(name)
if err != nil {
panic(err)
}
sensor := ds18b20.New(w1d)
err = sensor.SetResolution(ds18b20.Resolution_12bit)
if err != nil {
panic(err)
}
err = sensor.ReadTemperature()
if err != nil {
panic(err)
}
fmt.Printf("Measured temperature: %vC\n", sensor.Celsius())
fmt.Printf("Measured temperature: %vF\n", sensor.Fahrenheit())
err = sensor.SetResolution(ds18b20.Resolution_9bit)
if err != nil {
panic(err)
}
err = sensor.ReadTemperature()
if err != nil {
panic(err)
}
fmt.Printf("Measured temperature: %vC\n", sensor.Celsius())
fmt.Printf("Measured temperature: %vF\n", sensor.Fahrenheit())
}