Tue, 28 Mar 2023 22:13:06 +0200
Added begin of INA219 measurements. Added raw main state table.
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
1 | /** |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
2 | * @file iotbalkon.c |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
3 | * @brief iotbalkon project. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
4 | */ |
0 | 5 | |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
6 | #include "config.h" |
0 | 7 | |
8 | static const char *TAG = "iotbalkon"; | |
9 | ||
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
10 | #define State_Init 0 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
11 | #define State_Connect 1 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
12 | #define State_Working 2 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
13 | #define State_WorkDone 3 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
14 | #define State_Stop 4 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
15 | #define State_Wait 5 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
16 | #define State_Measure 6 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
17 | #define State_GoSleep 7 |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
18 | |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
19 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
20 | static TaskHandle_t xTaskBMP280 = NULL; |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
21 | static TaskHandle_t xTaskINA219 = NULL; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
22 | |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
23 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
24 | extern BMP280_State *bmp280_state; ///< I2C state |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
25 | extern SemaphoreHandle_t xSemaphoreBMP280; ///< I2C lock semaphore |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
26 | extern bmp280_params_t bmp280_params; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
27 | extern bmp280_t bmp280_dev; |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
28 | extern SemaphoreHandle_t xSemaphoreINA219; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
29 | extern ina219_t ina219_b_dev; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
30 | extern ina219_t ina219_s_dev; |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
31 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
32 | |
0 | 33 | void app_main(void) |
34 | { | |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
35 | #ifdef CONFIG_CODE_PRODUCTION |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
36 | ESP_LOGI(TAG, "Starting production"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
37 | #endif |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
38 | #ifdef CONFIG_CODE_TESTING |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
39 | ESP_LOGI(TAG, "Starting testing"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
40 | #endif |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
41 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
42 | ESP_ERROR_CHECK(i2cdev_init()); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
43 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
44 | bmp280_init_default_params(&bmp280_params); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
45 | memset(&bmp280_dev, 0, sizeof(bmp280_t)); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
46 | memset(&ina219_b_dev, 0, sizeof(ina219_t)); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
47 | memset(&ina219_s_dev, 0, sizeof(ina219_t)); |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
48 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
49 | i2c_dev_t dev = { 0 }; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
50 | dev.cfg.sda_io_num = CONFIG_I2C_MASTER_SDA; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
51 | dev.cfg.scl_io_num = CONFIG_I2C_MASTER_SCL; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
52 | dev.cfg.master.clk_speed = 1000000; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
53 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
54 | dev.addr = 0x39; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
55 | if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
56 | ESP_LOGI(TAG, "Found ADPS-9930"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
57 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
58 | dev.addr = 0x40; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
59 | if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
60 | ESP_ERROR_CHECK(ina219_init_desc(&ina219_b_dev, 0x40, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
61 | ESP_ERROR_CHECK(ina219_init(&ina219_b_dev)); |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
62 | ESP_LOGI(TAG, "Found INA219 Battery"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
63 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
64 | dev.addr = 0x41; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
65 | if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
66 | ESP_ERROR_CHECK(ina219_init_desc(&ina219_s_dev, 0x41, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
67 | ESP_ERROR_CHECK(ina219_init(&ina219_s_dev)); |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
68 | ESP_LOGI(TAG, "Found INA219 Solar"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
69 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
70 | dev.addr = 0x76; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
71 | if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
72 | ESP_ERROR_CHECK(bmp280_init_desc(&bmp280_dev, BMP280_I2C_ADDRESS_0, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
73 | ESP_ERROR_CHECK(bmp280_init(&bmp280_dev, &bmp280_params)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
74 | ESP_LOGI(TAG, "Found BMP280 @ 0x76 id: 0x%02x", bmp280_dev.id); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
75 | } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
76 | dev.addr = 0x77; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
77 | if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
78 | ESP_ERROR_CHECK(bmp280_init_desc(&bmp280_dev, BMP280_I2C_ADDRESS_1, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
79 | ESP_ERROR_CHECK(bmp280_init(&bmp280_dev, &bmp280_params)); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
80 | ESP_LOGI(TAG, "Found BMP280 @ 0x77 id: 0x%02x", bmp280_dev.id); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
81 | } |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
82 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
83 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
84 | /* |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
85 | * Create FreeRTOS tasks |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
86 | */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
87 | xSemaphoreBMP280 = xSemaphoreCreateMutex(); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
88 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
89 | xTaskCreate(&task_bmp280, "task_bmp280", 2560, NULL, 8, &xTaskBMP280); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
90 | xTaskCreate(&task_ina219, "task_ina219", 2560, NULL, 8, &xTaskINA219); |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
91 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
92 | /* |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
93 | * Main application loop. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
94 | */ |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
95 | int State = State_Init; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
96 | int OldState = State_Init + 1; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
97 | |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
98 | while (1) { |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
99 | if (OldState != State) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
100 | ESP_LOGI(TAG, "Switch to state %d", State); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
101 | OldState = State; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
102 | } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
103 | switch (State) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
104 | case State_Init: request_bmp280(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
105 | request_ina219(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
106 | // getTempBaro(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
107 | // getLightValues(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
108 | // getVoltsCurrent(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
109 | State = State_Connect; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
110 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
111 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
112 | case State_Connect: // Wake WiFi ?? |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
113 | // if (NetworkConnect()) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
114 | // State = State_Working; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
115 | // Alarm &= ~AL_NOWIFI; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
116 | // DisCounter = 0; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
117 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
118 | // DisCounter++; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
119 | // if (DisCounter > 30) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
120 | // Alarm |= AL_NOWIFI; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
121 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
122 | // delay(2000); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
123 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
124 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
125 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
126 | case State_Working: // WorkAgain = false; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
127 | // client.loop(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
128 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
129 | // // Measure |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
130 | // getVoltsCurrent(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
131 | // solarVolts = solarCurrent = batteryVolts = batteryCurrent = 0; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
132 | // loops = 0; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
133 | // totalTime = 0; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
134 | // for (int i = 0; i < loopno; i++) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
135 | /* |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
136 | * If there are only 2 loops, and the flag that we came from deep-sleep is set |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
137 | * then assume the following: |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
138 | * 1. No current (or very low for the dc converter) during DS_TIME seconds. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
139 | * 2. Low power during 0.5 second (no WiFi yet). |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
140 | * 3. 5 seconds power usage for the last measurement. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
141 | * Calculate the average battery current from this. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
142 | * |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
143 | * If there are more loops and we came from continues running do the following: |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
144 | * 1. Take the current use from all exept the last one, weight loops * 10 seconds. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
145 | * 2. Take the last one, and weight for 5 seconds. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
146 | * Calculate the average battery current from this. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
147 | */ |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
148 | // if (m_Valid[i]) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
149 | // solarVolts += s_Volts[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
150 | // solarCurrent += s_Current[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
151 | // batteryVolts += b_Volts[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
152 | // if (i == (loopno - 1)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
153 | // // Add the extra time |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
154 | // m_Time[i] += SUB_TIME; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
155 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
156 | // batteryCurrent += b_Current[i] * m_Time[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
157 | // totalTime += m_Time[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
158 | // loops++; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
159 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
160 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
161 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
162 | // if (EEPROM.read(EM_DS_Active)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
163 | // totalTime += EEPROM.read(EM_DS_Time) * 1000; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
164 | // batteryCurrent += DS_CURRENT * EEPROM.read(EM_DS_Time) * 1000; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
165 | // // Serial.printf("Added %d totalTime %d\n", EEPROM.read(EM_DS_Time) * 1000, totalTime); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
166 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
167 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
168 | // If valid measurements |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
169 | // if (loops) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
170 | // solarVolts = solarVolts / loops; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
171 | // solarCurrent = solarCurrent / loops; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
172 | // solarPower = solarVolts * solarCurrent; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
173 | // batteryVolts = batteryVolts / loops; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
174 | // batteryCurrent = batteryCurrent / totalTime; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
175 | // batteryPower = batteryVolts * batteryCurrent; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
176 | // BatteryState(batteryVolts, (0 - batteryCurrent) + solarCurrent); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
177 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
178 | // //#if Debug == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
179 | // Serial.print(F(" Solar Volts: ")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
180 | // Serial.print(solarVolts, 4); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
181 | // Serial.print(F("V Current: ")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
182 | // Serial.print(solarCurrent, 4); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
183 | // Serial.print(F("mA Power: ")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
184 | // Serial.print(solarPower, 4); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
185 | // Serial.println(F("mW")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
186 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
187 | // Serial.print(F("Battery Volts: ")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
188 | // Serial.print(batteryVolts, 4); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
189 | // Serial.print(F("V Current: ")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
190 | // Serial.print(batteryCurrent, 4); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
191 | // Serial.print(F("mA Power: ")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
192 | // Serial.print(batteryPower, 4); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
193 | // Serial.print(F("mW Capacity ")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
194 | // Serial.print(batteryState); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
195 | // Serial.println(F("%")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
196 | // //#endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
197 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
198 | /* Check alarm conditions */ |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
199 | // if (batteryState <= 10) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
200 | // Alarm |= AL_ACCULOW; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
201 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
202 | // Alarm &= ~AL_ACCULOW; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
203 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
204 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
205 | // getTempHumi(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
206 | // Publish(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
207 | // Subscribe |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
208 | // #if Production == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
209 | // client.subscribe("balkon/output/set/#"); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
210 | // #else |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
211 | // client.subscribe("wemos/output/set/#"); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
212 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
213 | // client.loop(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
214 | // State = State_WorkDone; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
215 | // gTimeNext = millis() + SUB_TIME; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
216 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
217 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
218 | case State_WorkDone: // Hang around for a while to process the subscriptions. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
219 | // client.loop(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
220 | // delay(1); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
221 | // if (WorkAgain) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
222 | // // Some command was executed. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
223 | // State = State_Working; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
224 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
225 | // if (gTimeInMillis > gTimeNext) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
226 | // State = State_Stop; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
227 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
228 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
229 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
230 | case State_Stop: // #if Production == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
231 | // client.unsubscribe("balkon/output/set/#"); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
232 | // #else |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
233 | // client.unsubscribe("wemos/output/set/#"); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
234 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
235 | // delay(1); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
236 | // client.loop(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
237 | // client.disconnect(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
238 | // delay(1); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
239 | // WiFi.mode( WIFI_OFF ); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
240 | // // Reset values for average current measurement. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
241 | // HaveIP = false; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
242 | // loopno = 0; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
243 | // gLastTime = millis(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
244 | // delay(10); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
245 | // #if defined(ARDUINO_ESP8266_WEMOS_D1MINI) |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
246 | // WiFi.forceSleepBegin(0); // 0 == forever |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
247 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
248 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
249 | /* |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
250 | * If any output is on, use 6 10 seconds loops. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
251 | * If nothing on, do a deep sleep. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
252 | */ |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
253 | // if (EEPROM.read(EM_Relay1) || EEPROM.read(EM_Relay2) || EEPROM.read(EM_Dimmer3) || EEPROM.read(EM_Dimmer4)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
254 | // if (EEPROM.read(EM_DS_Active)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
255 | // EEPROM.write(EM_DS_Active, 0); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
256 | // EEPROM.commit(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
257 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
258 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
259 | // // Active mode, 60 seconds loop |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
260 | // ST_LOOPS = 6; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
261 | // gTimeNext = millis() + ST_INTERVAL; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
262 | // #if Debug == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
263 | // Serial.println(F("Start sleeploops")); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
264 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
265 | // State = State_Wait; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
266 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
267 | // ds_time = DS_TIME; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
268 | // if (solarVolts < 6) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
269 | // // At night, increase the deep-sleep time. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
270 | // ds_time *= 4; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
271 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
272 | // if ((! EEPROM.read(EM_DS_Active)) || (EEPROM.read(EM_DS_Time) != ds_time)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
273 | // EEPROM.write(EM_DS_Active, 1); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
274 | // EEPROM.write(EM_DS_Time, ds_time); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
275 | // EEPROM.commit(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
276 | // Serial.println("wrote new deep-sleep settings"); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
277 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
278 | // State = State_GoSleep; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
279 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
280 | /* |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
281 | * Update CRC and write rtcData. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
282 | */ |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
283 | // rtcData.crc32 = calculateCRC32((uint8_t*) &rtcData.data, sizeof(rtcData)-4); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
284 | // #if defined(ARDUINO_ESP8266_WEMOS_D1MINI) |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
285 | // if (ESP.rtcUserMemoryWrite(0, (uint32_t*) &rtcData, sizeof(rtcData))) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
286 | // #if Debug == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
287 | // Serial.print("Write: "); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
288 | // printMemory(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
289 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
290 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
291 | // Serial.println("Write error rtcData"); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
292 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
293 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
294 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
295 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
296 | case State_Wait: // if (gTimeInMillis > gTimeNext) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
297 | // State = State_Measure; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
298 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
299 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
300 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
301 | case State_Measure: // getVoltsCurrent(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
302 | // if (isnan(Temperature)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
303 | // getTempHumi(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
304 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
305 | // gTimeNext = millis() + ST_INTERVAL; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
306 | // if (loopno >= ST_LOOPS) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
307 | // getLightValues(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
308 | // State = State_Connect; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
309 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
310 | // State = State_Wait; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
311 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
312 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
313 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
314 | case State_GoSleep: // ds_time = EEPROM.read(EM_DS_Time); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
315 | // #if Debug == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
316 | // Serial.printf("Going to deep-sleep for %d seconds\n", ds_time); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
317 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
318 | // ESP.deepSleep(ds_time * 1e6); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
319 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
320 | } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
321 | vTaskDelay(20 / portTICK_PERIOD_MS); |
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
322 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
0
diff
changeset
|
323 | // Not reached. |
0 | 324 | } |