Remarks
Mcp9808 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
Mcp9808 mcp9808;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
mcp9808 = new Mcp9808(Device.CreateI2cBus());
var consumer = Mcp9808.CreateObserver(
handler: result =>
{
Resolver.Log.Info($"Temperature New Value { result.New.Celsius}C");
Resolver.Log.Info($"Temperature Old Value { result.Old?.Celsius}C");
},
filter: null
);
mcp9808.Subscribe(consumer);
mcp9808.TemperatureUpdated += (object sender, IChangeResult<Meadow.Units.Temperature> e) =>
{
Resolver.Log.Info($"Temperature Updated: {e.New.Celsius:N2}C");
};
return Task.CompletedTask;
}
public override async Task Run()
{
var temp = await mcp9808.Read();
Resolver.Log.Info($"Temperature New Value {temp.Celsius}C");
mcp9808.StartUpdating(TimeSpan.FromSeconds(1));
}
Sample project(s) available on GitHub
Syntax
public class Mcp9808 : ByteCommsSensorBase<Units.Temperature>, ISamplingSensor<Units.Temperature>, ISamplingSensor<Units.Temperature>, IDisposable, ITemperatureSensor
Constructors
Mcp9808(II2cBus, Byte)
Creates a new Mcp9808 object
Declaration
public Mcp9808(II2cBus i2CBus, byte address = null)
Parameters
Type | Name | Description |
---|---|---|
II2cBus | i2CBus | The I2C bus |
System.Byte | address | The I2C address |
Properties
Temperature
The temperature, in degrees celsius (°C), from the last reading.
Declaration
public Units.Temperature? Temperature { get; protected set; }
Property Value
Type | Description |
---|---|
System.Nullable<Units.Temperature> |
Methods
GetDeviceId()
Read the device ID
Declaration
public ushort GetDeviceId()
Returns
Type | Description |
---|---|
System.UInt16 |
GetManufactureId()
Read the manufacture ID
Declaration
public ushort GetManufactureId()
Returns
Type | Description |
---|---|
System.UInt16 |
GetResolution()
Read resolution
Declaration
public byte GetResolution()
Returns
Type | Description |
---|---|
System.Byte |
RaiseEventsAndNotify(IChangeResult<Units.Temperature>)
Raise events for subcribers and notify of value changes
Declaration
protected override void RaiseEventsAndNotify(IChangeResult<Units.Temperature> changeResult)
Parameters
Type | Name | Description |
---|---|---|
IChangeResult<Units.Temperature> | changeResult | The updated sensor data |
ReadSensor()
Reads data from the sensor
Declaration
protected override Task<Units.Temperature> ReadSensor()
Returns
Type | Description |
---|---|
Task<Units.Temperature> | The latest sensor reading |
Overrides
Meadow.Foundation.SamplingSensorBase<Units.Temperature>.ReadSensor()
SetResolution(Byte)
Set resolution
Declaration
public void SetResolution(byte resolution)
Parameters
Type | Name | Description |
---|---|---|
System.Byte | resolution |
Sleep()
Set the device into a low power sleep state
Declaration
public void Sleep()
Wake()
Wake the the device if it's in sleep state
Declaration
public void Wake()
Events
TemperatureUpdated
Raised when the temeperature value changes
Declaration
public event EventHandler<IChangeResult<Units.Temperature>> TemperatureUpdated
Event Type
Type | Description |
---|---|
EventHandler<IChangeResult<Units.Temperature>> |