2016-12-20 13:25:22 +01:00
|
|
|
package aio
|
2015-06-29 18:00:05 -07:00
|
|
|
|
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
|
2023-05-20 14:25:21 +02:00
|
|
|
"gobot.io/x/gobot/v2"
|
2015-06-29 18:00:05 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
var _ gobot.Driver = (*GroveTemperatureSensorDriver)(nil)
|
|
|
|
|
2022-03-24 18:40:26 +01:00
|
|
|
// GroveTemperatureSensorDriver represents a temperature sensor
|
2016-10-27 05:21:50 -06:00
|
|
|
// The temperature is reported in degree Celsius
|
2015-06-29 18:00:05 -07:00
|
|
|
type GroveTemperatureSensorDriver struct {
|
2022-03-24 18:40:26 +01:00
|
|
|
*TemperatureSensorDriver
|
2015-06-29 18:00:05 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
// NewGroveTemperatureSensorDriver returns a new GroveTemperatureSensorDriver with a polling interval of
|
2016-09-25 13:36:18 +02:00
|
|
|
// 10 Milliseconds given an AnalogReader and pin.
|
2015-06-29 18:00:05 -07:00
|
|
|
//
|
2016-07-13 10:44:47 -06:00
|
|
|
// Optionally accepts:
|
2023-05-20 14:25:21 +02:00
|
|
|
//
|
|
|
|
// time.Duration: Interval at which the sensor is polled for new information (given 0 switch the polling off)
|
2015-06-29 18:00:05 -07:00
|
|
|
//
|
|
|
|
// Adds the following API Commands:
|
2023-05-20 14:25:21 +02:00
|
|
|
//
|
|
|
|
// "Read" - See AnalogDriverSensor.Read
|
|
|
|
// "ReadValue" - See AnalogDriverSensor.ReadValue
|
2016-09-25 13:36:18 +02:00
|
|
|
func NewGroveTemperatureSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GroveTemperatureSensorDriver {
|
2022-03-24 18:40:26 +01:00
|
|
|
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
|
2015-06-29 18:00:05 -07:00
|
|
|
|
2022-03-24 18:40:26 +01:00
|
|
|
d := &GroveTemperatureSensorDriver{
|
|
|
|
TemperatureSensorDriver: t,
|
2015-06-29 18:00:05 -07:00
|
|
|
}
|
2022-03-24 18:40:26 +01:00
|
|
|
d.SetName(gobot.DefaultName("GroveTemperatureSensor"))
|
2015-06-29 18:00:05 -07:00
|
|
|
|
|
|
|
return d
|
|
|
|
}
|
|
|
|
|
2022-03-24 18:40:26 +01:00
|
|
|
// Temperature returns the last read temperature from the sensor.
|
|
|
|
func (t *TemperatureSensorDriver) Temperature() (val float64) {
|
|
|
|
return t.Value()
|
2015-06-29 18:00:05 -07:00
|
|
|
}
|