Refactor http server to separate component
This commit is contained in:
		
							parent
							
								
									8c93743548
								
							
						
					
					
						commit
						e6423f143b
					
				
							
								
								
									
										3
									
								
								components/server/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								components/server/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					idf_component_register(SRCS "server.c"
 | 
				
			||||||
 | 
					                       INCLUDE_DIRS "."
 | 
				
			||||||
 | 
					                       REQUIRES esp_http_server freertos)
 | 
				
			||||||
							
								
								
									
										147
									
								
								components/server/server.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										147
									
								
								components/server/server.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,147 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * server.c
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Created on: 21 Apr 2020
 | 
				
			||||||
 | 
					 *      Author: Chris
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "server.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const char *TAG = "server";
 | 
				
			||||||
 | 
					char cur_value_str[255] = "No measurements yet!";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void server_set_values(int32_t temp_raw, uint32_t pressure_raw, uint32_t humidity_raw,
 | 
				
			||||||
 | 
							int32_t temp2_raw, uint32_t pressure2_raw, uint32_t humidity2_raw)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						sprintf(cur_value_str, "<html><body><p>%d %d %d</p><p>%d %d %d</p></body></html>", temp_raw, pressure_raw, humidity_raw, temp2_raw, pressure2_raw, humidity2_raw);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static esp_err_t get_handler(httpd_req_t *req)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char*  buf;
 | 
				
			||||||
 | 
					    size_t buf_len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Get header value string length and allocate memory for length + 1,
 | 
				
			||||||
 | 
					     * extra byte for null termination */
 | 
				
			||||||
 | 
					    buf_len = httpd_req_get_hdr_value_len(req, "Host") + 1;
 | 
				
			||||||
 | 
					    if (buf_len > 1) {
 | 
				
			||||||
 | 
					        buf = malloc(buf_len);
 | 
				
			||||||
 | 
					        /* Copy null terminated value string into buffer */
 | 
				
			||||||
 | 
					        if (httpd_req_get_hdr_value_str(req, "Host", buf, buf_len) == ESP_OK) {
 | 
				
			||||||
 | 
					            ESP_LOGI(TAG, "Found header => Host: %s", buf);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        free(buf);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//    buf_len = httpd_req_get_hdr_value_len(req, "Test-Header-2") + 1;
 | 
				
			||||||
 | 
					//    if (buf_len > 1) {
 | 
				
			||||||
 | 
					//        buf = malloc(buf_len);
 | 
				
			||||||
 | 
					//        if (httpd_req_get_hdr_value_str(req, "Test-Header-2", buf, buf_len) == ESP_OK) {
 | 
				
			||||||
 | 
					//            ESP_LOGI(TAG, "Found header => Test-Header-2: %s", buf);
 | 
				
			||||||
 | 
					//        }
 | 
				
			||||||
 | 
					//        free(buf);
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    buf_len = httpd_req_get_hdr_value_len(req, "Test-Header-1") + 1;
 | 
				
			||||||
 | 
					//    if (buf_len > 1) {
 | 
				
			||||||
 | 
					//        buf = malloc(buf_len);
 | 
				
			||||||
 | 
					//        if (httpd_req_get_hdr_value_str(req, "Test-Header-1", buf, buf_len) == ESP_OK) {
 | 
				
			||||||
 | 
					//            ESP_LOGI(TAG, "Found header => Test-Header-1: %s", buf);
 | 
				
			||||||
 | 
					//        }
 | 
				
			||||||
 | 
					//        free(buf);
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//    /* Read URL query string length and allocate memory for length + 1,
 | 
				
			||||||
 | 
					//     * extra byte for null termination */
 | 
				
			||||||
 | 
					//    buf_len = httpd_req_get_url_query_len(req) + 1;
 | 
				
			||||||
 | 
					//    if (buf_len > 1) {
 | 
				
			||||||
 | 
					//        buf = malloc(buf_len);
 | 
				
			||||||
 | 
					//        if (httpd_req_get_url_query_str(req, buf, buf_len) == ESP_OK) {
 | 
				
			||||||
 | 
					//            ESP_LOGI(TAG, "Found URL query => %s", buf);
 | 
				
			||||||
 | 
					//            char param[32];
 | 
				
			||||||
 | 
					//            /* Get value of expected key from query string */
 | 
				
			||||||
 | 
					//            if (httpd_query_key_value(buf, "query1", param, sizeof(param)) == ESP_OK) {
 | 
				
			||||||
 | 
					//                ESP_LOGI(TAG, "Found URL query parameter => query1=%s", param);
 | 
				
			||||||
 | 
					//            }
 | 
				
			||||||
 | 
					//            if (httpd_query_key_value(buf, "query3", param, sizeof(param)) == ESP_OK) {
 | 
				
			||||||
 | 
					//                ESP_LOGI(TAG, "Found URL query parameter => query3=%s", param);
 | 
				
			||||||
 | 
					//            }
 | 
				
			||||||
 | 
					//            if (httpd_query_key_value(buf, "query2", param, sizeof(param)) == ESP_OK) {
 | 
				
			||||||
 | 
					//                ESP_LOGI(TAG, "Found URL query parameter => query2=%s", param);
 | 
				
			||||||
 | 
					//            }
 | 
				
			||||||
 | 
					//        }
 | 
				
			||||||
 | 
					//        free(buf);
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Set some custom headers */
 | 
				
			||||||
 | 
					//    httpd_resp_set_hdr(req, "Custom-Header-1", "Custom-Value-1");
 | 
				
			||||||
 | 
					//    httpd_resp_set_hdr(req, "Custom-Header-2", "Custom-Value-2");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Send response with custom headers and body set as the
 | 
				
			||||||
 | 
					     * string passed in user context*/
 | 
				
			||||||
 | 
					    const char* resp_str = cur_value_str;
 | 
				
			||||||
 | 
					    httpd_resp_send(req, resp_str, strlen(resp_str));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* After sending the HTTP response the old HTTP request
 | 
				
			||||||
 | 
					     * headers are lost. Check if HTTP request headers can be read now. */
 | 
				
			||||||
 | 
					//    if (httpd_req_get_hdr_value_len(req, "Host") == 0) {
 | 
				
			||||||
 | 
					//        ESP_LOGI(TAG, "Request headers lost");
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					    return ESP_OK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static httpd_uri_t uri = {
 | 
				
			||||||
 | 
					    .uri       = "/",
 | 
				
			||||||
 | 
					    .method    = HTTP_GET,
 | 
				
			||||||
 | 
					    .handler   = get_handler,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static httpd_handle_t start_webserver(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    httpd_handle_t server = NULL;
 | 
				
			||||||
 | 
					    httpd_config_t config = HTTPD_DEFAULT_CONFIG();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Start the httpd server
 | 
				
			||||||
 | 
					    ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port);
 | 
				
			||||||
 | 
					    if (httpd_start(&server, &config) == ESP_OK) {
 | 
				
			||||||
 | 
					        // Set URI handlers
 | 
				
			||||||
 | 
					        ESP_LOGI(TAG, "Registering URI handlers");
 | 
				
			||||||
 | 
					        httpd_register_uri_handler(server, &uri);
 | 
				
			||||||
 | 
					        return server;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ESP_LOGI(TAG, "Error starting server!");
 | 
				
			||||||
 | 
					    return NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void stop_webserver(httpd_handle_t server)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    // Stop the httpd server
 | 
				
			||||||
 | 
					    httpd_stop(server);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void connect_handler(void* arg, esp_event_base_t event_base,
 | 
				
			||||||
 | 
					                            int32_t event_id, void* event_data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    httpd_handle_t* server = (httpd_handle_t*) arg;
 | 
				
			||||||
 | 
					    if (*server == NULL) {
 | 
				
			||||||
 | 
					        ESP_LOGI(TAG, "Starting webserver");
 | 
				
			||||||
 | 
					        *server = start_webserver();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void disconnect_handler(void* arg, esp_event_base_t event_base,
 | 
				
			||||||
 | 
					                               int32_t event_id, void* event_data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    httpd_handle_t* server = (httpd_handle_t*) arg;
 | 
				
			||||||
 | 
					    if (*server) {
 | 
				
			||||||
 | 
					        ESP_LOGI(TAG, "Stopping webserver");
 | 
				
			||||||
 | 
					        stop_webserver(*server);
 | 
				
			||||||
 | 
					        *server = NULL;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void init_server()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						start_webserver();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										23
									
								
								components/server/server.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								components/server/server.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * server.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Created on: 21 Apr 2020
 | 
				
			||||||
 | 
					 *      Author: Chris
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef COMPONENTS_SERVER_SERVER_H_
 | 
				
			||||||
 | 
					#define COMPONENTS_SERVER_SERVER_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <freertos/FreeRTOS.h>
 | 
				
			||||||
 | 
					#include <freertos/event_groups.h>
 | 
				
			||||||
 | 
					#include <freertos/task.h>
 | 
				
			||||||
 | 
					#include <esp_event.h>
 | 
				
			||||||
 | 
					#include <esp_log.h>
 | 
				
			||||||
 | 
					#include <esp_http_server.h>
 | 
				
			||||||
 | 
					#include <sys/param.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void init_server();
 | 
				
			||||||
 | 
					void server_set_values(int32_t temp_raw, uint32_t pressure_raw, uint32_t humidity_raw,
 | 
				
			||||||
 | 
							int32_t temp2_raw, uint32_t pressure2_raw, uint32_t humidity2_raw);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* COMPONENTS_SERVER_SERVER_H_ */
 | 
				
			||||||
							
								
								
									
										3
									
								
								components/wifi/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								components/wifi/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					idf_component_register(SRCS "wifi.c"
 | 
				
			||||||
 | 
					                       INCLUDE_DIRS "."
 | 
				
			||||||
 | 
					                       REQUIRES nvs_flash)
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
# put here your custom config value
 | 
					# put here your custom config value
 | 
				
			||||||
menu "Example Configuration"
 | 
					menu "WIFI AP Configuration"
 | 
				
			||||||
config ESP_WIFI_SSID
 | 
					config ESP_WIFI_SSID
 | 
				
			||||||
    string "WiFi SSID"
 | 
					    string "WiFi SSID"
 | 
				
			||||||
    default "myssid"
 | 
					    default "myssid"
 | 
				
			||||||
@ -11,4 +11,8 @@ config ESP_WIFI_PASSWORD
 | 
				
			|||||||
    default "mypassword"
 | 
					    default "mypassword"
 | 
				
			||||||
    help
 | 
					    help
 | 
				
			||||||
	WiFi password (WPA or WPA2) for the example to use.
 | 
						WiFi password (WPA or WPA2) for the example to use.
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					config ESP_WIFI_RETRIES
 | 
				
			||||||
 | 
					    int "WiFi connection retries"
 | 
				
			||||||
 | 
					    default 5
 | 
				
			||||||
endmenu
 | 
					endmenu
 | 
				
			||||||
							
								
								
									
										111
									
								
								components/wifi/wifi.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								components/wifi/wifi.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,111 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * wifi.c
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Created on: 21 Apr 2020
 | 
				
			||||||
 | 
					 *      Author: Chris
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "wifi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define WIFI_CONNECTED_BIT BIT0
 | 
				
			||||||
 | 
					#define WIFI_FAIL_BIT      BIT1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static EventGroupHandle_t s_wifi_event_group;
 | 
				
			||||||
 | 
					static const char *TAG = "wifi station";
 | 
				
			||||||
 | 
					static int s_retry_num = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void event_handler(void* arg, esp_event_base_t event_base,
 | 
				
			||||||
 | 
					                                int32_t event_id, void* event_data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) {
 | 
				
			||||||
 | 
					        esp_wifi_connect();
 | 
				
			||||||
 | 
					    } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
 | 
				
			||||||
 | 
					        if (s_retry_num < CONFIG_ESP_WIFI_RETRIES) {
 | 
				
			||||||
 | 
					            esp_wifi_connect();
 | 
				
			||||||
 | 
					            s_retry_num++;
 | 
				
			||||||
 | 
					            ESP_LOGI(TAG, "retry to connect to the AP");
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        ESP_LOGI(TAG,"connect to the AP fail");
 | 
				
			||||||
 | 
					    } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
 | 
				
			||||||
 | 
					        ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data;
 | 
				
			||||||
 | 
					        ESP_LOGI(TAG, "got ip:%s",
 | 
				
			||||||
 | 
					                 ip4addr_ntoa(&event->ip_info.ip));
 | 
				
			||||||
 | 
					        s_retry_num = 0;
 | 
				
			||||||
 | 
					        xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void wifi_init_sta()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    //Initialize NVS
 | 
				
			||||||
 | 
						esp_err_t ret = nvs_flash_init();
 | 
				
			||||||
 | 
						if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
 | 
				
			||||||
 | 
						  ESP_ERROR_CHECK(nvs_flash_erase());
 | 
				
			||||||
 | 
						  ret = nvs_flash_init();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						ESP_ERROR_CHECK(ret);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						s_wifi_event_group = xEventGroupCreate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    tcpip_adapter_init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ESP_ERROR_CHECK(esp_event_loop_create_default());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
 | 
				
			||||||
 | 
					    ESP_ERROR_CHECK(esp_wifi_init(&cfg));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //tcpip_adapter_dhcpc_stop(TCPIP_ADAPTER_IF_STA);
 | 
				
			||||||
 | 
					    //tcpip_adapter_ip_info_t info;
 | 
				
			||||||
 | 
					    //ip4_addr_t gw;
 | 
				
			||||||
 | 
					    //gw.addr = ipaddr_addr("192.168.0.1");
 | 
				
			||||||
 | 
					    //info.gw = gw;
 | 
				
			||||||
 | 
					    //ip4_addr_t ip;
 | 
				
			||||||
 | 
					    //ip.addr = ipaddr_addr("192.168.0.110");
 | 
				
			||||||
 | 
					    //info.ip = ip;
 | 
				
			||||||
 | 
					    //ip4_addr_t netmask;
 | 
				
			||||||
 | 
					    //netmask.addr = ipaddr_addr("255.255.255.0");
 | 
				
			||||||
 | 
					    //info.netmask = netmask;
 | 
				
			||||||
 | 
					    //tcpip_adapter_sta_start(0, &info);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL));
 | 
				
			||||||
 | 
					    ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    wifi_config_t wifi_config = {
 | 
				
			||||||
 | 
					        .sta = {
 | 
				
			||||||
 | 
					            .ssid = CONFIG_ESP_WIFI_SSID,
 | 
				
			||||||
 | 
					            .password = CONFIG_ESP_WIFI_PASSWORD
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
 | 
				
			||||||
 | 
					    ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
 | 
				
			||||||
 | 
					    ESP_ERROR_CHECK(esp_wifi_start() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ESP_LOGI(TAG, "wifi_init_sta finished.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum
 | 
				
			||||||
 | 
					     * number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) */
 | 
				
			||||||
 | 
					    EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group,
 | 
				
			||||||
 | 
					            WIFI_CONNECTED_BIT | WIFI_FAIL_BIT,
 | 
				
			||||||
 | 
					            pdFALSE,
 | 
				
			||||||
 | 
					            pdFALSE,
 | 
				
			||||||
 | 
					            portMAX_DELAY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_STA, &info);
 | 
				
			||||||
 | 
					    /* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually
 | 
				
			||||||
 | 
					     * happened. */
 | 
				
			||||||
 | 
					    if (bits & WIFI_CONNECTED_BIT) {
 | 
				
			||||||
 | 
					        ESP_LOGI(TAG, "connected to ap SSID:%s",
 | 
				
			||||||
 | 
					        		CONFIG_ESP_WIFI_SSID);
 | 
				
			||||||
 | 
					    } else if (bits & WIFI_FAIL_BIT) {
 | 
				
			||||||
 | 
					        ESP_LOGI(TAG, "Failed to connect to SSID:%s",
 | 
				
			||||||
 | 
					        		CONFIG_ESP_WIFI_SSID);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        ESP_LOGE(TAG, "UNEXPECTED EVENT");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler));
 | 
				
			||||||
 | 
					    //ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler));
 | 
				
			||||||
 | 
					    //vEventGroupDelete(s_wifi_event_group);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								components/wifi/wifi.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								components/wifi/wifi.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * wifi.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Created on: 21 Apr 2020
 | 
				
			||||||
 | 
					 *      Author: Chris
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef COMPONENTS_WIFI_WIFI_H_
 | 
				
			||||||
 | 
					#define COMPONENTS_WIFI_WIFI_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <esp_wifi.h>
 | 
				
			||||||
 | 
					#include <esp_log.h>
 | 
				
			||||||
 | 
					#include <freertos/FreeRTOS.h>
 | 
				
			||||||
 | 
					#include "freertos/event_groups.h"
 | 
				
			||||||
 | 
					#include <freertos/task.h>
 | 
				
			||||||
 | 
					#include "nvs_flash.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void wifi_init_sta();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* COMPONENTS_WIFI_WIFI_H_ */
 | 
				
			||||||
							
								
								
									
										264
									
								
								main/main.c
									
									
									
									
									
								
							
							
						
						
									
										264
									
								
								main/main.c
									
									
									
									
									
								
							@ -1,245 +1,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "display.h"
 | 
					#include "display.h"
 | 
				
			||||||
#include "sensors.h"
 | 
					#include "sensors.h"
 | 
				
			||||||
 | 
					#include "wifi.h"
 | 
				
			||||||
 | 
					#include "server.h"
 | 
				
			||||||
#include <esp_log.h>
 | 
					#include <esp_log.h>
 | 
				
			||||||
#include <freertos/FreeRTOS.h>
 | 
					 | 
				
			||||||
#include <freertos/task.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//#include <esp_wifi.h>
 | 
					 | 
				
			||||||
//#include "freertos/event_groups.h"
 | 
					 | 
				
			||||||
//#include "nvs_flash.h"
 | 
					 | 
				
			||||||
//#include <esp_http_server.h>
 | 
					 | 
				
			||||||
//#include <sys/param.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//#define WIFI_SSID     "Netzknecht"
 | 
					 | 
				
			||||||
//#define WIFI_PASS     "SpvtNVYsSRTsX36I"
 | 
					 | 
				
			||||||
//#define WIFI_RETRIES  10
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static EventGroupHandle_t s_wifi_event_group;
 | 
					 | 
				
			||||||
//#define WIFI_CONNECTED_BIT BIT0
 | 
					 | 
				
			||||||
//#define WIFI_FAIL_BIT      BIT1
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static const char *TAG = "wifi station";
 | 
					 | 
				
			||||||
//static int s_retry_num = 0;
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//char cur_value_str[255];
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
///* An HTTP GET handler */
 | 
					 | 
				
			||||||
//static esp_err_t hello_get_handler(httpd_req_t *req)
 | 
					 | 
				
			||||||
//{
 | 
					 | 
				
			||||||
//    char*  buf;
 | 
					 | 
				
			||||||
//    size_t buf_len;
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    /* Get header value string length and allocate memory for length + 1,
 | 
					 | 
				
			||||||
//     * extra byte for null termination */
 | 
					 | 
				
			||||||
//    buf_len = httpd_req_get_hdr_value_len(req, "Host") + 1;
 | 
					 | 
				
			||||||
//    if (buf_len > 1) {
 | 
					 | 
				
			||||||
//        buf = malloc(buf_len);
 | 
					 | 
				
			||||||
//        /* Copy null terminated value string into buffer */
 | 
					 | 
				
			||||||
//        if (httpd_req_get_hdr_value_str(req, "Host", buf, buf_len) == ESP_OK) {
 | 
					 | 
				
			||||||
//            ESP_LOGI(TAG, "Found header => Host: %s", buf);
 | 
					 | 
				
			||||||
//        }
 | 
					 | 
				
			||||||
//        free(buf);
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    buf_len = httpd_req_get_hdr_value_len(req, "Test-Header-2") + 1;
 | 
					 | 
				
			||||||
//    if (buf_len > 1) {
 | 
					 | 
				
			||||||
//        buf = malloc(buf_len);
 | 
					 | 
				
			||||||
//        if (httpd_req_get_hdr_value_str(req, "Test-Header-2", buf, buf_len) == ESP_OK) {
 | 
					 | 
				
			||||||
//            ESP_LOGI(TAG, "Found header => Test-Header-2: %s", buf);
 | 
					 | 
				
			||||||
//        }
 | 
					 | 
				
			||||||
//        free(buf);
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    buf_len = httpd_req_get_hdr_value_len(req, "Test-Header-1") + 1;
 | 
					 | 
				
			||||||
//    if (buf_len > 1) {
 | 
					 | 
				
			||||||
//        buf = malloc(buf_len);
 | 
					 | 
				
			||||||
//        if (httpd_req_get_hdr_value_str(req, "Test-Header-1", buf, buf_len) == ESP_OK) {
 | 
					 | 
				
			||||||
//            ESP_LOGI(TAG, "Found header => Test-Header-1: %s", buf);
 | 
					 | 
				
			||||||
//        }
 | 
					 | 
				
			||||||
//        free(buf);
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    /* Read URL query string length and allocate memory for length + 1,
 | 
					 | 
				
			||||||
//     * extra byte for null termination */
 | 
					 | 
				
			||||||
//    buf_len = httpd_req_get_url_query_len(req) + 1;
 | 
					 | 
				
			||||||
//    if (buf_len > 1) {
 | 
					 | 
				
			||||||
//        buf = malloc(buf_len);
 | 
					 | 
				
			||||||
//        if (httpd_req_get_url_query_str(req, buf, buf_len) == ESP_OK) {
 | 
					 | 
				
			||||||
//            ESP_LOGI(TAG, "Found URL query => %s", buf);
 | 
					 | 
				
			||||||
//            char param[32];
 | 
					 | 
				
			||||||
//            /* Get value of expected key from query string */
 | 
					 | 
				
			||||||
//            if (httpd_query_key_value(buf, "query1", param, sizeof(param)) == ESP_OK) {
 | 
					 | 
				
			||||||
//                ESP_LOGI(TAG, "Found URL query parameter => query1=%s", param);
 | 
					 | 
				
			||||||
//            }
 | 
					 | 
				
			||||||
//            if (httpd_query_key_value(buf, "query3", param, sizeof(param)) == ESP_OK) {
 | 
					 | 
				
			||||||
//                ESP_LOGI(TAG, "Found URL query parameter => query3=%s", param);
 | 
					 | 
				
			||||||
//            }
 | 
					 | 
				
			||||||
//            if (httpd_query_key_value(buf, "query2", param, sizeof(param)) == ESP_OK) {
 | 
					 | 
				
			||||||
//                ESP_LOGI(TAG, "Found URL query parameter => query2=%s", param);
 | 
					 | 
				
			||||||
//            }
 | 
					 | 
				
			||||||
//        }
 | 
					 | 
				
			||||||
//        free(buf);
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    /* Set some custom headers */
 | 
					 | 
				
			||||||
//    httpd_resp_set_hdr(req, "Custom-Header-1", "Custom-Value-1");
 | 
					 | 
				
			||||||
//    httpd_resp_set_hdr(req, "Custom-Header-2", "Custom-Value-2");
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    /* Send response with custom headers and body set as the
 | 
					 | 
				
			||||||
//     * string passed in user context*/
 | 
					 | 
				
			||||||
//    const char* resp_str = cur_value_str;
 | 
					 | 
				
			||||||
//    httpd_resp_send(req, resp_str, strlen(resp_str));
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    /* After sending the HTTP response the old HTTP request
 | 
					 | 
				
			||||||
//     * headers are lost. Check if HTTP request headers can be read now. */
 | 
					 | 
				
			||||||
//    if (httpd_req_get_hdr_value_len(req, "Host") == 0) {
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG, "Request headers lost");
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//    return ESP_OK;
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static httpd_uri_t hello = {
 | 
					 | 
				
			||||||
//    .uri       = "/hello",
 | 
					 | 
				
			||||||
//    .method    = HTTP_GET,
 | 
					 | 
				
			||||||
//    .handler   = hello_get_handler,
 | 
					 | 
				
			||||||
//    /* Let's pass response string in user
 | 
					 | 
				
			||||||
//     * context to demonstrate it's usage */
 | 
					 | 
				
			||||||
//    .user_ctx  = "Hello World!"
 | 
					 | 
				
			||||||
//};
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static httpd_handle_t start_webserver(void)
 | 
					 | 
				
			||||||
//{
 | 
					 | 
				
			||||||
//    httpd_handle_t server = NULL;
 | 
					 | 
				
			||||||
//    httpd_config_t config = HTTPD_DEFAULT_CONFIG();
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    // Start the httpd server
 | 
					 | 
				
			||||||
//    ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port);
 | 
					 | 
				
			||||||
//    if (httpd_start(&server, &config) == ESP_OK) {
 | 
					 | 
				
			||||||
//        // Set URI handlers
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG, "Registering URI handlers");
 | 
					 | 
				
			||||||
//        httpd_register_uri_handler(server, &hello);
 | 
					 | 
				
			||||||
//        return server;
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    ESP_LOGI(TAG, "Error starting server!");
 | 
					 | 
				
			||||||
//    return NULL;
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static void stop_webserver(httpd_handle_t server)
 | 
					 | 
				
			||||||
//{
 | 
					 | 
				
			||||||
//    // Stop the httpd server
 | 
					 | 
				
			||||||
//    httpd_stop(server);
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static void disconnect_handler(void* arg, esp_event_base_t event_base,
 | 
					 | 
				
			||||||
//                               int32_t event_id, void* event_data)
 | 
					 | 
				
			||||||
//{
 | 
					 | 
				
			||||||
//    httpd_handle_t* server = (httpd_handle_t*) arg;
 | 
					 | 
				
			||||||
//    if (*server) {
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG, "Stopping webserver");
 | 
					 | 
				
			||||||
//        stop_webserver(*server);
 | 
					 | 
				
			||||||
//        *server = NULL;
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static void connect_handler(void* arg, esp_event_base_t event_base,
 | 
					 | 
				
			||||||
//                            int32_t event_id, void* event_data)
 | 
					 | 
				
			||||||
//{
 | 
					 | 
				
			||||||
//    httpd_handle_t* server = (httpd_handle_t*) arg;
 | 
					 | 
				
			||||||
//    if (*server == NULL) {
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG, "Starting webserver");
 | 
					 | 
				
			||||||
//        *server = start_webserver();
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//static void event_handler(void* arg, esp_event_base_t event_base,
 | 
					 | 
				
			||||||
//                                int32_t event_id, void* event_data)
 | 
					 | 
				
			||||||
//{
 | 
					 | 
				
			||||||
//    if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) {
 | 
					 | 
				
			||||||
//        esp_wifi_connect();
 | 
					 | 
				
			||||||
//    } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
 | 
					 | 
				
			||||||
//        if (s_retry_num < WIFI_RETRIES) {
 | 
					 | 
				
			||||||
//            esp_wifi_connect();
 | 
					 | 
				
			||||||
//            s_retry_num++;
 | 
					 | 
				
			||||||
//            ESP_LOGI(TAG, "retry to connect to the AP");
 | 
					 | 
				
			||||||
//        } else {
 | 
					 | 
				
			||||||
//            xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT);
 | 
					 | 
				
			||||||
//        }
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG,"connect to the AP fail");
 | 
					 | 
				
			||||||
//    } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
 | 
					 | 
				
			||||||
//        ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data;
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG, "got ip:%s",
 | 
					 | 
				
			||||||
//                 ip4addr_ntoa(&event->ip_info.ip));
 | 
					 | 
				
			||||||
//        s_retry_num = 0;
 | 
					 | 
				
			||||||
//        xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT);
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//void wifi_init_sta()
 | 
					 | 
				
			||||||
//{
 | 
					 | 
				
			||||||
//    s_wifi_event_group = xEventGroupCreate();
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    tcpip_adapter_init();
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_event_loop_create_default());
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_wifi_init(&cfg));
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    //tcpip_adapter_dhcpc_stop(TCPIP_ADAPTER_IF_STA);
 | 
					 | 
				
			||||||
//    //tcpip_adapter_ip_info_t info;
 | 
					 | 
				
			||||||
//    //ip4_addr_t gw;
 | 
					 | 
				
			||||||
//    //gw.addr = ipaddr_addr("192.168.0.1");
 | 
					 | 
				
			||||||
//    //info.gw = gw;
 | 
					 | 
				
			||||||
//    //ip4_addr_t ip;
 | 
					 | 
				
			||||||
//    //ip.addr = ipaddr_addr("192.168.0.110");
 | 
					 | 
				
			||||||
//    //info.ip = ip;
 | 
					 | 
				
			||||||
//    //ip4_addr_t netmask;
 | 
					 | 
				
			||||||
//    //netmask.addr = ipaddr_addr("255.255.255.0");
 | 
					 | 
				
			||||||
//    //info.netmask = netmask;
 | 
					 | 
				
			||||||
//    //tcpip_adapter_sta_start(0, &info);
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL));
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL));
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    wifi_config_t wifi_config = {
 | 
					 | 
				
			||||||
//        .sta = {
 | 
					 | 
				
			||||||
//            .ssid = WIFI_SSID,
 | 
					 | 
				
			||||||
//            .password = WIFI_PASS
 | 
					 | 
				
			||||||
//        },
 | 
					 | 
				
			||||||
//    };
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_wifi_start() );
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    ESP_LOGI(TAG, "wifi_init_sta finished.");
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    /* Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum
 | 
					 | 
				
			||||||
//     * number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) */
 | 
					 | 
				
			||||||
//    EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group,
 | 
					 | 
				
			||||||
//            WIFI_CONNECTED_BIT | WIFI_FAIL_BIT,
 | 
					 | 
				
			||||||
//            pdFALSE,
 | 
					 | 
				
			||||||
//            pdFALSE,
 | 
					 | 
				
			||||||
//            portMAX_DELAY);
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    //tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_STA, &info);
 | 
					 | 
				
			||||||
//    /* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually
 | 
					 | 
				
			||||||
//     * happened. */
 | 
					 | 
				
			||||||
//    if (bits & WIFI_CONNECTED_BIT) {
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG, "connected to ap SSID:%s password:%s",
 | 
					 | 
				
			||||||
//        		WIFI_SSID, WIFI_PASS);
 | 
					 | 
				
			||||||
//    } else if (bits & WIFI_FAIL_BIT) {
 | 
					 | 
				
			||||||
//        ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s",
 | 
					 | 
				
			||||||
//        		WIFI_SSID, WIFI_PASS);
 | 
					 | 
				
			||||||
//    } else {
 | 
					 | 
				
			||||||
//        ESP_LOGE(TAG, "UNEXPECTED EVENT");
 | 
					 | 
				
			||||||
//    }
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler));
 | 
					 | 
				
			||||||
//    ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler));
 | 
					 | 
				
			||||||
//    vEventGroupDelete(s_wifi_event_group);
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
void app_main(void)
 | 
					void app_main(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -250,31 +14,15 @@ void app_main(void)
 | 
				
			|||||||
	uint32_t pressure2 = 0;
 | 
						uint32_t pressure2 = 0;
 | 
				
			||||||
	uint32_t humidity2 = 0;
 | 
						uint32_t humidity2 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// INIT WIFI
 | 
					 | 
				
			||||||
	//Initialize NVS
 | 
					 | 
				
			||||||
//	esp_err_t ret = nvs_flash_init();
 | 
					 | 
				
			||||||
//	if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
 | 
					 | 
				
			||||||
//	  ESP_ERROR_CHECK(nvs_flash_erase());
 | 
					 | 
				
			||||||
//	  ret = nvs_flash_init();
 | 
					 | 
				
			||||||
//	}
 | 
					 | 
				
			||||||
//	ESP_ERROR_CHECK(ret);
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//	ESP_LOGI(TAG, "ESP_WIFI_MODE_STA");
 | 
					 | 
				
			||||||
//	wifi_init_sta();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// INIT WEBSERVER
 | 
					 | 
				
			||||||
//	static httpd_handle_t server = NULL;
 | 
					 | 
				
			||||||
//	ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &connect_handler, &server));
 | 
					 | 
				
			||||||
//	ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_DISCONNECTED, &disconnect_handler, &server));
 | 
					 | 
				
			||||||
//	server = start_webserver();
 | 
					 | 
				
			||||||
	init_sensors();
 | 
						init_sensors();
 | 
				
			||||||
	init_display();
 | 
						init_display();
 | 
				
			||||||
	read_sensor(&temp, &pressure, &humidity);
 | 
						wifi_init_sta();
 | 
				
			||||||
	read_sensor2(&temp2, &pressure2, &humidity2);
 | 
						init_server();
 | 
				
			||||||
	display_data(temp, pressure, humidity, temp2, pressure2, humidity2);
 | 
					
 | 
				
			||||||
	while (1) {
 | 
						while (1) {
 | 
				
			||||||
		read_sensor(&temp, &pressure, &humidity);
 | 
							read_sensor(&temp, &pressure, &humidity);
 | 
				
			||||||
		read_sensor2(&temp2, &pressure2, &humidity2);
 | 
							read_sensor2(&temp2, &pressure2, &humidity2);
 | 
				
			||||||
 | 
							server_set_values(temp, pressure, humidity, temp2, pressure2, humidity2);
 | 
				
			||||||
		display_data(temp, pressure, humidity, temp2, pressure2, humidity2);
 | 
							display_data(temp, pressure, humidity, temp2, pressure2, humidity2);
 | 
				
			||||||
		vTaskDelay(1000 / portTICK_PERIOD_MS);
 | 
							vTaskDelay(1000 / portTICK_PERIOD_MS);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user