From b70a5aaf8c36832001cfa9ee4cdbeb5e5e20d9e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Tue, 19 Dec 2017 16:14:08 +0100 Subject: [PATCH] Some clean-up --- code/espurna/config/arduino.h | 21 ++++++++-- code/espurna/config/hardware.h | 6 +-- code/espurna/config/prototypes.h | 2 +- code/espurna/config/sensors.h | 70 +++++++++++++++----------------- code/espurna/espurna.ino | 51 +++++++++++++++++------ code/espurna/sensor.ino | 15 ++++--- 6 files changed, 100 insertions(+), 65 deletions(-) diff --git a/code/espurna/config/arduino.h b/code/espurna/config/arduino.h index e54f6d5c..6a4230a2 100644 --- a/code/espurna/config/arduino.h +++ b/code/espurna/config/arduino.h @@ -60,14 +60,10 @@ //-------------------------------------------------------------------------------- //#define ALEXA_SUPPORT 0 -//#define ANALOG_SUPPORT 1 -//#define COUNTER_SUPPORT 1 //#define DEBUG_SERIAL_SUPPORT 0 //#define DEBUG_TELNET_SUPPORT 0 //#define DEBUG_UDP_SUPPORT 1 -//#define DHT_SUPPORT 1 //#define DOMOTICZ_SUPPORT 0 -//#define DS18B20_SUPPORT 1 //#define HOMEASSISTANT_SUPPORT 0 //#define I2C_SUPPORT 1 //#define INFLUXDB_SUPPORT 0 @@ -81,3 +77,20 @@ //#define TELNET_SUPPORT 0 //#define TERMINAL_SUPPORT 0 //#define WEB_SUPPORT 0 + +//-------------------------------------------------------------------------------- +// Sensors (values below are non-default values) +//-------------------------------------------------------------------------------- + +//#define ANALOG_SUPPORT 1 +//#define BMX280_SUPPORT 1 +//#define DALLAS_SUPPORT 1 +//#define DHT_SUPPORT 1 +//#define DIGITAL_SUPPORT 1 +//#define EMON_ADC121_SUPPORT 1 +//#define EMON_ADS1X15_SUPPORT 1 +//#define EMON_ANALOG_SUPPORT 1 +//#define EVENTS_SUPPORT 1 +//#define MHZ19_SUPPORT 1 +//#define PMSX003_SUPPORT 1 +//#define SI7021_SUPPORT 1 diff --git a/code/espurna/config/hardware.h b/code/espurna/config/hardware.h index 6cf83532..0cb2880f 100644 --- a/code/espurna/config/hardware.h +++ b/code/espurna/config/hardware.h @@ -1076,9 +1076,9 @@ #define RELAY2_TYPE RELAY_TYPE_NORMAL // DB18B20 - #define DS18B20_SUPPORT 1 - #define DS18B20_PIN 2 - #define DS18B20_UPDATE_INTERVAL 5000 + #define DALLAS_SUPPORT 1 + #define DALLAS_PIN 2 + #define DALLAS_UPDATE_INTERVAL 5000 #define TEMPERATURE_MIN_CHANGE 1.0 // ----------------------------------------------------------------------------- diff --git a/code/espurna/config/prototypes.h b/code/espurna/config/prototypes.h index 3b9a4219..f56c4415 100644 --- a/code/espurna/config/prototypes.h +++ b/code/espurna/config/prototypes.h @@ -75,7 +75,7 @@ template bool idbSend(const char * topic, unsigned char id, T payloa // Sensors // ----------------------------------------------------------------------------- #include "sensors/BaseSensor.h" -#if DS18B20_SUPPORT +#if DALLAS_SUPPORT #include #endif #if PMSX003_SUPPORT diff --git a/code/espurna/config/sensors.h b/code/espurna/config/sensors.h index 10d09858..89926fc7 100644 --- a/code/espurna/config/sensors.h +++ b/code/espurna/config/sensors.h @@ -7,10 +7,21 @@ #define SENSOR_USE_INDEX 0 // Use the index in topic (i.e. temperature/0) // even if just one sensor (0 for backwards compatibility) +#ifndef SENSOR_TEMPERATURE_UNITS #define SENSOR_TEMPERATURE_UNITS TMP_CELSIUS // Temperature units (TMP_CELSIUS | TMP_FAHRENHEIT) +#endif + +#ifndef SENSOR_TEMPERATURE_CORRECTION #define SENSOR_TEMPERATURE_CORRECTION 0.0 // Offset correction +#endif + +#ifndef TEMPERATURE_MIN_CHANGE #define TEMPERATURE_MIN_CHANGE 0.0 // Minimum temperature change to report +#endif + +#ifndef HUMIDITY_MIN_CHANGE #define HUMIDITY_MIN_CHANGE 0 // Minimum humidity change to report +#endif #define SENSOR_TEMPERATURE_DECIMALS 1 #define SENSOR_HUMIDITY_DECIMALS 0 @@ -68,13 +79,6 @@ #define DHT_PULLUP 0 #endif -#ifndef DHT_UPDATE_INTERVAL -#define DHT_UPDATE_INTERVAL 60000 -#endif - -#define DHT_TEMPERATURE_TOPIC "temperature" -#define DHT_HUMIDITY_TOPIC "humidity" - #define HUMIDITY_NORMAL 0 #define HUMIDITY_COMFORTABLE 1 #define HUMIDITY_DRY 2 @@ -113,30 +117,22 @@ //-------------------------------------------------------------------------------- // DS18B20 temperature sensor -// Enable support by passing DS18B20_SUPPORT=1 build flag +// Enable support by passing DALLAS_SUPPORT=1 build flag //-------------------------------------------------------------------------------- -#ifndef DS18B20_SUPPORT -#define DS18B20_SUPPORT 0 -#endif - -#ifndef DS18B20_PIN -#define DS18B20_PIN 13 -#endif - -#ifndef DS18B20_PULLUP -#define DS18B20_PULLUP 1 +#ifndef DALLAS_SUPPORT +#define DALLAS_SUPPORT 0 #endif -#ifndef DS18B20_UPDATE_INTERVAL -#define DS18B20_UPDATE_INTERVAL 60000 +#ifndef DALLAS_PIN +#define DALLAS_PIN 13 #endif -#ifndef DS18B20_TEMPERATURE_TOPIC -#define DS18B20_TEMPERATURE_TOPIC "temperature" +#ifndef DALLAS_PULLUP +#define DALLAS_PULLUP 1 #endif -#define DS18B20_RESOLUTION 9 +#define DALLAS_RESOLUTION 9 // Not used atm //-------------------------------------------------------------------------------- // Digital sensor @@ -184,38 +180,38 @@ //-------------------------------------------------------------------------------- // Counter sensor -// Enable support by passing COUNTER_SUPPORT=1 build flag +// Enable support by passing EVENTS_SUPPORT=1 build flag //-------------------------------------------------------------------------------- -#ifndef COUNTER_SUPPORT -#define COUNTER_SUPPORT 0 // Do not build with counter support by default +#ifndef EVENTS_SUPPORT +#define EVENTS_SUPPORT 0 // Do not build with counter support by default #endif -#ifndef COUNTER_PIN -#define COUNTER_PIN 2 // GPIO to monitor +#ifndef EVENTS_PIN +#define EVENTS_PIN 2 // GPIO to monitor #endif -#ifndef COUNTER_PIN_MODE -#define COUNTER_PIN_MODE INPUT // INPUT, INPUT_PULLUP +#ifndef EVENTS_PIN_MODE +#define EVENTS_PIN_MODE INPUT // INPUT, INPUT_PULLUP #endif -#ifndef COUNTER_INTERRUPT_MODE -#define COUNTER_INTERRUPT_MODE RISING // RISING, FALLING, BOTH +#ifndef EVENTS_INTERRUPT_MODE +#define EVENTS_INTERRUPT_MODE RISING // RISING, FALLING, BOTH #endif -#define COUNTER_DEBOUNCE 50 // Do not register events within less than 10 millis +#define EVENTS_DEBOUNCE 50 // Do not register events within less than 10 millis //-------------------------------------------------------------------------------- -// Energy Monitor +// Energy Monitor general settings //-------------------------------------------------------------------------------- #define EMON_MAX_SAMPLES 1000 // Max number of samples to get #define EMON_MAX_TIME 250 // Max time in ms to sample #define EMON_FILTER_SPEED 512 // Mobile average filter speed #define EMON_MAINS_VOLTAGE 230 // Mains voltage -#define EMON_REPORT_CURRENT 0 // Calculate current -#define EMON_REPORT_POWER 1 // Calculate power -#define EMON_REPORT_ENERGY 1 // Calculate energy +#define EMON_REPORT_CURRENT 0 // Report current +#define EMON_REPORT_POWER 1 // Report power +#define EMON_REPORT_ENERGY 1 // Report energy //-------------------------------------------------------------------------------- // Energy Monitor based on interval analog GPIO diff --git a/code/espurna/espurna.ino b/code/espurna/espurna.ino index 14d4aa7b..7419a550 100644 --- a/code/espurna/espurna.ino +++ b/code/espurna/espurna.ino @@ -146,12 +146,6 @@ void welcome() { #if ALEXA_SUPPORT DEBUG_MSG_P(PSTR(" ALEXA")); #endif - #if ANALOG_SUPPORT - DEBUG_MSG_P(PSTR(" ANALOG")); - #endif - #if COUNTER_SUPPORT - DEBUG_MSG_P(PSTR(" COUNTER")); - #endif #if DEBUG_SERIAL_SUPPORT DEBUG_MSG_P(PSTR(" DEBUG_SERIAL")); #endif @@ -161,15 +155,9 @@ void welcome() { #if DEBUG_UDP_SUPPORT DEBUG_MSG_P(PSTR(" DEBUG_UDP")); #endif - #if DHT_SUPPORT - DEBUG_MSG_P(PSTR(" DHT")); - #endif #if DOMOTICZ_SUPPORT DEBUG_MSG_P(PSTR(" DOMOTICZ")); #endif - #if DS18B20_SUPPORT - DEBUG_MSG_P(PSTR(" DS18B20")); - #endif #if HOMEASSISTANT_SUPPORT DEBUG_MSG_P(PSTR(" HOMEASSISTANT")); #endif @@ -210,6 +198,45 @@ void welcome() { DEBUG_MSG_P(PSTR(" WEB")); #endif + DEBUG_MSG_P(PSTR("\n[INIT] SENSORS:")); + + #if ANALOG_SUPPORT + DEBUG_MSG_P(PSTR(" ANALOG")); + #endif + #if BMX280_SUPPORT + DEBUG_MSG_P(PSTR(" BMX280")); + #endif + #if DALLAS_SUPPORT + DEBUG_MSG_P(PSTR(" DALLAS")); + #endif + #if DHT_SUPPORT + DEBUG_MSG_P(PSTR(" DHTXX")); + #endif + #if DIGITAL_SUPPORT + DEBUG_MSG_P(PSTR(" DIGITAL")); + #endif + #if EMON_ADC121_SUPPORT + DEBUG_MSG_P(PSTR(" EMON_ADC121")); + #endif + #if EMON_ADS1X15_SUPPORT + DEBUG_MSG_P(PSTR(" EMON_ADX1X15")); + #endif + #if EMON_ANALOG_SUPPORT + DEBUG_MSG_P(PSTR(" EMON_ANALOG")); + #endif + #if EVENTS_SUPPORT + DEBUG_MSG_P(PSTR(" EVENTS")); + #endif + #if MHZ19_SUPPORT + DEBUG_MSG_P(PSTR(" MHZ19")); + #endif + #if PMSX003_SUPPORT + DEBUG_MSG_P(PSTR(" PMSX003")); + #endif + #if SI7021_SUPPORT + DEBUG_MSG_P(PSTR(" SI7021")); + #endif + DEBUG_MSG_P(PSTR("\n\n")); // ------------------------------------------------------------------------- diff --git a/code/espurna/sensor.ino b/code/espurna/sensor.ino index 1492a4a6..b925fcc1 100644 --- a/code/espurna/sensor.ino +++ b/code/espurna/sensor.ino @@ -31,7 +31,6 @@ unsigned char _counts[MAGNITUDE_MAX]; bool _sensor_realtime = API_REAL_TIME_VALUES; unsigned char _sensor_temperature_units = SENSOR_TEMPERATURE_UNITS; double _sensor_temperature_correction = SENSOR_TEMPERATURE_CORRECTION; -unsigned char _sensor_isr = 0xFF; // ----------------------------------------------------------------------------- // Private @@ -193,14 +192,14 @@ void _sensorPost() { // ----------------------------------------------------------------------------- // Interrupts // ----------------------------------------------------------------------------- -#if COUNTER_SUPPORT +#if EVENTS_SUPPORT unsigned char _event_sensor_id = 0; void isrEventSensor() { _sensors[_event_sensor_id]->InterruptHandler(); } -#endif // COUNTER_SUPPORT +#endif // EVENTS_SUPPORT // ----------------------------------------------------------------------------- // Values @@ -240,9 +239,9 @@ void sensorInit() { sensorRegister(new DHTSensor(DHT_PIN, DHT_TYPE, DHT_PULLUP)); #endif - #if DS18B20_SUPPORT + #if DALLAS_SUPPORT #include "sensors/DallasSensor.h" - sensorRegister(new DallasSensor(DS18B20_PIN, SENSOR_READ_INTERVAL, DS18B20_PULLUP)); + sensorRegister(new DallasSensor(DALLAS_PIN, SENSOR_READ_INTERVAL, DALLAS_PULLUP)); #endif #if SI7021_SUPPORT @@ -290,11 +289,11 @@ void sensorInit() { sensorRegister(new MHZ19Sensor(MHZ19_RX_PIN, MHZ19_TX_PIN)); #endif - #if COUNTER_SUPPORT + #if EVENTS_SUPPORT #include "sensors/EventSensor.h" - sensorRegister(new EventSensor(COUNTER_PIN, COUNTER_PIN_MODE, COUNTER_DEBOUNCE)); + sensorRegister(new EventSensor(EVENTS_PIN, EVENTS_PIN_MODE, EVENTS_DEBOUNCE)); _event_sensor_id = sensorCount() - 1; - attachInterrupt(COUNTER_PIN, isrEventSensor, COUNTER_INTERRUPT_MODE); + attachInterrupt(EVENTS_PIN, isrEventSensor, EVENTS_INTERRUPT_MODE); #endif }