Remarks
WaterSensor | |
---|---|
Status | |
Source code | GitHub |
NuGet package |
Code Example
WaterSensor waterSensor;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
waterSensor = new WaterSensor(Device.Pins.A01);
waterSensor.Subscribe(WaterSensor.CreateObserver(
h => Resolver.Log.Info($"Water level changed by 10 mm; new: {h.New}, old: {h.Old}"),
null //e => { return Math.Abs(e.Delta) > 0.1f; }
));
waterSensor.Updated += (object sender, IChangeResult<float> e) =>
{
Resolver.Log.Info($"Level Changed, level: {e.New}cm");
};
return Task.CompletedTask;
}
public override async Task Run()
{
var conditions = await waterSensor.Read();
Resolver.Log.Info($"Initial level: {conditions}");
waterSensor.StartUpdating(TimeSpan.FromSeconds(5));
}
Sample project(s) available on GitHub
Wiring Example
WaterSensor | Meadow Pin |
---|---|
GND | GND |
VCC | 3.3V |
RX | D01 |
TX | D00 |
Syntax
public class WaterSensor : AnalogWaterLevel, IObservable<IChangeResult<float>>, ISamplingSensor<float>, ISensor<float>
Constructors
WaterSensor(IAnalogInputPort, Calibration)
Declaration
public WaterSensor(IAnalogInputPort analogInputPort, AnalogWaterLevel.Calibration calibration = null)
Parameters
Type | Name | Description |
---|---|---|
IAnalogInputPort | analogInputPort | |
AnalogWaterLevel.Calibration | calibration |
Remarks
WaterSensor | |
---|---|
Status | |
Source code | GitHub |
NuGet package |
Code Example
WaterSensor waterSensor;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
waterSensor = new WaterSensor(Device.Pins.A01);
waterSensor.Subscribe(WaterSensor.CreateObserver(
h => Resolver.Log.Info($"Water level changed by 10 mm; new: {h.New}, old: {h.Old}"),
null //e => { return Math.Abs(e.Delta) > 0.1f; }
));
waterSensor.Updated += (object sender, IChangeResult<float> e) =>
{
Resolver.Log.Info($"Level Changed, level: {e.New}cm");
};
return Task.CompletedTask;
}
public override async Task Run()
{
var conditions = await waterSensor.Read();
Resolver.Log.Info($"Initial level: {conditions}");
waterSensor.StartUpdating(TimeSpan.FromSeconds(5));
}
Sample project(s) available on GitHub
Wiring Example
WaterSensor | Meadow Pin |
---|---|
GND | GND |
VCC | 3.3V |
RX | D01 |
TX | D00 |
WaterSensor(IPin, Calibration, TimeSpan?)
Declaration
public WaterSensor(IPin analogPin, AnalogWaterLevel.Calibration calibration = null, TimeSpan? updateInterval = null)
Parameters
Type | Name | Description |
---|---|---|
IPin | analogPin | |
AnalogWaterLevel.Calibration | calibration | |
TimeSpan? | updateInterval |
Remarks
WaterSensor | |
---|---|
Status | |
Source code | GitHub |
NuGet package |
Code Example
WaterSensor waterSensor;
public override Task Initialize()
{
Resolver.Log.Info("Initialize...");
waterSensor = new WaterSensor(Device.Pins.A01);
waterSensor.Subscribe(WaterSensor.CreateObserver(
h => Resolver.Log.Info($"Water level changed by 10 mm; new: {h.New}, old: {h.Old}"),
null //e => { return Math.Abs(e.Delta) > 0.1f; }
));
waterSensor.Updated += (object sender, IChangeResult<float> e) =>
{
Resolver.Log.Info($"Level Changed, level: {e.New}cm");
};
return Task.CompletedTask;
}
public override async Task Run()
{
var conditions = await waterSensor.Read();
Resolver.Log.Info($"Initial level: {conditions}");
waterSensor.StartUpdating(TimeSpan.FromSeconds(5));
}
Sample project(s) available on GitHub
Wiring Example
WaterSensor | Meadow Pin |
---|---|
GND | GND |
VCC | 3.3V |
RX | D01 |
TX | D00 |