1
0
mirror of https://github.com/hybridgroup/gobot.git synced 2025-04-24 13:48:49 +08:00
hybridgroup.gobot/drivers/aio/grove_temperature_sensor_driver.go
Thomas Kohler 865e724af0
Build(v2): revert move to v2 subfolder (#932)
* revert move to v2 subfolder
* fix CI and adjust CHANGELOG
2023-05-29 19:23:28 +02:00

45 lines
1.3 KiB
Go

package aio
import (
"time"
"gobot.io/x/gobot/v2"
)
var _ gobot.Driver = (*GroveTemperatureSensorDriver)(nil)
// GroveTemperatureSensorDriver represents a temperature sensor
// The temperature is reported in degree Celsius
type GroveTemperatureSensorDriver struct {
*TemperatureSensorDriver
}
// NewGroveTemperatureSensorDriver returns a new GroveTemperatureSensorDriver with a polling interval of
// 10 Milliseconds given an AnalogReader and pin.
//
// Optionally accepts:
//
// time.Duration: Interval at which the sensor is polled for new information (given 0 switch the polling off)
//
// Adds the following API Commands:
//
// "Read" - See AnalogDriverSensor.Read
// "ReadValue" - See AnalogDriverSensor.ReadValue
func NewGroveTemperatureSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GroveTemperatureSensorDriver {
t := NewTemperatureSensorDriver(a, pin, v...)
ntc := TemperatureSensorNtcConf{TC0: 25, R0: 10000.0, B: 3975} //Ohm, R25=10k
t.SetNtcScaler(1023, 10000, false, ntc) //Ohm, reference value: 1023, series R: 10k
d := &GroveTemperatureSensorDriver{
TemperatureSensorDriver: t,
}
d.SetName(gobot.DefaultName("GroveTemperatureSensor"))
return d
}
// Temperature returns the last read temperature from the sensor.
func (t *TemperatureSensorDriver) Temperature() (val float64) {
return t.Value()
}