Preparations for BLE GATT. Added extra time after INA219 is powered on before measurement. Reduced LEDC frequency to 60 Hz, that makes the LED lights less nervous. Hardware mod on output 4, now needs external pulldown resistor.

Sun, 16 Apr 2023 12:27:12 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 16 Apr 2023 12:27:12 +0200
changeset 30
7448b8dd4288
parent 29
551a53b31373
child 31
ec5c7794dcd6

Preparations for BLE GATT. Added extra time after INA219 is powered on before measurement. Reduced LEDC frequency to 60 Hz, that makes the LED lights less nervous. Hardware mod on output 4, now needs external pulldown resistor.

main/CMakeLists.txt file | annotate | diff | comparison | revisions
main/Kconfig.projbuild file | annotate | diff | comparison | revisions
main/config.h file | annotate | diff | comparison | revisions
main/iotbalkon.c file | annotate | diff | comparison | revisions
main/task_ina219.c file | annotate | diff | comparison | revisions
main/task_out.c file | annotate | diff | comparison | revisions
--- a/main/CMakeLists.txt	Sat Apr 15 13:29:40 2023 +0200
+++ b/main/CMakeLists.txt	Sun Apr 16 12:27:12 2023 +0200
@@ -1,2 +1,8 @@
-idf_component_register(SRCS config.c iotbalkon.c task_bmp280.c task_ina219.c task_apds9930.c task_wifi.c task_mqtt.c task_out.c xutil.c nvsio.c
-                    INCLUDE_DIRS ".")
+if(CONFIG_ENABLE_BLE_GATT)
+    set(srcs config.c iotbalkon.c task_bmp280.c task_ina219.c task_apds9930.c task_wifi.c task_mqtt.c task_ble.c task_out.c xutil.c nvsio.c)
+else()
+    set(srcs config.c iotbalkon.c task_bmp280.c task_ina219.c task_apds9930.c task_wifi.c task_mqtt.c task_out.c xutil.c nvsio.c)
+endif()
+
+idf_component_register(SRCS "${srcs}"
+		INCLUDE_DIRS ".")
--- a/main/Kconfig.projbuild	Sat Apr 15 13:29:40 2023 +0200
+++ b/main/Kconfig.projbuild	Sun Apr 16 12:27:12 2023 +0200
@@ -120,4 +120,10 @@
 
     endmenu
 
+    config ENABLE_BLE_GATT
+	bool "Enable Bluetooth LE"
+	help
+		Select this is you want to include the BLE GATT server.
+
+
 endmenu
--- a/main/config.h	Sat Apr 15 13:29:40 2023 +0200
+++ b/main/config.h	Sun Apr 16 12:27:12 2023 +0200
@@ -34,6 +34,13 @@
 #include "esp_wifi.h"
 #include "esp_event.h"
 #include "esp_netif.h"
+#ifdef CONFIG_ENABLE_BLE_GATT
+#include "esp_bt.h"
+#include "esp_gap_ble_api.h"
+#include "esp_gatts_api.h"
+#include "esp_bt_defs.h"
+#include "esp_bt_main.h"
+#endif
 #include "nvs_flash.h"
 #include "lwip/err.h"
 #include "lwip/sys.h"
@@ -53,6 +60,9 @@
 #include "task_bmp280.h"
 #include "task_ina219.h"
 #include "task_apds9930.h"
+#ifdef CONFIG_ENABLE_BLE_GATT
+#include "task_ble.h"
+#endif
 #include "task_wifi.h"
 #include "task_mqtt.h"
 #include "task_out.h"
--- a/main/iotbalkon.c	Sat Apr 15 13:29:40 2023 +0200
+++ b/main/iotbalkon.c	Sun Apr 16 12:27:12 2023 +0200
@@ -29,6 +29,9 @@
 static TaskHandle_t			xTaskAPDS9930 = NULL;
 static TaskHandle_t			xTaskMQTT = NULL;
 static TaskHandle_t			xTaskWifi = NULL;
+#ifdef CONFIG_ENABLE_BLE_GATT
+static TaskHandle_t			xTaskBLE = NULL;
+#endif
 static TaskHandle_t			xTaskOUT = NULL;
 
 #define	DS_TIME				60
@@ -404,6 +407,9 @@
     xTaskCreate(&task_out,      "task_out",         2560, NULL, 9, &xTaskOUT);
     xTaskCreate(&task_mqtt,     "task_mqtt",        4096, NULL, 5, &xTaskMQTT);
     xTaskCreate(&task_wifi,     "task_wifi",        4096, NULL, 3, &xTaskWifi);
+#ifdef CONFIG_ENABLE_BLE_GATT
+    xTaskCreate(&task_ble,      "task_ble",         4096, NULL, 3, &xTaskBLE);
+#endif
 
     vTaskDelay(10 / portTICK_PERIOD_MS);
 
--- a/main/task_ina219.c	Sat Apr 15 13:29:40 2023 +0200
+++ b/main/task_ina219.c	Sun Apr 16 12:27:12 2023 +0200
@@ -104,7 +104,7 @@
 		 */
 		ESP_ERROR_CHECK(ina219_configure(&ina219_b_dev, INA219_BUS_RANGE_32V, INA219_GAIN_0_125,
 		    INA219_RES_12BIT_1S, INA219_RES_12BIT_1S, INA219_MODE_CONT_SHUNT_BUS));
-		vTaskDelay(10 / portTICK_PERIOD_MS);
+		vTaskDelay(20 / portTICK_PERIOD_MS);
 		ESP_ERROR_CHECK(ina219_get_bus_voltage(&ina219_b_dev, &bus_voltage));
 		vTaskDelay(10 / portTICK_PERIOD_MS);
 		ESP_ERROR_CHECK(ina219_get_shunt_voltage(&ina219_b_dev, &shunt_voltage));
@@ -139,7 +139,7 @@
 	    if (! ina219_state->Solar.fake) {
 		ESP_ERROR_CHECK(ina219_configure(&ina219_s_dev, INA219_BUS_RANGE_32V, INA219_GAIN_0_125,
                     INA219_RES_12BIT_1S, INA219_RES_12BIT_1S, INA219_MODE_CONT_SHUNT_BUS));
-		vTaskDelay(10 / portTICK_PERIOD_MS);
+		vTaskDelay(20 / portTICK_PERIOD_MS);
                 ESP_ERROR_CHECK(ina219_get_bus_voltage(&ina219_s_dev, &bus_voltage));
 		vTaskDelay(10 / portTICK_PERIOD_MS);
                 ESP_ERROR_CHECK(ina219_get_shunt_voltage(&ina219_s_dev, &shunt_voltage));
--- a/main/task_out.c	Sat Apr 15 13:29:40 2023 +0200
+++ b/main/task_out.c	Sun Apr 16 12:27:12 2023 +0200
@@ -55,10 +55,10 @@
      * Prepare the LEDC PWM channels
      */
     ledc_timer_config_t ledc_timer = {
-	.speed_mode = LEDC_LOW_SPEED_MODE,             ///< Use high speed timer
+	.speed_mode = LEDC_LOW_SPEED_MODE,		///< Use high speed timer
 	.timer_num = LEDC_TIMER_0,                      ///< Timer 0
 	.duty_resolution = LEDC_TIMER_10_BIT,           ///< 10 bits resolution
-	.freq_hz = 100,                                 ///< 100 Hz
+	.freq_hz = 60,					///< 60 Hz
 	.clk_cfg = LEDC_AUTO_CLK                        ///< Auto select PWM clock
     };
     ledc_timer_config(&ledc_timer);
@@ -76,7 +76,7 @@
 
     ledc_channel_config_t dimmer_channel4 = {
         .channel    = LEDC_CHANNEL_1,
-        .duty       = 1024,                             ///< Default 0% (inverted value)
+        .duty       = 0,				///< Default 0%
         .gpio_num   = OutputPin4,                       ///< Dimmer4 pin
         .speed_mode = LEDC_LOW_SPEED_MODE,
         .hpoint     = 0,

mercurial