menuconfig settings now work for I2C display setup. Lot's of code cleanup.

Sat, 23 Nov 2019 21:43:14 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 23 Nov 2019 21:43:14 +0100
changeset 37
358bbd5b608e
parent 36
e2a43e7c4035
child 38
46e2c385e9de

menuconfig settings now work for I2C display setup. Lot's of code cleanup.

main/Kconfig.projbuild file | annotate | diff | comparison | revisions
main/co2meter.c file | annotate | diff | comparison | revisions
main/config.h file | annotate | diff | comparison | revisions
main/task_adc.c file | annotate | diff | comparison | revisions
main/task_mqtt.c file | annotate | diff | comparison | revisions
main/task_mqtt.h file | annotate | diff | comparison | revisions
main/task_user.c file | annotate | diff | comparison | revisions
main/task_wifi.c file | annotate | diff | comparison | revisions
main/u8g2_esp32_hal.c file | annotate | diff | comparison | revisions
main/u8g2_esp32_hal.h file | annotate | diff | comparison | revisions
sdkconfig file | annotate | diff | comparison | revisions
--- a/main/Kconfig.projbuild	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/Kconfig.projbuild	Sat Nov 23 21:43:14 2019 +0100
@@ -33,11 +33,12 @@
             help
                 Port number for I2C Master device.
 
-        config I2C_MASTER_FREQUENCY
-            int "Master Frequency"
-            default 100000
-            help
-                I2C Speed of Master device.
+	config I2C_MASTER_FREQUENCY
+           int "Master Frequency"
+	   range 100000 400000
+           default 100000
+           help
+               I2C Speed of Master device in Hz.
 
     endmenu
 
--- a/main/co2meter.c	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/co2meter.c	Sat Nov 23 21:43:14 2019 +0100
@@ -162,14 +162,12 @@
      */
     while (1) {
 
-	ESP_LOGI(TAG, "Entered app loop");
+	ESP_LOGI(TAG, "Entered Main loop");
 
 	/* Measure process */
 	while (1) {
 	    switch (Main_Loop1) {
 		case ML1_INIT:
-		    ESP_LOGI(TAG, "Loop timer: Init");
-		    // If configured do ML1_CONNECT
 		    Main_Loop1 = ML1_CONNECT;
 		    requestWiFi_system(true);
 		    request_ds18b20();
@@ -187,7 +185,6 @@
 		    if (ready_ds18b20() && ready_adc()) {
 			connect_mqtt(true);
 			Main_Loop1 = ML1_WAITCON;
-			ESP_LOGI(TAG, "Loop timer: Wait MQTT");
 
 			uint32_t temp[DS18B20_MAX];
 			int state[DS18B20_MAX], i;
@@ -238,9 +235,9 @@
 				    if (P < 0)
 				    	P = 0;
 				    units[i].pressure = P;
-				    ESP_LOGI(TAG, "%d vb:%.3f vp:%.3f zero:%d scale:%3d mbar:%4d t:%6.3f %s", 
+				    ESP_LOGI(TAG, "%d vb:%.3f vp:%.3f zero:%d scale:%3d mbar:%4d alm: %d t:%6.3f %s",
 					i, adc_state->Batt_voltage / 1000.0, units[i].pressure_voltage / 1000.0, units[i].pressure_zero, 
-					units[i].pressure_voltage / (adc_state->Batt_voltage / 1000) - units[i].pressure_zero, P,
+					units[i].pressure_voltage / (adc_state->Batt_voltage / 1000) - units[i].pressure_zero, P, units[i].alarm,
 					units[i].temperature / 1000.0, units[i].temperature_rom_code);
 				    xSemaphoreGive(xSemaphoreADC);
 			    	} else {
@@ -267,7 +264,6 @@
 		    break;
 
 		case ML1_SEND:
-		    ESP_LOGI(TAG, "Loop timer: Send MQTT");
 		    publishNode();
 		    publishUnits();
 		    publishLogs();
@@ -280,14 +276,12 @@
 		    break;
 
 		case ML1_MQTT_DISCONNECT:
-		    ESP_LOGI(TAG, "Loop timer: Disconnect MQTT");
 		    connect_mqtt(false); // Doesn't really disconnect.
                     Main_Loop1 = ML1_DISCONNECT;
 		    break;
 
 		case ML1_DISCONNECT:
 		    if (! ready_mqtt()) {
-			ESP_LOGI(TAG, "Loop timer: WiFi off");
 		    	requestWiFi_system(false);
 		    	Main_Loop1 = ML1_WIFI_OFF;
 		    }
@@ -295,7 +289,7 @@
 
 		case ML1_WIFI_OFF:
 		    if (! ready_WiFi()) {
-			ESP_LOGI(TAG, "Loop timer: Done %s", user_busy() ? "true":"false");
+			ESP_LOGI(TAG, "Main loop: Done, user busy: %s", user_busy() ? "true":"false");
 			Main_Loop1 = ML1_DONE;
 			user_refresh();
 		    }
--- a/main/config.h	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/config.h	Sat Nov 23 21:43:14 2019 +0100
@@ -36,7 +36,6 @@
 #include "esp_vfs.h"
 #include "esp_system.h"
 #include "esp_wifi.h"
-//#include "esp_wifi_types.h"
 #include "esp_wpa2.h"
 #include "esp_event.h"
 #include "esp_spi_flash.h"
--- a/main/task_adc.c	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/task_adc.c	Sat Nov 23 21:43:14 2019 +0100
@@ -16,7 +16,6 @@
 #define PRESSURE_2      	(CONFIG_PRESSURE_2)
 #define PRESSURE_3      	(CONFIG_PRESSURE_3)
 #define BATT_CHANNEL		(CONFIG_BATT_CHANNEL)
-#define	BATT_ACTOR		(CONFIG_BATT_ACTOR)
 
 
 static const char		*TAG = "task_adc";
@@ -85,7 +84,7 @@
 
 	if (uxBits & TASK_ADC_REQUEST_PRESSURE) {
 
-	    ESP_LOGI(TAG, "Requested ADC readings");
+	    ESP_LOGD(TAG, "Requested ADC readings");
 	    adc1_config_width(ADC_WIDTH_BIT_12);
 
 	    for (i = 0; i < 3; i++) {
--- a/main/task_mqtt.c	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/task_mqtt.c	Sat Nov 23 21:43:14 2019 +0100
@@ -273,17 +273,17 @@
     switch (event->event_id) {
 
         case MQTT_EVENT_CONNECTED:
-            ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED");
+            ESP_LOGD(TAG, "MQTT_EVENT_CONNECTED");
 	    xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_CONNECTED);
             break;
 
         case MQTT_EVENT_DISCONNECTED:
-            ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED");
+            ESP_LOGD(TAG, "MQTT_EVENT_DISCONNECTED");
 	    xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_CONNECTED);
             break;
 
         case MQTT_EVENT_SUBSCRIBED:
-            ESP_LOGI(TAG, "MQTT_EVENT_SUBSCRIBED, msg_id=%d", event->msg_id);
+            ESP_LOGD(TAG, "MQTT_EVENT_SUBSCRIBED, msg_id=%d", event->msg_id);
             break;
 
         case MQTT_EVENT_UNSUBSCRIBED:
@@ -291,7 +291,7 @@
             break;
 
         case MQTT_EVENT_PUBLISHED:
-            ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d", event->msg_id);
+            ESP_LOGD(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d", event->msg_id);
 	    if (xSemaphoreTake(xSemaphorePcounter, 10) == pdTRUE) {
 	    	if (count_pub) {
 		    count_pub--;
@@ -348,7 +348,7 @@
      */
     err = nvs_open("storage", NVS_READWRITE, &seq_handle);
     if (err != ESP_OK) {
-        ESP_LOGI(TAG, "Error (%s) opening NVS handle", esp_err_to_name(err));
+        ESP_LOGE(TAG, "Error (%s) opening NVS handle", esp_err_to_name(err));
     } else {
 	err = nvs_get_u64(seq_handle, "Sequence_cnt", &Sequence);
 	switch (err) {
@@ -361,7 +361,7 @@
 		break;
 
 	    default:
-		ESP_LOGI(TAG, "Error (%s) init Sequence", esp_err_to_name(err));
+		ESP_LOGE(TAG, "Error (%s) init Sequence", esp_err_to_name(err));
 		break;
 	}
     }
--- a/main/task_mqtt.h	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/task_mqtt.h	Sat Nov 23 21:43:14 2019 +0100
@@ -22,8 +22,21 @@
 bool ready_mqtt(void);
 
 
+/**
+ * @brief Publish node birth
+ */
 void publishNode(void);
+
+
+/**
+ * @brief Publish units results
+ */
 void publishUnits(void);
+
+
+/**
+ * @brief Publish measurement logs
+ */
 void publishLogs(void);
 
 
--- a/main/task_user.c	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/task_user.c	Sat Nov 23 21:43:14 2019 +0100
@@ -1149,8 +1149,6 @@
 
 void task_user(void *pvParameter)
 {
-    esp_err_t           ret;
-
     ESP_LOGI(TAG, "Starting User task");
     Main_Loop2 = -1;
 
@@ -1187,22 +1185,22 @@
 
     gpio_isr_handler_add(ROT_ENC_SW_GPIO, gpio_isr_handler, (void*) ROT_ENC_SW_GPIO);
 
-    // Create a queue for events from the rotary encoder driver.
-    // Tasks can read from this queue to receive up to date position information.
+    /*
+     * Create a queue for events from the rotary encoder driver.
+     * Tasks can read from this queue to receive up to date position information.
+     */
     event_queue = rotary_encoder_create_queue();
     ESP_ERROR_CHECK(rotary_encoder_set_queue(&rinfo, event_queue));
 
+    /*
+     * Create a one second periodic timer.
+     */
     esp_timer_create_args_t timerSecond = {
         .callback = &TimerCallback,
         .name = "SecondsTimer"
     };
-
-    /*
-     * Create a one second periodic timer.
-     */
     ESP_ERROR_CHECK(esp_timer_create(&timerSecond, &timerHandle));
-    ret = esp_timer_start_periodic(timerHandle, 1000000);
-    assert(ret == ESP_OK);
+    ESP_ERROR_CHECK(esp_timer_start_periodic(timerHandle, 1000000));
 
     EventBits_t uxBits;
 
@@ -1258,20 +1256,5 @@
 	    xEventGroupClearBits(xEventGroupUser, TASK_USER_WAKEUP);
 	}
     }
-
-// If not configured, start configure
-// If configured select first unit
-// Handle screen (first is show measured values)
-// Display per unit. Temp + Pressure + state. Press is setup this sensor.
-// Setup menu: 	Sensors
-//		WiFi
-//		MQTT
-//		System (timers etc)
-//		Update OTA
-//		Return
-
-// Sensors menu:	Assignments, turn to choose one.
-// Sensors setup menu:	DS18B20 addr	Press is assign
-//			DS18B20 addr
 }
 
--- a/main/task_wifi.c	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/task_wifi.c	Sat Nov 23 21:43:14 2019 +0100
@@ -54,7 +54,7 @@
  *        from a timeserver. Sets the global boolean System_TimeOk value. 
  * @param tv is the received time. Not used.
  */
-void time_sync_notification_cb(struct timeval *tv);
+//void time_sync_notification_cb(struct timeval *tv);
 
 /**
  * @brief Array with AP security names
@@ -163,7 +163,7 @@
 	    }
 
 	default:
-	    ESP_LOGI(TAG, "Unknown WiFi event %d", event_id);
+	    ESP_LOGW(TAG, "Unknown WiFi event %d", event_id);
 	    break;
     }
 }
@@ -203,7 +203,7 @@
 	    break;
 
 	default:
-	    ESP_LOGI(TAG, "Unknown IP event %d", event_id);
+	    ESP_LOGW(TAG, "Unknown IP event %d", event_id);
 	    break;
     }
 }
@@ -230,9 +230,6 @@
     xSemaphoreWiFi = xSemaphoreCreateMutex();
     wifi_state = malloc(sizeof(WIFI_State));
     memset(wifi_state, 0x00, sizeof(WIFI_State));
-//    wifi_state->STA_connected = false;
-//    wifi_state->STA_online = false;
-//    wifi_state->STA_rssi = 0;
 
     /* stop dhcp server and start dhcp client */
     ESP_ERROR_CHECK(tcpip_adapter_dhcps_stop(TCPIP_ADAPTER_IF_AP));
@@ -265,16 +262,16 @@
 	    /*
 	     * user requested a disconnect, this will in effect disconnect the wifi
 	     */
-	    ESP_LOGI(TAG, "Request STA disconnect");
+	    ESP_LOGD(TAG, "Request STA disconnect");
 	    ESP_ERROR_CHECK(esp_wifi_disconnect());
 	    xEventGroupWaitBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED, pdFALSE, pdTRUE, portMAX_DELAY );
-	    
+
 	    /* finally: release the scan request bit */
 	    xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_DISCONNECT);
 
 	} else if (uxBits & TASK_WIFI_REQUEST_STA_CONNECT) {
 
-	    ESP_LOGI(TAG, "Request STA connect");
+	    ESP_LOGD(TAG, "Request STA connect");
 	    xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_STA_FAILED);
             _wifi_ScanAPs = true;
             _wifi_ScanDone = false;
@@ -290,7 +287,7 @@
             for (int i = 0; i < _wifi_Scanned; i++) {
 		wifi_ap_record_t ap = accessp_records[i];
 		// Check if we know this AP in the database.
-//		ESP_LOGI(TAG, "%d %-20s ch: %2d rssi: %d %s", i, ap.ssid, ap.primary, ap.rssi, apsec[ap.authmode]);
+		ESP_LOGD(TAG, "%d %-20s ch: %2d rssi: %d %s", i, ap.ssid, ap.primary, ap.rssi, apsec[ap.authmode]);
 		if ((read_station(ap.ssid) >= 0)) {
 		    /* ssid */
 		    size_t sz = sizeof(task_wifi_ConfigSTA->sta.ssid);
@@ -306,7 +303,7 @@
 		/*
 		 * Now connect to the known SSID
 		 */
-	//	ESP_LOGI(TAG, "Connecting to `%s'", task_wifi_ConfigSTA->sta.ssid);
+		ESP_LOGD(TAG, "Connecting to `%s'", task_wifi_ConfigSTA->sta.ssid);
 		ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, task_wifi_ConfigSTA));
 		esp_err_t wifierror = esp_wifi_connect();
 		if (wifierror != ESP_OK) {
--- a/main/u8g2_esp32_hal.c	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/u8g2_esp32_hal.c	Sat Nov 23 21:43:14 2019 +0100
@@ -117,17 +117,14 @@
 
 		    i2c_config_t conf;
 		    conf.mode = I2C_MODE_MASTER;
-			ESP_LOGI(TAG, "sda_io_num %d", u8g2_esp32_hal.sda);
 		    conf.sda_io_num = u8g2_esp32_hal.sda;
 		    conf.sda_pullup_en = GPIO_PULLUP_ENABLE;
-			ESP_LOGI(TAG, "scl_io_num %d", u8g2_esp32_hal.scl);
 		    conf.scl_io_num = u8g2_esp32_hal.scl;
 		    conf.scl_pullup_en = GPIO_PULLUP_ENABLE;
-			ESP_LOGI(TAG, "clk_speed %d", I2C_MASTER_FREQ_HZ);
 		    conf.master.clk_speed = I2C_MASTER_FREQ_HZ;
-			ESP_LOGI(TAG, "i2c_param_config %d", conf.mode);
 		    ESP_ERROR_CHECK(i2c_param_config(I2C_MASTER_NUM, &conf));
-			ESP_LOGI(TAG, "i2c_driver_install %d", I2C_MASTER_NUM);
+		    ESP_LOGI(TAG, "I2C gpio_sda: %d gpio_scl: %d clk_speed: %d master_num: %d",
+			u8g2_esp32_hal.sda, u8g2_esp32_hal.scl, I2C_MASTER_FREQ_HZ, I2C_MASTER_NUM);
 		    ESP_ERROR_CHECK(i2c_driver_install(I2C_MASTER_NUM, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0));
 			break;
 		}
--- a/main/u8g2_esp32_hal.h	Sat Nov 23 19:10:05 2019 +0100
+++ b/main/u8g2_esp32_hal.h	Sat Nov 23 21:43:14 2019 +0100
@@ -14,10 +14,10 @@
 
 #define U8G2_ESP32_HAL_UNDEFINED (-1)
 
-#define I2C_MASTER_NUM I2C_NUM_1           ///<  I2C port number for master dev
+#define I2C_MASTER_NUM	(CONFIG_I2C_MASTER_PORT_NUM)	///<  I2C port number for master dev (original 1)
 #define I2C_MASTER_TX_BUF_DISABLE   0      ///<  I2C master do not need buffer
 #define I2C_MASTER_RX_BUF_DISABLE   0      ///<  I2C master do not need buffer
-#define I2C_MASTER_FREQ_HZ          400000 ///<  I2C master clock frequency (original 50000)
+#define I2C_MASTER_FREQ_HZ	(CONFIG_I2C_MASTER_FREQUENCY)	///<  I2C master clock frequency (original 50000)
 #define ACK_CHECK_EN   0x1                 ///<  I2C master will check ack from slave
 #define ACK_CHECK_DIS  0x0                 ///<  I2C master will not check ack from slave
 
--- a/sdkconfig	Sat Nov 23 19:10:05 2019 +0100
+++ b/sdkconfig	Sat Nov 23 21:43:14 2019 +0100
@@ -83,7 +83,7 @@
 CONFIG_I2C_MASTER_SCL=22
 CONFIG_I2C_MASTER_SDA=21
 CONFIG_I2C_MASTER_PORT_NUM=0
-CONFIG_I2C_MASTER_FREQUENCY=100000
+CONFIG_I2C_MASTER_FREQUENCY=400000
 CONFIG_ROT_ENC_A_GPIO=26
 CONFIG_ROT_ENC_B_GPIO=27
 CONFIG_ROT_ENC_SW_GPIO=14

mercurial