muwerk mupplet Sensor Library
muwerk applets; mupplets: functional units that support specific hardware or reusable applications for sensors
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ustd::RainAD Class Reference

mupplet-sensor analog, digital rain sensor More...

#include <mup_rain_ad.h>

Public Member Functions

 RainAD (String name, uint8_t analogPort, uint8_t digitalPort, FilterMode filterMode=FilterMode::MEDIUM)
 
double getUnitRain ()
 
void begin (Scheduler *_pSched, uint32_t _pollRateMs=2000)
 

Detailed Description

mupplet-sensor analog, digital rain sensor

The rain_ad mupplet measures rain using a simple analog and digital MH-AD rain sensor (rain detector with analog and digital output)

Messages sent by rain_ad mupplet:

topic message body comment
<mupplet-name>/sensor/rain ON or OFF state of digital rain sensor
<mupplet-name>/sensor/unitrain normalized rain [0.0-1.0] Float value encoded as string
<mupplet-name>/sensor/mode FAST, MEDIUM, or LONGTERM Integration time for rain values

Messages received by rain_ad mupplet:

topic message body comment
<mupplet-name>/sensor/rain/get - Causes current value to be sent with.
<mupplet-name>/sensor/unitrain/get - Causes current value to be sent with.
<mupplet-name>/sensor/mode/get - Returns filterMode: FAST, MEDIUM, or LONGTERM
<mupplet-name>/sensor/mode/set FAST, MEDIUM, or LONGTERM Set integration time for rain values

Hardware: RainAD, 10kΩ resistor

Sample code

#define __ESP__ 1
#include "scheduler.h"
#include "mup_rain_ad.h"
ustd::Scheduler sched;
ustd::rainAD RainAD("myRainAD",A0,D2);
void task0(String topic, String msg, String originator) {
if (topic == "myRainAD/sensor/unitrain") {
Serial.print("rain: ");
Serial.prinln(msg); // String float [0.0, ..., 1.0]
}
}
void setup() {
RainAD.begin(&sched);
}
mupplet-sensor analog, digital rain sensor
Definition: mup_rain_ad.h:60

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!

Constructor & Destructor Documentation

◆ RainAD()

ustd::RainAD::RainAD ( String  name,
uint8_t  analogPort,
uint8_t  digitalPort,
FilterMode  filterMode = FilterMode::MEDIUM 
)
inline

Instantiate an RainAD sensor mupplet

Parameters
nameName used for pub/sub messages
analogPortGPIO port with A/D converter capabilities.
digitalPortGPIO port for digital rain input
filterModeFAST, MEDIUM or LONGTERM filtering of sensor values of analog port

Member Function Documentation

◆ begin()

void ustd::RainAD::begin ( Scheduler *  _pSched,
uint32_t  _pollRateMs = 2000 
)
inline

Start processing of A/D input from RainAD

◆ getUnitRain()

double ustd::RainAD::getUnitRain ( )
inline

Get current unit illumance

Returns
Unit-rain [0.0(dark) - 1.0(max. rain)]

The documentation for this class was generated from the following file: