SensESP 3.0.1
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::AnalogInput Class Reference

Sensor for reading the MCU analog input pins. More...

#include <sensesp/sensors/analog_input.h>

Inheritance diagram for sensesp::AnalogInput:
[legend]

Public Member Functions

 AnalogInput (uint8_t pin=A0, unsigned int read_delay=200, const String &config_path="", float output_scale=1024.)
 
virtual bool to_json (JsonObject &root) override
 
virtual bool from_json (const JsonObject &config) override
 
- Public Member Functions inherited from sensesp::Sensor< T >
 Sensor (String config_path)
 
- Public Member Functions inherited from sensesp::SensorConfig
 SensorConfig (const String &config_path)
 
- Public Member Functions inherited from sensesp::Observable
 Observable ()
 
 Observable (Observable &&other)
 Move constructor.
 
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from sensesp::FileSystemSaveable
 FileSystemSaveable (const String &config_path)
 
virtual bool load () override
 Load and populate the object from a persistent storage.
 
virtual bool save () override
 Save the object to a persistent storage.
 
virtual bool clear () override
 Delete the data from a persistent storage.
 
bool find_config_file (const String &config_path, String &filename)
 
- Public Member Functions inherited from sensesp::Saveable
 Saveable (const String &config_path)
 
virtual bool refresh ()
 Refresh the object. This may or may not access the persistent storage but is not expected to overwrite the object's state.
 
const String & get_config_path () const
 
- Public Member Functions inherited from sensesp::Serializable
- Public Member Functions inherited from sensesp::ValueProducer< T >
 ValueProducer ()
 
 ValueProducer (const T &initial_value)
 
virtual const T & get () const
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, std::shared_ptr< VConsumer > >::type connect_to (std::shared_ptr< VConsumer > consumer)
 Connect a producer to a transform with a different input type.
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer *consumer)
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer &consumer)
 
void emit (const T &new_value)
 

Protected Member Functions

void update ()
 

Protected Attributes

uint8_t pin {}
 
unsigned int read_delay
 
float output_scale
 
std::unique_ptr< BaseAnalogReaderanalog_reader_ {}
 
- Protected Attributes inherited from sensesp::Saveable
const String config_path_
 
- Protected Attributes inherited from sensesp::ValueProducer< T >
output_
 

Detailed Description

Sensor for reading the MCU analog input pins.

Read an analog input pin and return the result scaled onto a given range. Note that the ADCs in ESP32 are quite nonlinear and noisy and unlikely to give very accurate results. For accurate ADC results, SensESP supports the ADS1015 and ADS1115 ADC's.

Parameters
[in]pinThe GPIO pin to read. On ESP32, at the moment only ADC channel 1 (pins 32..39) is supported because ADC2 clashes with Wi-Fi.
[in]read_delayTime delay between consecutive readings, in ms
[in]config_pathConfiguration path for the sensor
[in]output_scaleThe scale of the converted input value that AnalogInput produces. The maximum raw analog value returned by the ADC on different platforms varies, but AnalogInput takes that into account by converting them to a number between zero and 'output_scale'. This allows the same code to run on both platforms. The default value for 'output_scale' is 1024, which means output will be from 0 to 1023. If you want your output to be on a different scale, use this parameter to indicate the X in the 0 to X scale. For example, if you want your output to be expressed as a percentage (0 to 100), make this parameter be 100. If you want your output to be the original voltage read by the AnalogIn pin, make this parameter be the maximum voltage that can go into the pin (probably 3.3). If you want your output to be the original voltage that was intput into a physical voltage divider circuit before being read by the AnalogIn pin, make this parameter be the maximum voltage that you would send into the voltage divider circuit.

Definition at line 43 of file analog_input.h.

Constructor & Destructor Documentation

◆ AnalogInput()

sensesp::AnalogInput::AnalogInput ( uint8_t pin = A0,
unsigned int read_delay = 200,
const String & config_path = "",
float output_scale = 1024. )

Definition at line 10 of file analog_input.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ from_json()

bool sensesp::AnalogInput::from_json ( const JsonObject & root)
overridevirtual

Deserializes the current object data from a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 31 of file analog_input.cpp.

◆ to_json()

bool sensesp::AnalogInput::to_json ( JsonObject & root)
overridevirtual

Serializes the current object data into a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 26 of file analog_input.cpp.

◆ update()

void sensesp::AnalogInput::update ( )
protected

Definition at line 24 of file analog_input.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ analog_reader_

std::unique_ptr<BaseAnalogReader> sensesp::AnalogInput::analog_reader_ {}
protected

Definition at line 55 of file analog_input.h.

◆ output_scale

float sensesp::AnalogInput::output_scale
protected

Definition at line 54 of file analog_input.h.

◆ pin

uint8_t sensesp::AnalogInput::pin {}
protected

Definition at line 52 of file analog_input.h.

◆ read_delay

unsigned int sensesp::AnalogInput::read_delay
protected

Definition at line 53 of file analog_input.h.


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