gobot.io/x/gobot@v1.16.0/drivers/aio/grove_temperature_sensor_driver.go (about)

     1  package aio
     2  
     3  import (
     4  	"time"
     5  
     6  	"gobot.io/x/gobot"
     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  // 	time.Duration: Interval at which the sensor is polled for new information (given 0 switch the polling off)
    22  //
    23  // Adds the following API Commands:
    24  // 	"Read"      - See AnalogDriverSensor.Read
    25  // 	"ReadValue" - See AnalogDriverSensor.ReadValue
    26  func NewGroveTemperatureSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GroveTemperatureSensorDriver {
    27  	t := NewTemperatureSensorDriver(a, pin, v...)
    28  	ntc := TemperatureSensorNtcConf{TC0: 25, R0: 10000.0, B: 3975} //Ohm, R25=10k
    29  	t.SetNtcScaler(1023, 10000, false, ntc)                        //Ohm, reference value: 1023, series R: 10k
    30  
    31  	d := &GroveTemperatureSensorDriver{
    32  		TemperatureSensorDriver: t,
    33  	}
    34  	d.SetName(gobot.DefaultName("GroveTemperatureSensor"))
    35  
    36  	return d
    37  }
    38  
    39  // Temperature returns the last read temperature from the sensor.
    40  func (t *TemperatureSensorDriver) Temperature() (val float64) {
    41  	return t.Value()
    42  }