diff --git a/code/src/config/all.h b/code/src/config/all.h new file mode 100644 index 00000000..7c49a3e4 --- /dev/null +++ b/code/src/config/all.h @@ -0,0 +1,5 @@ +#include "version.h" +#include "debug.h" +#include "general.h" +#include "hardware.h" +#include "sensors.h" diff --git a/code/src/debug.h b/code/src/config/debug.h similarity index 100% rename from code/src/debug.h rename to code/src/config/debug.h diff --git a/code/src/defaults.h b/code/src/config/general.h similarity index 50% rename from code/src/defaults.h rename to code/src/config/general.h index 7bbfd7be..bf859923 100644 --- a/code/src/defaults.h +++ b/code/src/config/general.h @@ -1,72 +1,19 @@ //------------------------------------------------------------------------------ -// SET BY PLATFORMIO +// GENERAL //------------------------------------------------------------------------------ -//#define DEBUG_PORT Serial - -//#define ESPURNA -//#define SONOFF -//#define SLAMPHER -//#define S20 -//#define NODEMCUV2 - -//#define ENABLE_FAUXMO 1 -//#define ENABLE_NOFUSS 1 -//#define ENABLE_EMON 1 -//#define ENABLE_DHT 1 -//#define ENABLE_RF 1 -//#define ENABLE_POW 1 - -// ----------------------------------------------------------------------------- -// HARDWARE -// ----------------------------------------------------------------------------- - #define SERIAL_BAUDRATE 115200 -#define BUTTON_PIN 0 -#define RELAY_PIN 12 - -#ifdef ESPURNA - #define MANUFACTURER "TINKERMAN" - #define DEVICE "ESPURNA" - #define LED_PIN 13 -#endif - -#ifdef SONOFF - #define MANUFACTURER "ITEAD" - #define DEVICE "SONOFF" - #define LED_PIN 13 -#endif - -#ifdef SONOFF_POW - #define ENABLE_POW 1 - #define MANUFACTURER "ITEAD" - #define DEVICE "SONOFF_POW" - #define LED_PIN 13 -#endif - -#ifdef SLAMPHER - #define MANUFACTURER "ITEAD" - #define DEVICE "SLAMPHER" - #define LED_PIN 13 -#endif - -#ifdef S20 - #define MANUFACTURER "ITEAD" - #define DEVICE "S20" - #define LED_PIN 13 -#endif - -#ifdef NODEMCUV2 - #define MANUFACTURER "NODEMCU" - #define DEVICE "LOLIN" - #define LED_PIN 2 -#endif - #define HOSTNAME DEVICE #define BUFFER_SIZE 1024 #define HEARTBEAT_INTERVAL 300000 #define FS_VERSION_FILE "/fsversion" +//-------------------------------------------------------------------------------- +// RELAY +//-------------------------------------------------------------------------------- + +// 0 means OFF, 1 ON and 2 whatever was before +#define RELAY_MODE 1 // ----------------------------------------------------------------------------- // WIFI & WEB @@ -113,45 +60,8 @@ #define NTP_DAY_LIGHT true #define NTP_UPDATE_INTERVAL 1800 -//-------------------------------------------------------------------------------- -// DRIVERS -//-------------------------------------------------------------------------------- - -// 0 means OFF, 1 ON and 2 whatever was before -#define RELAY_MODE 1 - -#define RF_PIN 14 -#define RF_CHANNEL 31 -#define RF_DEVICE 1 - -#define DHT_PIN 14 -#define DHT_UPDATE_INTERVAL 300000 -#define DHT_TYPE DHT22 -#define DHT_TIMING 11 -#define DHT_TEMPERATURE_TOPIC "/temperature" -#define DHT_HUMIDITY_TOPIC "/humidity" - -#define EMON_CURRENT_PIN 0 -#define EMON_SAMPLES 1000 -#define EMON_INTERVAL 10000 -#define EMON_MEASUREMENTS 6 -#define EMON_ADC_BITS 10 -#define EMON_REFERENCE_VOLTAGE 1.0 -#define EMON_CURRENT_PRECISION 1 -#define EMON_CURRENT_OFFSET 0.25 -#define EMON_MAINS_VOLTAGE 230 -#define EMON_CURRENT_RATIO 180 -#define EMON_POWER_TOPIC "/power" - -#define POW_SEL_PIN 5 -#define POW_CF1_PIN 13 -#define POW_CF_PIN 14 -#define POW_SEL_CURRENT HIGH -#define POW_CURRENT_R 0.001 -#define POW_VOLTAGE_R_UP ( 5 * 470000 ) // Real: 2280k -#define POW_VOLTAGE_R_DOWN ( 1000 ) // Real 1.009k -#define POW_POWER_TOPIC "/power" -#define POW_UPDATE_INTERVAL 10000 -#define POW_REPORT_EVERY 6 +// ----------------------------------------------------------------------------- +// FAUXO +// ----------------------------------------------------------------------------- #define FAUXMO_ENABLED 0 diff --git a/code/src/config/hardware.h b/code/src/config/hardware.h new file mode 100644 index 00000000..1c0e173f --- /dev/null +++ b/code/src/config/hardware.h @@ -0,0 +1,76 @@ +// ----------------------------------------------------------------------------- +// NODEMCUv2 development board +// ----------------------------------------------------------------------------- + +#if defined(NODEMCUV2) + + #define MANUFACTURER "NODEMCU" + #define DEVICE "LOLIN" + #define BUTTON_PIN 0 + #define RELAY_PIN 12 + #define LED_PIN 2 + +// ----------------------------------------------------------------------------- +// Itead Studio boards +// ----------------------------------------------------------------------------- + +#elif defined(SONOFF) + + #define MANUFACTURER "ITEAD" + #define DEVICE "SONOFF" + #define BUTTON_PIN 0 + #define RELAY_PIN 12 + #define LED_PIN 13 + +#elif defined(SONOFF_TH) + + #define MANUFACTURER "ITEAD" + #define DEVICE "SONOFF_TH" + #define BUTTON_PIN 0 + #define RELAY_PIN 12 + #define LED_PIN 13 + +#elif defined(SONOFF_POW) + + #define MANUFACTURER "ITEAD" + #define DEVICE "SONOFF_POW" + #define BUTTON_PIN 0 + #define RELAY_PIN 12 + #define LED_PIN 15 + #define ENABLE_POW 1 + +#elif defined(SLAMPHER) + + #define MANUFACTURER "ITEAD" + #define DEVICE "SLAMPHER" + #define BUTTON_PIN 0 + #define RELAY_PIN 12 + #define LED_PIN 13 + +#elif defined(S20) + + #define MANUFACTURER "ITEAD" + #define DEVICE "S20" + #define BUTTON_PIN 0 + #define RELAY_PIN 12 + #define LED_PIN 13 + +// ----------------------------------------------------------------------------- +// ESPurna board (still beta) +// ----------------------------------------------------------------------------- + +#elif defined(ESPURNA) + + #define MANUFACTURER "TINKERMAN" + #define DEVICE "ESPURNA" + #define BUTTON_PIN 0 + #define RELAY_PIN 12 + #define LED_PIN 13 + +// ----------------------------------------------------------------------------- +// Unknown hardware +// ----------------------------------------------------------------------------- + +#else + #error "UNSUPPORTED HARDWARE!" +#endif diff --git a/code/src/config/sensors.h b/code/src/config/sensors.h new file mode 100644 index 00000000..4f11c0aa --- /dev/null +++ b/code/src/config/sensors.h @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------------- +// Custom RF module +// Check http://tinkerman.cat/adding-rf-to-a-non-rf-itead-sonoff/ +// Enable support by passing ENABLE_RF=1 build flag +//-------------------------------------------------------------------------------- + +#define RF_PIN 14 +#define RF_CHANNEL 31 +#define RF_DEVICE 1 + +//-------------------------------------------------------------------------------- +// DHTXX temperature/humidity sensor +// Enable support by passing ENABLE_DHT=1 build flag +//-------------------------------------------------------------------------------- + +#define DHT_PIN 14 +#define DHT_UPDATE_INTERVAL 300000 +#define DHT_TYPE DHT22 +#define DHT_TIMING 11 +#define DHT_TEMPERATURE_TOPIC "/temperature" +#define DHT_HUMIDITY_TOPIC "/humidity" + +//-------------------------------------------------------------------------------- +// Custom current sensor +// Check http://tinkerman.cat/your-laundry-is-done/ +// Enable support by passing ENABLE_EMON=1 build flag +//-------------------------------------------------------------------------------- + +#define EMON_CURRENT_PIN 0 +#define EMON_SAMPLES 1000 +#define EMON_INTERVAL 10000 +#define EMON_MEASUREMENTS 6 +#define EMON_ADC_BITS 10 +#define EMON_REFERENCE_VOLTAGE 1.0 +#define EMON_CURRENT_PRECISION 1 +#define EMON_CURRENT_OFFSET 0.25 +#define EMON_MAINS_VOLTAGE 230 +#define EMON_CURRENT_RATIO 180 +#define EMON_POWER_TOPIC "/power" + +//-------------------------------------------------------------------------------- +// HLW8012 power sensor (Sonoff POW) +// Enable support by passing ENABLE_POW=1 build flag +// Enabled by default when selecting SONOFF_POW hardware +//-------------------------------------------------------------------------------- + +#define POW_SEL_PIN 5 +#define POW_CF1_PIN 13 +#define POW_CF_PIN 14 +#define POW_SEL_CURRENT HIGH +#define POW_CURRENT_R 0.001 +#define POW_VOLTAGE_R_UP ( 5 * 470000 ) // Real: 2280k +#define POW_VOLTAGE_R_DOWN ( 1000 ) // Real 1.009k +#define POW_POWER_TOPIC "/power" +#define POW_UPDATE_INTERVAL 10000 +#define POW_REPORT_EVERY 6 diff --git a/code/src/version.h b/code/src/config/version.h similarity index 79% rename from code/src/version.h rename to code/src/config/version.h index 5e910f49..b434af89 100644 --- a/code/src/version.h +++ b/code/src/config/version.h @@ -1,4 +1,4 @@ #define APP_NAME "Espurna" -#define APP_VERSION "1.0.2" +#define APP_VERSION "1.0.3" #define APP_AUTHOR "xose.perez@gmail.com" #define APP_WEBSITE "http://tinkerman.cat" diff --git a/code/src/main.ino b/code/src/main.ino index be5a5d48..b8b6a066 100644 --- a/code/src/main.ino +++ b/code/src/main.ino @@ -19,9 +19,7 @@ along with this program. If not, see . */ #include -#include "defaults.h" -#include "version.h" -#include "debug.h" +#include "config/all.h" // ----------------------------------------------------------------------------- // PROTOTYPES