main/iotbalkon.c

Tue, 28 Mar 2023 22:13:06 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 28 Mar 2023 22:13:06 +0200
changeset 3
e5d91caa6ab4
parent 1
1c9894662795
child 4
d0155c16e992
permissions
-rw-r--r--

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
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 static const char *TAG = "iotbalkon";
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 void app_main(void)
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
324 }

mercurial