181 lines
6.7 KiB
C
181 lines
6.7 KiB
C
/**
|
|
* @file ControllerConfiguration.h
|
|
* @author your name (you@domain.com)
|
|
* @brief
|
|
* @version 0.1
|
|
* @date 2020-05-30
|
|
*
|
|
* @copyright Copyright (c) 2020
|
|
*
|
|
* \mainpage Configuration of the controller
|
|
* @{
|
|
* Describe the used PINs of the controller
|
|
*
|
|
* @subpage Controller
|
|
*
|
|
* @subpage Homie
|
|
*
|
|
* @subpage Configuration
|
|
*
|
|
* There are several modes in the controller
|
|
* \dot
|
|
* digraph Operationmode {
|
|
* ranksep=.75;
|
|
* poweroff [ label="off" ];
|
|
* mode1 [ label="Mode 1 - Sensor only", shape=box, width=2 ];
|
|
* mode2 [ label="Mode 2 - Wifi enabled", shape=box ];
|
|
* mode3 [ label="Mode 3 - Stay alive", shape=box ];
|
|
* mode1 -> mode2 [ label="wakeup reason", fontsize=10 ];
|
|
* mode1 -> mode2 [ label="Time duration", fontsize=10 ];
|
|
* mode2 -> mode3 [ label="Over the Air Update", fontsize=10 ];
|
|
* mode3 -> mode2 [ label="Over the Air Finished", fontsize=10 ];
|
|
* mode3 -> mode2 [ label="Mqtt Command", fontsize=10 ];
|
|
* mode2 -> mode3 [ label="Mqtt Command", fontsize=10 ];
|
|
* poweroff -> mode1 [ label="deep sleep wakeup", fontsize=10 ];
|
|
* mode1 -> poweroff [ label="enter deep sleep", fontsize=10 ];
|
|
* mode2 -> poweroff [ label="Mqtt queue empty", fontsize=10 ];
|
|
* }
|
|
* \enddot
|
|
*
|
|
* Before entering Deep sleep the controller is configured with an wakeup time.
|
|
*
|
|
* @}
|
|
*/
|
|
#ifndef CONTROLLER_CONFIG_H
|
|
#define CONTROLLER_CONFIG_H
|
|
/** \addtogroup GPIO Settings
|
|
* @{
|
|
*/
|
|
#define SENSOR_PLANT0 GPIO_NUM_32 /**< GPIO 32 (ADC1) */
|
|
#define SENSOR_PLANT1 GPIO_NUM_33 /**< GPIO 33 (ADC1) */
|
|
#define SENSOR_PLANT2 GPIO_NUM_25 /**< GPIO 25 (ADC2) */
|
|
#define SENSOR_PLANT3 GPIO_NUM_26 /**< GPIO 26 (ADC2) */
|
|
#define SENSOR_PLANT4 GPIO_NUM_27 /**< GPIO 27 (ADC2) */
|
|
#define SENSOR_PLANT5 GPIO_NUM_39 /**< SENSOR_VIN */
|
|
#define SENSOR_PLANT6 GPIO_NUM_36 /**< SENSOR_VP */
|
|
|
|
#ifdef HWREVISION07
|
|
#define OUTPUT_PUMP0 GPIO_NUM_17 /**< GPIO 17 */
|
|
#define OUTPUT_PUMP1 GPIO_NUM_5 /**< GPIO 5 */
|
|
#define OUTPUT_PUMP2 GPIO_NUM_18 /**< GPIO 18 */
|
|
#define OUTPUT_PUMP3 GPIO_NUM_19 /**< GPIO 19 */
|
|
#define OUTPUT_PUMP4 GPIO_NUM_21 /**< GPIO 21 */
|
|
#define OUTPUT_PUMP5 GPIO_NUM_22 /**< GPIO 22 */
|
|
#define OUTPUT_PUMP6 GPIO_NUM_23 /**< GPIO 23 */
|
|
#else
|
|
#define OUTPUT_PUMP0 GPIO_NUM_15 /**< GPIO 15 */
|
|
#define OUTPUT_PUMP1 GPIO_NUM_5 /**< GPIO 5 */
|
|
#define OUTPUT_PUMP2 GPIO_NUM_18 /**< GPIO 18 */
|
|
#define OUTPUT_PUMP3 GPIO_NUM_19 /**< GPIO 19 */
|
|
#define OUTPUT_PUMP4 GPIO_NUM_21 /**< GPIO 21 */
|
|
#define OUTPUT_PUMP5 GPIO_NUM_22 /**< GPIO 22 */
|
|
#define OUTPUT_PUMP6 GPIO_NUM_23 /**< GPIO 23 */
|
|
#endif
|
|
|
|
#define OUTPUT_ENABLE_PUMP GPIO_NUM_13 /**< GPIO 13 - Enable Pumps */
|
|
#ifdef HWREVISION07
|
|
#define OUTPUT_ENABLE_SENSOR GPIO_NUM_16 /**< GPIO 16 - Enable Sensors */
|
|
#define SENSOR_ONEWIRE GPIO_NUM_2 /** GPIO 02 - Temperatur sensor, Battery and other cool onewire stuff */
|
|
#else
|
|
#define OUTPUT_ENABLE_SENSOR GPIO_NUM_14 /**< GPIO 14 - Enable Sensors */
|
|
#define SENSOR_ONEWIRE GPIO_NUM_4 /**< GPIO 12 - Temperatur sensor, Battery and other cool onewire stuff */
|
|
#endif
|
|
#ifdef ANALOG_WATER
|
|
#define SENSOR_TANK_ANALOG ANALOG_WATER /**< GPIO 34 - analog water sensor (GPIO_NUM_34) */
|
|
#else
|
|
#ifdef HWREVISION07
|
|
|
|
#else
|
|
#define SENSOR_TANK_SDA GPIO_NUM_17 /**< GPIO 17 - water sensor SDA */
|
|
#define SENSOR_TANK_SCL GPIO_NUM_16 /**< GPIO 16 - water sensor SCL */
|
|
#endif
|
|
#endif
|
|
#define BUTTON GPIO_NUM_0 /**< GPIO 0 - Fix button of NodeMCU */
|
|
|
|
#define CUSTOM1_PIN1 GPIO_NUM_34 /** direct gpio */
|
|
#define CUSTOM1_PIN3 GPIO_NUM_35 /** direct gpio */
|
|
#ifdef HWREVISION07
|
|
#define CUSTOM1_PIN5 GPIO_NUM_4 /** mosfet controlled */
|
|
#else
|
|
#define CUSTOM1_PIN5 GPIO_NUM_2 /** mosfet controlled */
|
|
#endif
|
|
#define CUSTOM1_PIN7 GPIO_NUM_12 /** mosfet controlled */
|
|
|
|
/* @} */
|
|
|
|
/** \addtogroup Configuration
|
|
* @{
|
|
*/
|
|
|
|
#ifdef FLOWMETER_PIN
|
|
#define FLOWMETER_PULSES_PER_ML 2.2
|
|
#define FIRMWARE_FEATURE1 "Flow"
|
|
#else
|
|
#ifdef ANALOG_WATER
|
|
#define FIRMWARE_FEATURE1 "Water"
|
|
#else
|
|
#define FIRMWARE_FEATURE1 ""
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef TIMED_LIGHT_PIN
|
|
#define FIRMWARE_FEATURE2 "Light"
|
|
#else
|
|
#define FIRMWARE_FEATURE2 ""
|
|
#endif
|
|
|
|
|
|
#define FIRMWARE_BASENAME "PlantControl"
|
|
#define FIRMWARE_NAME FIRMWARE_BASENAME FIRMWARE_FEATURE1 FIRMWARE_FEATURE2
|
|
#define FIRMWARE_VERSIONNMUMBER "3.011"
|
|
|
|
#ifdef HWREVISION07
|
|
#define FIRMWARE_VERSION FIRMWARE_VERSIONNMUMBER " HW0.7"
|
|
#else
|
|
#define FIRMWARE_VERSION FIRMWARE_VERSIONNMUMBER " HW0.10b"
|
|
#endif
|
|
|
|
#define MOIST_SENSOR_MAX_FRQ 5200 // 60kHz (500Hz margin)
|
|
#define MOIST_SENSOR_MIN_FRQ 500 // 0.5kHz (500Hz margin)
|
|
|
|
#define ANALOG_SENSOR_MAX_MV 1300 //successive approximation of good range
|
|
#define ANALOG_SENSOR_MIN_MV 100 //successive approximation of good range
|
|
|
|
#ifdef HWREVISION07
|
|
#define SOLAR_VOLT_FACTOR (4.0306f) /**< 100k and 33k voltage dividor */
|
|
#else
|
|
#define SOLAR_VOLT_FACTOR (22.0f)
|
|
#endif
|
|
#define BATTSENSOR_INDEX_SOLAR 0
|
|
#define BATTSENSOR_INDEX_BATTERY 1
|
|
|
|
#define MQTT_TIMEOUT (1000 * 60) /**< After 10 seconds, MQTT is expected to be connected */
|
|
#define ESP_STALE_TIMEOUT (MQTT_TIMEOUT+(700*1000))
|
|
#define ESP_ADC_MAX 4095
|
|
|
|
#define MAX_PLANTS 7
|
|
#define SOLAR_CHARGE_MIN_VOLTAGE 7 /**< Sun is rising (morning detected) */
|
|
#define SOLAR_CHARGE_MAX_VOLTAGE 9 /**< Sun is shining (noon) */
|
|
#define SOLAR_MAX_VOLTAGE_POSSIBLE 100 /**< higher values are treated as not connected sensor */
|
|
#define VOLT_MAX_BATT 4.2f
|
|
#define VOLT_MIN_BATT 3.2f /**< Minimum battery voltage for normal operation */
|
|
#define LOWVOLT_SLEEP_FACTOR 6 /**< Factor for nightsleep delay, if the battery drops below minimum (@see VOLT_MIN_BATT) */
|
|
#define LOWVOLT_SLEEP_MINIMUM 7200 /**< At low voltage sleep at least for 120 minutes (two hours) */
|
|
|
|
#define WATER_LEVEL_MINIMUM 500 /**< Minimum Analog value (1023 is the maximum)*/
|
|
|
|
#define MAX_CONFIG_SETTING_ITEMS 100 /**< Parameter, that can be configured in Homie */
|
|
#define MAX_JSON_CONFIG_FILE_SIZE_CUSTOM 2500
|
|
|
|
#define TEMPERATUR_TIMEOUT 3000 /**< 3 Seconds timeout for the temperatures sensors */
|
|
#define WATERSENSOR_TIMEOUT 3000 /**< 3 Seconds timeout for the water distance sensor */
|
|
#define WATERSENSOR_CYCLE 10 /**< 5 sensor measurement are performed */
|
|
#define DS18B20_RESOLUTION 9 /**< 9bit temperature resolution -> 0.5°C steps */
|
|
|
|
#define UTC_OFFSET_DE 3600 /* UTC offset in seconds for Germany */
|
|
#define UTF_OFFSET_DE_DST 3600 /* offset in seconds if daylight saving time is active */
|
|
|
|
/* @} */
|
|
|
|
#endif
|