|
esp8266_web_settings beta
|
A thermistor analog device. More...
#include <grmcdorman/device/ThermistorSensor.h>
Public Member Functions | |
| ThermistorSensor (float thermalIndex, float t1Kelvin) | |
| Construct a new ThermistorSensor object. More... | |
| DynamicJsonDocument | as_json () const override |
| Get the values, as a JSON document. More... | |
| virtual String | get_status () const |
| Get a status report. More... | |
Public Member Functions inherited from grmcdorman::device::AbstractAnalog | |
| AbstractAnalog (const __FlashStringHelper *device_name, const __FlashStringHelper *device_identifier, float defaultScale=1.0f, float defaultOffset=0.0f, bool invert=false) | |
| Construct a new Basic Analog object. More... | |
| void | setup () override |
| Setup the device. More... | |
| void | loop () override |
| Main loop. More... | |
| bool | publish (DynamicJsonDocument &json) const override |
| Publish the value and attributes. More... | |
| float | get_last_reading () const |
| Last computed reading. More... | |
| float | raw_value () const |
| Last raw value (no scale or offset applied). More... | |
| float | get_current_average () const |
| Get the last average reading. More... | |
Public Member Functions inherited from grmcdorman::device::Device | |
| Device (const __FlashStringHelper *device_name, const __FlashStringHelper *device_identifier) | |
| Construct a new Device object. More... | |
| virtual | ~Device () |
| Destroy the Device object. | |
| const __FlashStringHelper * | name () const |
| Get the device name; used for UI names and IDs. More... | |
| virtual const __FlashStringHelper * | identifier () const |
| Get the device identifier. More... | |
| virtual void | set_defaults () |
| Set defaults, if necessary. More... | |
| virtual void | set_devices (const std::vector< Device * > &list) |
| For devices that support it, add devices to manage. More... | |
| const definition_list_t & | get_definitions () const |
| Get the definitions list. More... | |
| const ::grmcdorman::SettingInterface::settings_list_t & | get_settings () const |
| Get the settings list. More... | |
| bool | is_enabled () const |
| Get whether this device is enabled. More... | |
| void | set_enabled (bool state) |
| Set whether this device is enabled. More... | |
| void | set (const String &setting, const String &value) |
| If possible, set a setting's value. More... | |
| String | get (const String &setting) const |
| Get a setting value, as a string. More... | |
| virtual bool | get_is_published () const |
| Get whether the device readings have been published. More... | |
| void | set_is_published () |
| Set the device as having published readings. More... | |
| void | clear_is_published () |
| Set the device as not having published readings. | |
Protected Member Functions | |
| virtual float | transform_raw_reading (int reading) override |
| Transform the raw reading to a temperature. More... | |
Protected Member Functions inherited from grmcdorman::device::Device | |
| void | initialize (definition_list_t &&definition_list, ::grmcdorman::SettingInterface::settings_list_t &&setting_list) |
| Initialize the definition and setting lists. More... | |
Protected Attributes | |
| float | inverse_thermal_index |
| The inverse of thermal index of the thermistor. | |
| float | inverse_t1 |
| The inverse of the T1 temperature of the thermistor. | |
| NoteSetting | title |
| Device tab title. | |
| InfoSettingHtml | device_status |
| Last update. | |
Protected Attributes inherited from grmcdorman::device::AbstractAnalog | |
| FloatSetting | scale |
| Offset. | |
| FloatSetting | offset |
| Scaling. | |
| ToggleSetting | invertReading |
| Whether to invert the reading. | |
| UnsignedIntegerSetting | readInterval |
| How often to request a reading. | |
| uint32_t | last_read_millis = 0 |
| Timestamp of last read. | |
| Accumulator< float, 5 > | sensor_reading |
| Reading. | |
Protected Attributes inherited from grmcdorman::device::Device | |
| ToggleSetting | enabled |
| Whether this device is enabled. | |
Additional Inherited Members | |
Public Types inherited from grmcdorman::device::Device | |
| typedef std::vector< const Definition * > | definition_list_t |
| The type containing a list of Definition objects. | |
Static Public Member Functions inherited from grmcdorman::device::Device | |
| static void | set_system_identifiers (const __FlashStringHelper *firmware_name_value, const String &system_identifier_value=String()) |
| Set the system identifier values. More... | |
| static const __FlashStringHelper * | get_firmware_name () |
| Get the firmware prefix. More... | |
| static const String & | get_system_identifier () |
| Get the system identifier. More... | |
Static Public Attributes inherited from grmcdorman::device::Device | |
| static constexpr int | D0 = 16 |
| D0 is GPIO16, HIGH at boot, not suitable for most usages. | |
| static constexpr int | D1 = 5 |
| D1 is GPIO5; often used as SCL. | |
| static constexpr int | D2 = 4 |
| D2 is GPIO4; often used as SDA. | |
| static constexpr int | D3 = 0 |
| D3 is GPIO0; pulled up; connected to FLASH button; not for input. | |
| static constexpr int | D4 = 2 |
| D4 is GPIO2; pulled up; HIGH at boot; on-board LED; not for input. | |
| static constexpr int | D5 = 14 |
| D5 is GPIO14; SPI (SCLK) | |
| static constexpr int | D6 = 12 |
| D6 is GPIO12; SPI (MISO) | |
| static constexpr int | D7 = 13 |
| D7 is GPIO13; SPI (MOSI) | |
| static constexpr int | D8 = 15 |
| D8 is GPIO15; pulled to GND; SPI (CS); not recommended. | |
| static const ExclusiveOptionSetting::names_list_t | data_line_names { FPSTR("D1"), FPSTR("D2"), FPSTR("D3"), FPSTR("D5"), FPSTR("D6"), FPSTR("D7")} |
Names for each configurable data line; see settingsMap. | |
Static Protected Member Functions inherited from grmcdorman::device::Device | |
| static int | index_to_dataline (int index) |
| Convert a data line index to a ESP data line. More... | |
| static int | dataline_to_index (int dataLine) |
| Convert a data line to an index. More... | |
Static Protected Attributes inherited from grmcdorman::device::AbstractAnalog | |
| constexpr static uint32_t | statusReadInterval = (30 / 5) * 1000 |
| Default read interval. Chosen such that there should be 5 readings per 30 seconds. | |
Static Protected Attributes inherited from grmcdorman::device::Device | |
| static const int | settingsMap [6] |
| The set of data lines usable for communication. More... | |
A thermistor analog device.
This device reads A0 and transforms the reading according to the standard thermistor properties to get a reading in degrees Celcius.
Scaling can be applied to the reading after conversion to Celcius; this can be used to transform to other scales, such as Fahrenheit, or to correct inaccuracies. To convert to Fahrenheit, set the scale to 1.8 (9/5) and the offset to +32.
The calculations make the following assumptions:
In other words, if your ESP8266 reads 1023 or 1024 for +3.3V, and your thermistor has a nominal resistance of 10K ohms at about 20 Celcius, then connect a 10K resistor in series with the thermistor between +3.3V and GND, and connect A0 to the junction of the thermistor and the resistor. In rough ASCII art:
[3.3V]------[10K resistor]------[thermistor]------[GND]
|
A0
If your ADC does not have a maximum of 3.3V, then use a voltage divider to supply the ADC maximum - probably 1V - to the resistor.
Thermistors have three parameters:
For example, I have a thermistor with B of 3950, R of 10k, and T1 of 25C, or (273.15+25)=298.15K.
Only the thermal index (beta) and T1 value are needed.
When publishing to MQTT, only the last reading is published, not the average reading over the interval.
| grmcdorman::device::ThermistorSensor::ThermistorSensor | ( | float | thermalIndex, |
| float | t1Kelvin | ||
| ) |
Construct a new ThermistorSensor object.
| thermalIndex | The thermal index of the thermistor, e.g. 3950. |
| t1Kelvin | The T1 temperature of the thermistor in Kelvin, e.g. 298.15 (25C). |
|
overridevirtual |
Get the values, as a JSON document.
The structure is identical to the document created inside publish.
Reimplemented from grmcdorman::device::AbstractAnalog.
|
virtual |
Get a status report.
This is also used for the device_status info message, with the exception of various disabled states.
Reimplemented from grmcdorman::device::Device.
|
overrideprotectedvirtual |
Transform the raw reading to a temperature.
The parameters from the constructor, and the assumptions about the wiring, are used to compute the temperature.
| reading | Raw reading. |
Implements grmcdorman::device::AbstractAnalog.