gobot.io/x/gobot/v2@v2.1.0/drivers/aio/grove_temperature_sensor_driver.go (about) 1 package aio 2 3 import ( 4 "time" 5 6 "gobot.io/x/gobot/v2" 7 ) 8 9 var _ gobot.Driver = (*GroveTemperatureSensorDriver)(nil) 10 11 // GroveTemperatureSensorDriver represents a temperature sensor 12 // The temperature is reported in degree Celsius 13 type GroveTemperatureSensorDriver struct { 14 *TemperatureSensorDriver 15 } 16 17 // NewGroveTemperatureSensorDriver returns a new GroveTemperatureSensorDriver with a polling interval of 18 // 10 Milliseconds given an AnalogReader and pin. 19 // 20 // Optionally accepts: 21 // 22 // time.Duration: Interval at which the sensor is polled for new information (given 0 switch the polling off) 23 // 24 // Adds the following API Commands: 25 // 26 // "Read" - See AnalogDriverSensor.Read 27 // "ReadValue" - See AnalogDriverSensor.ReadValue 28 func NewGroveTemperatureSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GroveTemperatureSensorDriver { 29 t := NewTemperatureSensorDriver(a, pin, v...) 30 ntc := TemperatureSensorNtcConf{TC0: 25, R0: 10000.0, B: 3975} //Ohm, R25=10k 31 t.SetNtcScaler(1023, 10000, false, ntc) //Ohm, reference value: 1023, series R: 10k 32 33 d := &GroveTemperatureSensorDriver{ 34 TemperatureSensorDriver: t, 35 } 36 d.SetName(gobot.DefaultName("GroveTemperatureSensor")) 37 38 return d 39 } 40 41 // Temperature returns the last read temperature from the sensor. 42 func (t *TemperatureSensorDriver) Temperature() (val float64) { 43 return t.Value() 44 }