Added MAC variable it related coinfigurations
This commit is contained in:
parent
55d997c072
commit
2b08509a1b
@ -2154,8 +2154,6 @@ char* get_mac(void){
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Initialize. */
|
||||
int comms_init(void)
|
||||
{
|
||||
|
@ -90,9 +90,9 @@ typedef enum
|
||||
#define MCU_POST_URL3 MCU_BASE_URL3
|
||||
|
||||
//URL to get configuration flags from servers 1, 2, and 3
|
||||
#define MCU_GET_CONFIG_FLAGS_URL1 TESTING_SERVER_BASE_URL"/hae/tempstick/%s/config/"//MCU_BASE_URL1//config/flag/server1
|
||||
#define MCU_GET_CONFIG_FLAGS_URL2 TESTING_SERVER_BASE_URL"/hae/tempstick/%s/config/"//MCU_BASE_URL2//config/flag/server2
|
||||
#define MCU_GET_CONFIG_FLAGS_URL3 TESTING_SERVER_BASE_URL"/hae/tempstick/%s/config/"//MCU_BASE_URL3//config/flag/server3
|
||||
#define MCU_GET_CONFIG_FLAGS_URL1 TESTING_SERVER_BASE_URL"/hae/azuma/%s/update/"//MCU_BASE_URL1//config/flag/server1
|
||||
#define MCU_GET_CONFIG_FLAGS_URL2 TESTING_SERVER_BASE_URL"/hae/azuma/%s/update/"//MCU_BASE_URL2//config/flag/server2
|
||||
#define MCU_GET_CONFIG_FLAGS_URL3 TESTING_SERVER_BASE_URL"/hae/azuma/%s/update/"//MCU_BASE_URL3//config/flag/server3
|
||||
|
||||
/* this endpoint not implemented yet in the code (customer pending) */
|
||||
// if the config_update flag is set
|
||||
|
193
main/main.c
193
main/main.c
@ -35,6 +35,7 @@
|
||||
#include "rtc.h"
|
||||
|
||||
#include "data_processing.h"
|
||||
#include "wifi_Client.h"
|
||||
|
||||
|
||||
|
||||
@ -44,6 +45,7 @@
|
||||
#define CONFIG_BROKER_URL "mqtt://broker.mqtt.cool"
|
||||
#define MQTT_TOPIC_SUB "/topic/qos0"
|
||||
#define MQTT_TOPIC_PUB "/topic/qos0"
|
||||
char MAC_ID[15];
|
||||
|
||||
#define WEB_SERVER "54.204.230.201"
|
||||
#define WEB_PORT "8085"
|
||||
@ -52,16 +54,129 @@
|
||||
#define MCU_PROG_VER "/hae/azuma/353165803930522/mcu_pgm_download/version/"
|
||||
#define MCU_UPDATE "/hae/azuma/353165803930522/update/"
|
||||
|
||||
//#define BROCKER_URL_TEST "mqtt://broker.mqtt.cool:1883"
|
||||
#define BROCKER_URL_TEST "mqtt://broker.mqtt.cool:1883"
|
||||
|
||||
#define BROCKER_URL_TEST "mqtt://azumamqtt1.cedalo.cloud:1883"
|
||||
#define SP3_URL "http://54.204.230.201:8085/hae/azuma/353165803930522/update/"
|
||||
|
||||
//#define BROCKER_URL_TEST "mqtt://azumamqtt1.cedalo.cloud:1883"
|
||||
|
||||
uint8_t comms_mode = DEFAULT_COMMS_MODE;
|
||||
char MAC_ID[15];
|
||||
char HTTP_GET_DATA[512];
|
||||
|
||||
const char *TAG = "main";
|
||||
|
||||
char* SP1_data(void) {
|
||||
static char sp1[] = "SP1 F/W TIME_DATA";
|
||||
return sp1;
|
||||
}
|
||||
|
||||
void get_mac_add(void) { // The function modifies the passed buffer
|
||||
uint8_t mac[6];
|
||||
esp_efuse_mac_get_default(mac);
|
||||
|
||||
printf("MAC Address (Hex): %02X:%02X:%02X:%02X:%02X:%02X\n",
|
||||
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||
|
||||
// Convert MAC address to a decimal string
|
||||
char full_mac_decimal[20];
|
||||
int len = snprintf(full_mac_decimal, sizeof(full_mac_decimal), "%d%d%d%d%d%d",
|
||||
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||
|
||||
// Ensure exactly 15 characters
|
||||
if (len < 15) {
|
||||
memset(MAC_ID, '0', 15 - len);
|
||||
strcpy(MAC_ID + (15 - len), full_mac_decimal);
|
||||
} else {
|
||||
strncpy(MAC_ID, full_mac_decimal, 15);
|
||||
}
|
||||
// MAC_ID[15] = '\0';
|
||||
printf("Formatted MAC (15 Characters): %s\n", MAC_ID);
|
||||
}
|
||||
|
||||
typedef enum {
|
||||
MQTT_STATE_INIT,
|
||||
MQTT_STATE_CONNECT,
|
||||
MQTT_STATE_PUBLISH,
|
||||
MQTT_STATE_DISCONNECT,
|
||||
MQTT_STATE_ERROR
|
||||
} mqtt_state_t;
|
||||
|
||||
static mqtt_state_t state = MQTT_STATE_INIT;
|
||||
static esp_mqtt_client_handle_t client;
|
||||
|
||||
void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data) {
|
||||
esp_mqtt_event_handle_t event = event_data;
|
||||
esp_mqtt_client_handle_t client = event->client;
|
||||
|
||||
switch (event_id) {
|
||||
case MQTT_EVENT_CONNECTED:
|
||||
ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED");
|
||||
state = MQTT_STATE_PUBLISH;
|
||||
break;
|
||||
case MQTT_EVENT_DISCONNECTED:
|
||||
ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED");
|
||||
state = MQTT_STATE_ERROR;
|
||||
break;
|
||||
case MQTT_EVENT_PUBLISHED:
|
||||
ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED");
|
||||
state = MQTT_STATE_DISCONNECT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void mqtt_task(void *param) {
|
||||
|
||||
|
||||
esp_mqtt_client_config_t mqtt_cfg = {
|
||||
.broker.address.uri = BROCKER_URL_TEST,
|
||||
};
|
||||
|
||||
client = esp_mqtt_client_init(&mqtt_cfg);
|
||||
esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL);
|
||||
|
||||
while (1) {
|
||||
switch (state) {
|
||||
case MQTT_STATE_INIT:
|
||||
ESP_LOGI(TAG, "Initializing MQTT");
|
||||
esp_mqtt_client_start(client);
|
||||
state = MQTT_STATE_CONNECT;
|
||||
break;
|
||||
case MQTT_STATE_CONNECT:
|
||||
ESP_LOGI(TAG, "Connecting to broker...");
|
||||
vTaskDelay(pdMS_TO_TICKS(2000));
|
||||
break;
|
||||
case MQTT_STATE_PUBLISH:
|
||||
ESP_LOGI(TAG, "Publishing message");
|
||||
SP1_data();
|
||||
// esp_mqtt_client_publish(client, "/topic/qos0", "Hello ESP32", 0, 1, 0);
|
||||
// esp_mqtt_client_publish(client, "/topic/qos0", sp1(), 0, 1, 0);
|
||||
esp_mqtt_client_publish(client, "/topic/qos0", SP1_data(), 0, 1, 0);
|
||||
|
||||
state = MQTT_STATE_DISCONNECT;
|
||||
break;
|
||||
case MQTT_STATE_DISCONNECT:
|
||||
ESP_LOGI(TAG, "Disconnecting...");
|
||||
esp_mqtt_client_stop(client);
|
||||
state = MQTT_STATE_INIT;
|
||||
vTaskDelay(pdMS_TO_TICKS(7200000)); // 2 hours delay
|
||||
break;
|
||||
case MQTT_STATE_ERROR:
|
||||
ESP_LOGE(TAG, "Error encountered, retrying...");
|
||||
state = MQTT_STATE_INIT;
|
||||
vTaskDelay(pdMS_TO_TICKS(5000));
|
||||
break;
|
||||
}
|
||||
vTaskDelay(pdMS_TO_TICKS(100));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void extract_json(const char *input, char *output) {
|
||||
const char *start = strchr(input, '{'); // Find the first '{'
|
||||
const char *end = strrchr(input, '}'); // Find the last '}'
|
||||
@ -87,7 +202,7 @@ void extract_mcu_update(const char *json_data, char *output) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data)
|
||||
{
|
||||
ESP_LOGD(TAG, "Event dispatched from event loop base=%s, event_id=%" PRIi32 "", base, event_id);
|
||||
@ -119,6 +234,7 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_
|
||||
break;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
void http_get_request(const char *path) {
|
||||
char request[512];
|
||||
@ -181,22 +297,19 @@ void app_main(void)
|
||||
|
||||
/* Create the UART tasks for both UART0 and UART1 */
|
||||
uart_create_rx_tasks();
|
||||
char mac[15];
|
||||
snprintf(mac,sizeof(mac), get_mac());
|
||||
ESP_LOGI(TAG, "======> Mac id: %s", mac);
|
||||
|
||||
|
||||
// Get firmwae version
|
||||
const esp_app_desc_t *app_desc = esp_app_get_description();
|
||||
ESP_LOGI(TAG, "Firmware Version: %s", app_desc->version);
|
||||
// const esp_app_desc_t *app_desc = esp_app_get_description();
|
||||
// ESP_LOGI(TAG, "Firmware Version: %s", app_desc->version);
|
||||
|
||||
while(1){
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
// while(1){
|
||||
// vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
// get_time();
|
||||
// ESP_LOGI("TIME", "Current time =====> %s", buff);
|
||||
|
||||
ESP_LOGI(TAG,"====>>> Test data <<<=========");
|
||||
}
|
||||
// ESP_LOGI(TAG,"====>>> Test data <<<=========");
|
||||
// }
|
||||
/*
|
||||
|
||||
uint8_t* test_str[] = {0xA5,0x05,0x4C,0x4C,0x42}; // Example command to request current value
|
||||
@ -216,12 +329,6 @@ void app_main(void)
|
||||
ESP_LOGI(TAG,"*** data send ***");
|
||||
}
|
||||
*/
|
||||
|
||||
/* read the comms-mode from the NVS (if any) */
|
||||
comms_mode = nvm_read_comms_mode();
|
||||
|
||||
if((COMMS_OVER_CELL != comms_mode))
|
||||
{
|
||||
/* Start On-Boarding process */
|
||||
webserver_start();
|
||||
|
||||
@ -231,14 +338,57 @@ void app_main(void)
|
||||
vTaskDelay(750/portTICK_PERIOD_MS);
|
||||
port_red_led_toggle();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
port_blue_led_on();
|
||||
wifi_first_init();
|
||||
Connect_wifi_sta(WIFI_MODE_STA);
|
||||
|
||||
ESP_LOGI(TAG," -------------> Wifi Connected ... :)");
|
||||
|
||||
// xTaskCreate(mqtt_task, "mqtt_task", 4096, NULL, 5, NULL);
|
||||
|
||||
char buf[512];
|
||||
|
||||
// get SP3 update
|
||||
http_client_get(SP3_URL, buf);
|
||||
get_mac_add();
|
||||
|
||||
while(1){
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
// get_time();
|
||||
// ESP_LOGI("TIME", "Current time =====> %s", buff);
|
||||
|
||||
ESP_LOGI(TAG,"====>>> Test data <<<=========");
|
||||
}
|
||||
|
||||
http_client_do_get_request(0, IMEI, buf);
|
||||
http_client_do_get_request(1, IMEI, buf);
|
||||
http_client_do_get_request(2, IMEI, buf);
|
||||
|
||||
while(1){
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
// get_time();
|
||||
// ESP_LOGI("TIME", "Current time =====> %s", buff);
|
||||
|
||||
ESP_LOGI(TAG,"====>>> Test data <<<=========");
|
||||
}
|
||||
|
||||
http_get_request(MCU_CONFIG);
|
||||
|
||||
|
||||
|
||||
|
||||
while(1){
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
// get_time();
|
||||
// ESP_LOGI("TIME", "Current time =====> %s", buff);
|
||||
|
||||
// ESP_LOGI(TAG,"====>>> Test data <<<=========");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
obtain_time(); // Sync time with NTP
|
||||
|
||||
get_time();
|
||||
@ -290,6 +440,7 @@ void app_main(void)
|
||||
ESP_LOGI(TAG, "[APP] Startup..");
|
||||
ESP_LOGI(TAG, "[APP] Free memory: %" PRIu32 " bytes", esp_get_free_heap_size());
|
||||
ESP_LOGI(TAG, "[APP] IDF version: %s", esp_get_idf_version());
|
||||
*/
|
||||
|
||||
/*
|
||||
esp_log_level_set("*", ESP_LOG_INFO);
|
||||
|
@ -8,6 +8,8 @@
|
||||
#ifndef MAIN_MAIN_H_
|
||||
#define MAIN_MAIN_H_
|
||||
|
||||
extern char MAC_ID[15];
|
||||
|
||||
#define SENS_INT_WAKEUP 0
|
||||
#define SENS_INT_WAKEUP0 1
|
||||
|
||||
|
@ -198,7 +198,7 @@ void uart_create_rx_tasks(void)
|
||||
void uart_ifx_init(void)
|
||||
{
|
||||
uart_config_t uart_config = {
|
||||
.baud_rate = 115200,
|
||||
.baud_rate = 4800,
|
||||
.data_bits = UART_DATA_8_BITS,
|
||||
.parity = UART_PARITY_DISABLE,
|
||||
.stop_bits = UART_STOP_BITS_1,
|
||||
|
@ -461,7 +461,8 @@ esp_err_t http_client_do_get_request(get_req_type_t target_url, char* device_ime
|
||||
if(selected_server == SERVER_TWO)
|
||||
{
|
||||
sprintf(server_url, MCU_GET_CONFIG_FLAGS_URL2, device_imei);
|
||||
http_client_get((const char*)server_url,response_buf);
|
||||
|
||||
retval = http_client_get((const char*)MCU_GET_CONFIG_FLAGS_URL2,response_buf);
|
||||
if(retval != WIFI_OK)
|
||||
{
|
||||
selected_server = SERVER_THREE;
|
||||
@ -473,7 +474,8 @@ esp_err_t http_client_do_get_request(get_req_type_t target_url, char* device_ime
|
||||
if(selected_server == SERVER_THREE)
|
||||
{
|
||||
sprintf(server_url, MCU_GET_CONFIG_FLAGS_URL3, device_imei);
|
||||
http_client_get((const char*)server_url,response_buf);
|
||||
// http_client_get((const char*)server_url,response_buf);
|
||||
retval = http_client_get((const char*)MCU_GET_CONFIG_FLAGS_URL3,response_buf);
|
||||
if(retval != WIFI_OK)
|
||||
{
|
||||
selected_server = SERVER_ONE;
|
||||
|
Loading…
Reference in New Issue
Block a user