Meadow.Foundation.Sensors.Temperature.Thermistor
Thermistor | |
---|---|
Status | |
Source code | GitHub |
NuGet package |
Code Example
private SteinhartHartCalculatedThermistor thermistor;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
thermistor = new SteinhartHartCalculatedThermistor(Device.CreateAnalogInputPort(Device.Pins.A00), new Resistance(10, Meadow.Units.Resistance.UnitType.Kiloohms));
var consumer = SteinhartHartCalculatedThermistor.CreateObserver(
handler: result =>
{
Resolver.Log.Info($"Temperature New Value {result.New.Fahrenheit:N1}F/{result.New.Celsius:N1}C");
Resolver.Log.Info($"Temperature Old Value {result.Old?.Fahrenheit:N1}F/{result.Old?.Celsius:N1}C");
},
filter: null
);
thermistor.Subscribe(consumer);
thermistor.Updated += (object sender, IChangeResult<Meadow.Units.Temperature> e) =>
{
Resolver.Log.Info($"Temperature Updated: {e.New.Fahrenheit:N1}F/{e.New.Celsius:N1}C");
};
return Task.CompletedTask;
}
public override async Task Run()
{
var temp = await thermistor.Read();
Resolver.Log.Info($"Current temperature: {temp.Fahrenheit:N1}F/{temp.Celsius:N1}C");
thermistor.StartUpdating(TimeSpan.FromSeconds(1));
}
Sample project(s) available on GitHub
Class Thermistor
Thermistor temperature sensor object
Assembly: Thermistor.dll
View Source
public abstract class Thermistor : SamplingSensorBase<Temperature>, IObservable<IChangeResult<Temperature>>, ITemperatureSensor, ISamplingSensor<Temperature>, ISensor<Temperature>, ISensor, ISamplingSensor
Inheritance: System.Object
-> Meadow.Foundation.ObservableBase<UNIT>
Derived:
Meadow.Foundation.Sensors.Temperature.SteinhartHartCalculatedThermistor
Implements:
System.IObservable<Meadow.IChangeResult<Meadow.Units.Temperature>>
, Meadow.Peripherals.Sensors.ITemperatureSensor
, Meadow.Peripherals.Sensors.ISamplingSensor<Meadow.Units.Temperature>
, Meadow.Peripherals.Sensors.ISensor<Meadow.Units.Temperature>
, Meadow.Peripherals.Sensors.ISensor
, Meadow.Peripherals.Sensors.ISamplingSensor
Properties
AnalogInputPort
The analog input port used to determine output voltage of the voltage divider circuit
View Source
protected IAnalogInputPort AnalogInputPort { get; }
NominalResistance
The nominal resistance of the thermistor (e.g. 10kOhm for a 10k thermistor)
View Source
public abstract Resistance NominalResistance { get; }
NominalTemperature
The nominal temperature for the nominal resistance, typically 25C
View Source
public virtual Temperature NominalTemperature { get; }
Temperature
The temperature from the last reading
View Source
public Temperature? Temperature { get; protected set; }
Methods
StartUpdating(TimeSpan?)
Starts updating the sensor on the updateInterval frequency specified
View Source
public override void StartUpdating(TimeSpan? updateInterval = null)
Parameters
Type | Name | Description |
---|---|---|
System.Nullable<System.TimeSpan> | updateInterval | A TimeSpan that specifies how long to |
wait between readings |
StopUpdating()
Stops sampling the sensor
View Source
public override void StopUpdating()
Events
TemperatureUpdated
Raised when the temperature is updated
View Source
public event EventHandler<IChangeResult<Temperature>> TemperatureUpdated
Event Type
System.EventHandler<Meadow.IChangeResult<Meadow.Units.Temperature>>
Implements
System.IObservable<Meadow.IChangeResult<Meadow.Units.Temperature>>
Meadow.Peripherals.Sensors.ITemperatureSensor
Meadow.Peripherals.Sensors.ISamplingSensor<Meadow.Units.Temperature>
Meadow.Peripherals.Sensors.ISensor<Meadow.Units.Temperature>
Meadow.Peripherals.Sensors.ISensor
Meadow.Peripherals.Sensors.ISamplingSensor