Thu, 30 Mar 2023 21:55:24 +0200
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
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; |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
22 | static TaskHandle_t xTaskMQTT = NULL; |
4 | 23 | static TaskHandle_t xTaskWifi = NULL; |
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
|
24 | |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
25 | #define MAX_LOOPS 32 |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
26 | |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
27 | float temperature; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
28 | float pressure; |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
29 | RTC_DATA_ATTR float solarVolts, solarCurrent, solarPower; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
30 | RTC_DATA_ATTR float batteryVolts, batteryCurrent, batteryPower; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
31 | RTC_DATA_ATTR int batteryState; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
32 | RTC_DATA_ATTR float s_Volts[MAX_LOOPS + 1]; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
33 | RTC_DATA_ATTR float s_Current[MAX_LOOPS + 1]; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
34 | RTC_DATA_ATTR float b_Volts[MAX_LOOPS + 1]; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
35 | RTC_DATA_ATTR float b_Current[MAX_LOOPS + 1]; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
36 | RTC_DATA_ATTR bool m_Valid[MAX_LOOPS + 1]; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
37 | RTC_DATA_ATTR unsigned long m_Time[MAX_LOOPS + 1]; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
38 | RTC_DATA_ATTR unsigned long gLastTime; // millis() |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
39 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
40 | uint8_t loopno = 0; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
41 | uint8_t loops = 0; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
42 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
43 | int DisCounter = 0; |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
44 | |
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
|
45 | 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
|
46 | 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
|
47 | 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
|
48 | 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
|
49 | extern SemaphoreHandle_t xSemaphoreINA219; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
50 | 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
|
51 | extern ina219_t ina219_s_dev; |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
52 | extern INA219_State *ina219_state; |
4 | 53 | extern SemaphoreHandle_t xSemaphoreWiFi; |
54 | extern WIFI_State *wifi_state; ///< WiFi state | |
55 | ||
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
56 | uint32_t Alarm = 0; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
57 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
58 | /* |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
59 | Alarm bits |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
60 | */ |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
61 | #define AL_ACCULOW 0x01 |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
62 | #define AL_NOWIFI 0x02 |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
63 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
64 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
65 | #define ST_INTERVAL 10000 |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
66 | #define MAX_LOOPS 32 |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
67 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
68 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
69 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
70 | // 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
71 | float Charge_C_5[11] = { 12.40, 12.60, 12.75, 12.95, 13.20, 13.35, 13.55, 13.67, 14.00, 15.25, 15.94 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
72 | float Charge_C_10[11] = { 12.20, 12.38, 12.60, 12.80, 13.05, 13.20, 13.28, 13.39, 13.60, 14.20, 15.25 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
73 | float Charge_C_20[11] = { 12.00, 12.07, 12.42, 12.70, 12.85, 13.02, 13.11, 13.15, 13.25, 13.60, 14.15 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
74 | float Charge_C_40[11] = { 11.55, 11.80, 12.25, 12.57, 12.70, 12.80, 12.90, 12.95, 13.00, 13.20, 13.50 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
75 | float Rest[11] = { 11.50, 11.70, 11.88, 12.10, 12.22, 12.30, 12.40, 12.50, 12.57, 12.64, 12.72 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
76 | float Load_C_20[11] = { 11.45, 11.70, 11.80, 12.05, 12.20, 12.28, 12.37, 12.48, 12.55, 12.57, 12.60 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
77 | float Load_C_10[11] = { 10.98, 11.27, 11.50, 11.65, 11.85, 12.00, 12.10, 12.20, 12.30, 12.40, 12.50 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
78 | float Load_C_5[11] = { 10.20, 10.65, 10.90, 11.15, 11.35, 11.55, 11.63, 11.75, 11.90, 12.00, 12.08 }; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
79 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
80 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
81 | /* |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
82 | * Calculate the load state of the battery. |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
83 | */ |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
84 | void BatteryState(float Voltage, float Current) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
85 | int i; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
86 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
87 | batteryState = 0; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
88 | ESP_LOGI(TAG, "Batt %.4fV %.4fmA", Voltage, Current); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
89 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
90 | if (Current < -750) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
91 | // Load current > C/5, 1A |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
92 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
93 | if (Load_C_5[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
94 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
95 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
96 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
97 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
98 | ESP_LOGI(TAG, "Load C/5 %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
99 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
100 | } else if (Current < -375) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
101 | // Load current > C/10, 500mA |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
102 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
103 | if (Load_C_10[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
104 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
105 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
106 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
107 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
108 | ESP_LOGI(TAG, "Load C/10 %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
109 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
110 | } else if (Current < -125) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
111 | // Load current > C/20, 250mA |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
112 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
113 | if (Load_C_20[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
114 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
115 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
116 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
117 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
118 | ESP_LOGI(TAG, "Load C/20 %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
119 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
120 | } else if (Current > 750) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
121 | // Charge > C/5, 1A |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
122 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
123 | if (Charge_C_5[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
124 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
125 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
126 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
127 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
128 | ESP_LOGI(TAG, "Charge C/5 %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
129 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
130 | } else if (Current > 375) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
131 | // Charge > C/10, 500mA |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
132 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
133 | if (Charge_C_10[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
134 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
135 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
136 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
137 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
138 | ESP_LOGI(TAG, "Charge C/10 %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
139 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
140 | } else if (Current > 187.5) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
141 | // Charge > C/20, 250 mA |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
142 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
143 | if (Charge_C_20[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
144 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
145 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
146 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
147 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
148 | ESP_LOGI(TAG, "Charge C/20 %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
149 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
150 | } else if (Current > 62.5) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
151 | // Charge > C/40, 125 mA |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
152 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
153 | if (Charge_C_40[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
154 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
155 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
156 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
157 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
158 | ESP_LOGI(TAG, "Charge C/40 %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
159 | |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
160 | } else { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
161 | // Rest |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
162 | for (i = 0; i < 10; i++) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
163 | if (Rest[i + 1] >= Voltage) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
164 | break; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
165 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
166 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
167 | batteryState = i * 10; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
168 | ESP_LOGI(TAG, "Rest %d%%", batteryState); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
169 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
170 | } |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
171 | |
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
|
172 | |
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
|
173 | |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
174 | /* |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
175 | * Read the temperature and pressure from the BMP280. |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
176 | */ |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
177 | void getTempBaro() { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
178 | temperature = 20; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
179 | pressure = 1000; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
180 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
181 | request_bmp280(); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
182 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
183 | while (! ready_bmp280()) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
184 | vTaskDelay(10 / portTICK_PERIOD_MS); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
185 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
186 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
187 | if (xSemaphoreTake(xSemaphoreBMP280, 25) == pdTRUE) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
188 | temperature = bmp280_state->temperature; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
189 | pressure = bmp280_state->pressure / 100.0; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
190 | ESP_LOGI(TAG, "Temperature: %.3f Pressure: %.1f hPa\n", temperature, pressure); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
191 | xSemaphoreGive(xSemaphoreBMP280); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
192 | } else { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
193 | ESP_LOGE(TAG, "Can't lock xSemaphoreBMP280"); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
194 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
195 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
196 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
197 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
198 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
199 | /* |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
200 | * Read voltage and current from both INA219 boards. The results |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
201 | * are stored in an array so that we later can average the results. |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
202 | */ |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
203 | void getVoltsCurrent() { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
204 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
205 | request_ina219(); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
206 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
207 | while (! ready_ina219()) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
208 | vTaskDelay(10 / portTICK_PERIOD_MS); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
209 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
210 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
211 | if (xSemaphoreTake(xSemaphoreINA219, 25) == pdTRUE) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
212 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
213 | s_Volts[loopno] = ina219_state->Solar.volts + (ina219_state->Solar.shunt / 1000); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
214 | s_Current[loopno] = ina219_state->Solar.current; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
215 | b_Volts[loopno] = ina219_state->Battery.volts + (ina219_state->Battery.shunt / 1000); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
216 | b_Current[loopno] = ina219_state->Battery.current; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
217 | m_Valid[loopno] = ina219_state->valid; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
218 | xSemaphoreGive(xSemaphoreINA219); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
219 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
220 | /* |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
221 | * Check for crazy values |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
222 | */ |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
223 | if ((b_Volts[loopno] < 10) || (b_Volts[loopno] > 15.0)) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
224 | m_Valid[loopno] = false; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
225 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
226 | if ((b_Current[loopno] < 0) || (b_Current[loopno] > 2000)) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
227 | m_Valid[loopno] = false; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
228 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
229 | if (s_Volts[loopno] < 0) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
230 | s_Volts[loopno] = 0.0; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
231 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
232 | if (s_Volts[loopno] > 24) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
233 | m_Valid[loopno] = false; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
234 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
235 | if (s_Current[loopno] < 0) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
236 | s_Current[loopno] = 0.0; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
237 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
238 | if (s_Current[loopno] > 2000) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
239 | m_Valid[loopno] = false; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
240 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
241 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
242 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
243 | // m_Time[loopno] = millis() - gLastTime; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
244 | //gLastTime = millis(); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
245 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
246 | ESP_LOGI(TAG, "Measure: %d Valid: %s Solar: %.4fV %.4fmA Battery: %.4fV %.4fmA time %ld", |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
247 | loopno, (m_Valid[loopno]) ? "true":"false", s_Volts[loopno], s_Current[loopno], b_Volts[loopno], b_Current[loopno], m_Time[loopno]); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
248 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
249 | if (loopno < (MAX_LOOPS - 1)) |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
250 | loopno++; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
251 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
252 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
253 | |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
254 | |
0 | 255 | void app_main(void) |
256 | { | |
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
|
257 | #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
|
258 | 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
|
259 | #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
|
260 | #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
|
261 | 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
|
262 | #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
|
263 | |
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
|
264 | 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
|
265 | |
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
|
266 | 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
|
267 | 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
|
268 | 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
|
269 | 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
|
270 | |
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
|
271 | 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
|
272 | 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
|
273 | 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
|
274 | 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
|
275 | |
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
|
276 | 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
|
277 | 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
|
278 | 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
|
279 | } |
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
|
280 | 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
|
281 | 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
|
282 | 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
|
283 | 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
|
284 | 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
|
285 | } |
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
|
286 | 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
|
287 | 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
|
288 | 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
|
289 | 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
|
290 | 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
|
291 | } |
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
|
292 | 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
|
293 | 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
|
294 | 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
|
295 | 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
|
296 | 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
|
297 | } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
298 | dev.addr = 0x77; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
299 | 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
|
300 | 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
|
301 | 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
|
302 | 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
|
303 | } |
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
|
304 | } |
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
|
305 | |
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
|
306 | /* |
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
|
307 | * 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
|
308 | */ |
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
|
309 | xSemaphoreBMP280 = xSemaphoreCreateMutex(); |
4 | 310 | xSemaphoreINA219 = xSemaphoreCreateMutex(); |
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
|
311 | |
4 | 312 | |
313 | xTaskCreate(&task_bmp280, "task_bmp280", 2560, NULL, 8, &xTaskBMP280); | |
314 | xTaskCreate(&task_ina219, "task_ina219", 2560, NULL, 8, &xTaskINA219); | |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
315 | // esp_log_level_set("MQTT_CLIENT", ESP_LOG_ERROR); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
316 | xTaskCreate(&task_mqtt, "task_mqtt", 4096, NULL, 5, &xTaskMQTT); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
317 | // esp_log_level_set("wifi", ESP_LOG_ERROR); |
4 | 318 | xTaskCreate(&task_wifi, "task_wifi", 4096, NULL, 3, &xTaskWifi); |
319 | ||
320 | vTaskDelay(10 / 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
|
321 | |
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 | * 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
|
324 | */ |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
325 | int State = State_Init; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
326 | 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
|
327 | |
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
|
328 | while (1) { |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
329 | if (OldState != State) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
330 | 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
|
331 | OldState = State; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
332 | } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
333 | switch (State) { |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
334 | case State_Init: getTempBaro(); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
335 | // getLightValues(); |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
336 | getVoltsCurrent(); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
337 | State = State_Connect; |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
338 | DisCounter = 0; |
4 | 339 | request_WiFi(true); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
340 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
341 | |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
342 | case State_Connect: if (ready_WiFi() && ready_mqtt()) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
343 | State = State_Working; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
344 | Alarm &= ~AL_NOWIFI; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
345 | DisCounter = 0; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
346 | } else { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
347 | DisCounter++; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
348 | if (DisCounter > 30) { |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
349 | Alarm |= AL_NOWIFI; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
350 | request_WiFi(false); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
351 | State = State_Init; |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
352 | } |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
353 | vTaskDelay(2000 / portTICK_PERIOD_MS); |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
354 | } |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
355 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
356 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
357 | 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
|
358 | |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
359 | // Measure |
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
360 | getVoltsCurrent(); |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
361 | solarVolts = solarCurrent = solarPower = batteryVolts = batteryCurrent = batteryPower = 0; |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
362 | // loops = 0; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
363 | // totalTime = 0; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
364 | // 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
|
365 | /* |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
366 | * 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
|
367 | * then assume the following: |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
368 | * 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
|
369 | * 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
|
370 | * 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
|
371 | * 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
|
372 | * |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
373 | * 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
|
374 | * 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
|
375 | * 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
|
376 | * 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
|
377 | */ |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
378 | // if (m_Valid[i]) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
379 | // solarVolts += s_Volts[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
380 | // solarCurrent += s_Current[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
381 | // batteryVolts += b_Volts[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
382 | // if (i == (loopno - 1)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
383 | // // Add the extra time |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
384 | // 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
|
385 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
386 | // 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
|
387 | // totalTime += m_Time[i]; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
388 | // loops++; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
389 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
390 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
391 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
392 | // 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
|
393 | // 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
|
394 | // 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
|
395 | // // 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
|
396 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
397 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
398 | // If valid measurements |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
399 | // if (loops) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
400 | // solarVolts = solarVolts / loops; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
401 | // solarCurrent = solarCurrent / loops; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
402 | // solarPower = solarVolts * solarCurrent; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
403 | // batteryVolts = batteryVolts / loops; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
404 | // batteryCurrent = batteryCurrent / totalTime; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
405 | // batteryPower = batteryVolts * batteryCurrent; |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
406 | BatteryState(batteryVolts, (0 - batteryCurrent) + solarCurrent); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
407 | |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
408 | ESP_LOGI(TAG, " Solar Volts: %.4fV Current %.4fmA Power %.4fmW", solarVolts, solarCurrent, solarPower); |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
409 | ESP_LOGI(TAG, "Battery Volts: %.4fV Current %.4fmA Power %.4fmW", batteryVolts, batteryCurrent, batteryPower); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
410 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
411 | /* Check alarm conditions */ |
5
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
412 | if (batteryState <= 10) { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
413 | Alarm |= AL_ACCULOW; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
414 | } else { |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
415 | Alarm &= ~AL_ACCULOW; |
b1f38105ca7e
Added task MQTT and some utilities. Added more power measurement variables and code. INA219 measurements are saved in the State record.
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
416 | } |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
417 | // } |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
418 | getTempBaro(); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
419 | // Publish(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
420 | // State = State_WorkDone; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
421 | // gTimeNext = millis() + SUB_TIME; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
422 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
423 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
424 | 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
|
425 | // client.loop(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
426 | // delay(1); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
427 | // if (WorkAgain) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
428 | // // Some command was executed. |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
429 | // State = State_Working; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
430 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
431 | // if (gTimeInMillis > gTimeNext) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
432 | // State = State_Stop; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
433 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
434 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
435 | |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
436 | case State_Stop: request_WiFi(false); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
437 | // // 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
|
438 | // HaveIP = false; |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
439 | loopno = 0; |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
440 | // gLastTime = millis(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
441 | // delay(10); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
442 | // #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
|
443 | // 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
|
444 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
445 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
446 | /* |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
447 | * 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
|
448 | * 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
|
449 | */ |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
450 | // 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
|
451 | // 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
|
452 | // 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
|
453 | // EEPROM.commit(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
454 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
455 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
456 | // // 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
|
457 | // ST_LOOPS = 6; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
458 | // gTimeNext = millis() + ST_INTERVAL; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
459 | // #if Debug == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
460 | // 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
|
461 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
462 | // State = State_Wait; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
463 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
464 | // ds_time = DS_TIME; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
465 | // if (solarVolts < 6) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
466 | // // 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
|
467 | // ds_time *= 4; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
468 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
469 | // 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
|
470 | // 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
|
471 | // 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
|
472 | // EEPROM.commit(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
473 | // 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
|
474 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
475 | // State = State_GoSleep; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
476 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
477 | /* |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
478 | * 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
|
479 | */ |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
480 | // 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
|
481 | // #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
|
482 | // 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
|
483 | // #if Debug == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
484 | // Serial.print("Write: "); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
485 | // printMemory(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
486 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
487 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
488 | // 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
|
489 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
490 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
491 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
492 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
493 | 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
|
494 | // State = State_Measure; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
495 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
496 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
497 | |
6
bad3414f7bc4
Added the getTempBaro and getVoltsCurrent functions to process the measured data. Added some main task code. Added subscribe to MQTT events.
Michiel Broek <mbroek@mbse.eu>
parents:
5
diff
changeset
|
498 | case State_Measure: getVoltsCurrent(); |
3
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
499 | // if (isnan(Temperature)) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
500 | // getTempHumi(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
501 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
502 | // gTimeNext = millis() + ST_INTERVAL; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
503 | // if (loopno >= ST_LOOPS) { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
504 | // getLightValues(); |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
505 | // State = State_Connect; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
506 | // } else { |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
507 | // State = State_Wait; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
508 | // } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
509 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
510 | |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
511 | 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
|
512 | // #if Debug == true |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
513 | // 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
|
514 | // #endif |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
515 | // 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
|
516 | break; |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
517 | } |
e5d91caa6ab4
Added begin of INA219 measurements. Added raw main state table.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
518 | 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
|
519 | } |
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
|
520 | // Not reached. |
0 | 521 | } |