muwerk mupplet Sensor Library
muwerk applets; mupplets: functional units that support specific hardware or reusable applications for sensors
|
mupplet-sensor analog sensor sensor More...
#include <mup_analog_sensor.h>
Public Member Functions | |
AnalogSensor (String name, uint8_t analogPort, FilterMode filterMode=FilterMode::MEDIUM, String topicName="") | |
double | getUnitAnalogSensor () |
void | begin (Scheduler *_pSched, uint32_t _pollRateMs=2000, double _linTransA=1.0, double _linTransB=0.0) |
mupplet-sensor analog sensor sensor
The analog_sensor mupplet measures analog sensor using a simple analog sensor sensor
topic | message body | comment |
---|---|---|
<mupplet-name>/sensor/unitanalogsensor | normalized analog sensor [0.0..1.0] or [b..a+b] | Float value encoded as string, rescaled if a non-default linear transformation is given at begin() |
<mupplet-name>/sensor/<topicName> | normalized analog sensor [0.0..1.0] or [b..a+b] | Float value encoded as string, topicName is an optional parameter of the object initialization |
<mupplet-name>/sensor/mode | FAST , MEDIUM , or LONGTERM | Integration time for analog sensor values |
topic | message body | comment |
---|---|---|
<mupplet-name>/sensor/unitanalogsensor/get | - | Causes current value to be sent. |
<mupplet-name>/sensor/<topicName>/get | - | Causes current value to be sent, if an additional topicName was given at object creation. |
<mupplet-name>/sensor/mode/get | - | Returns filterMode: FAST , MEDIUM , or LONGTERM |
<mupplet-name>/sensor/mode/set | FAST , MEDIUM , or LONGTERM | Set integration time for analog sensor values |
Hardware: AnalogSensor, 10kΩ resistor
Note: For ESP32 make sure to use a port connected to ADC #1, since ADC #2 conflicts with Wifi and ports connected to ADC #2 cannot be used concurrently with Wifi!
|
inline |
Instantiate an AnalogSensor sensor mupplet
name | Name used for pub/sub messages |
analogPort | GPIO port with A/D converter capabilities. |
filterMode | FAST, MEDIUM or LONGTERM filtering of sensor values of analog port |
topicName | optional additional mqtt topic name, generating additional mqtt messages |
|
inline |
Start processing of A/D input from AnalogSensor
The analog sensor mupplet by default measures the analog port, and maps values always into the range [0..1]. Optionally, a linear transformation can be applied to map the range value into a different range: if a value v is measured, v is by default [0..1] and now a * v + b is applied. With the defaults of a=1, b=0, no change is made by the transformation, since 1*v+0 = v. By changing _linTransA (for a) and/or _linTransB (for b), the output range can be rescaled linearily.
Note: if you are not using the linear transformation feature, make sure that _linTransA is set to 1.0 and _linTransB is set to 0.0!
_pSched | pointer to muwerk scheduler object |
_pollRateMs | Optional measurement pollrate in ms, default 2000, a measurement every 2 secs. |
_linTransA | Optional transformation factor a, default 1.0, values v read from analog sensor are transformed with a*v+b. |
_linTransB | Optional transformation factor b, default 0.0, values v read from analog sensor are transformed with a*v+b. |
|
inline |
Get current analog sensor value