Compare commits
No commits in common. "23c75794c239c8d6e01e36b8dc2261d7d99d16e7" and "55d997c0721d5006a94f45ab7a702ce5096d6409" have entirely different histories.
23c75794c2
...
55d997c072
@ -2154,6 +2154,8 @@ char* get_mac(void){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Initialize. */
|
/* Initialize. */
|
||||||
int comms_init(void)
|
int comms_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -90,9 +90,9 @@ typedef enum
|
|||||||
#define MCU_POST_URL3 MCU_BASE_URL3
|
#define MCU_POST_URL3 MCU_BASE_URL3
|
||||||
|
|
||||||
//URL to get configuration flags from servers 1, 2, and 3
|
//URL to get configuration flags from servers 1, 2, and 3
|
||||||
#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_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/azuma/%s/update/"//MCU_BASE_URL2//config/flag/server2
|
#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/azuma/%s/update/"//MCU_BASE_URL3//config/flag/server3
|
#define MCU_GET_CONFIG_FLAGS_URL3 TESTING_SERVER_BASE_URL"/hae/tempstick/%s/config/"//MCU_BASE_URL3//config/flag/server3
|
||||||
|
|
||||||
/* this endpoint not implemented yet in the code (customer pending) */
|
/* this endpoint not implemented yet in the code (customer pending) */
|
||||||
// if the config_update flag is set
|
// if the config_update flag is set
|
||||||
|
|||||||
193
main/main.c
193
main/main.c
@ -35,7 +35,6 @@
|
|||||||
#include "rtc.h"
|
#include "rtc.h"
|
||||||
|
|
||||||
#include "data_processing.h"
|
#include "data_processing.h"
|
||||||
#include "wifi_Client.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -46,7 +45,6 @@
|
|||||||
#define MQTT_TOPIC_SUB "/topic/qos0"
|
#define MQTT_TOPIC_SUB "/topic/qos0"
|
||||||
#define MQTT_TOPIC_PUB "/topic/qos0"
|
#define MQTT_TOPIC_PUB "/topic/qos0"
|
||||||
|
|
||||||
|
|
||||||
#define WEB_SERVER "54.204.230.201"
|
#define WEB_SERVER "54.204.230.201"
|
||||||
#define WEB_PORT "8085"
|
#define WEB_PORT "8085"
|
||||||
#define WEB_PATH "/hae/azuma/353165803930522/update/"
|
#define WEB_PATH "/hae/azuma/353165803930522/update/"
|
||||||
@ -54,129 +52,16 @@
|
|||||||
#define MCU_PROG_VER "/hae/azuma/353165803930522/mcu_pgm_download/version/"
|
#define MCU_PROG_VER "/hae/azuma/353165803930522/mcu_pgm_download/version/"
|
||||||
#define MCU_UPDATE "/hae/azuma/353165803930522/update/"
|
#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 SP3_URL "http://54.204.230.201:8085/hae/azuma/353165803930522/update/"
|
#define BROCKER_URL_TEST "mqtt://azumamqtt1.cedalo.cloud:1883"
|
||||||
|
|
||||||
//#define BROCKER_URL_TEST "mqtt://azumamqtt1.cedalo.cloud:1883"
|
|
||||||
|
|
||||||
uint8_t comms_mode = DEFAULT_COMMS_MODE;
|
uint8_t comms_mode = DEFAULT_COMMS_MODE;
|
||||||
|
char MAC_ID[15];
|
||||||
char HTTP_GET_DATA[512];
|
char HTTP_GET_DATA[512];
|
||||||
|
|
||||||
const char *TAG = "main";
|
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) {
|
void extract_json(const char *input, char *output) {
|
||||||
const char *start = strchr(input, '{'); // Find the first '{'
|
const char *start = strchr(input, '{'); // Find the first '{'
|
||||||
const char *end = strrchr(input, '}'); // Find the last '}'
|
const char *end = strrchr(input, '}'); // Find the last '}'
|
||||||
@ -202,7 +87,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)
|
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);
|
ESP_LOGD(TAG, "Event dispatched from event loop base=%s, event_id=%" PRIi32 "", base, event_id);
|
||||||
@ -234,7 +119,6 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
void http_get_request(const char *path) {
|
void http_get_request(const char *path) {
|
||||||
char request[512];
|
char request[512];
|
||||||
@ -297,19 +181,22 @@ void app_main(void)
|
|||||||
|
|
||||||
/* Create the UART tasks for both UART0 and UART1 */
|
/* Create the UART tasks for both UART0 and UART1 */
|
||||||
uart_create_rx_tasks();
|
uart_create_rx_tasks();
|
||||||
|
char mac[15];
|
||||||
|
snprintf(mac,sizeof(mac), get_mac());
|
||||||
|
ESP_LOGI(TAG, "======> Mac id: %s", mac);
|
||||||
|
|
||||||
|
|
||||||
// Get firmwae version
|
// Get firmwae version
|
||||||
// const esp_app_desc_t *app_desc = esp_app_get_description();
|
const esp_app_desc_t *app_desc = esp_app_get_description();
|
||||||
// ESP_LOGI(TAG, "Firmware Version: %s", app_desc->version);
|
ESP_LOGI(TAG, "Firmware Version: %s", app_desc->version);
|
||||||
|
|
||||||
// while(1){
|
while(1){
|
||||||
// vTaskDelay(100 / portTICK_PERIOD_MS);
|
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||||
// get_time();
|
// get_time();
|
||||||
// ESP_LOGI("TIME", "Current time =====> %s", buff);
|
// 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
|
uint8_t* test_str[] = {0xA5,0x05,0x4C,0x4C,0x42}; // Example command to request current value
|
||||||
@ -329,6 +216,12 @@ void app_main(void)
|
|||||||
ESP_LOGI(TAG,"*** data send ***");
|
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 */
|
/* Start On-Boarding process */
|
||||||
webserver_start();
|
webserver_start();
|
||||||
|
|
||||||
@ -338,57 +231,14 @@ void app_main(void)
|
|||||||
vTaskDelay(750/portTICK_PERIOD_MS);
|
vTaskDelay(750/portTICK_PERIOD_MS);
|
||||||
port_red_led_toggle();
|
port_red_led_toggle();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
port_blue_led_on();
|
port_blue_led_on();
|
||||||
wifi_first_init();
|
wifi_first_init();
|
||||||
Connect_wifi_sta(WIFI_MODE_STA);
|
Connect_wifi_sta(WIFI_MODE_STA);
|
||||||
|
|
||||||
ESP_LOGI(TAG," -------------> Wifi Connected ... :)");
|
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
|
obtain_time(); // Sync time with NTP
|
||||||
|
|
||||||
get_time();
|
get_time();
|
||||||
@ -440,7 +290,6 @@ void app_main(void)
|
|||||||
ESP_LOGI(TAG, "[APP] Startup..");
|
ESP_LOGI(TAG, "[APP] Startup..");
|
||||||
ESP_LOGI(TAG, "[APP] Free memory: %" PRIu32 " bytes", esp_get_free_heap_size());
|
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_LOGI(TAG, "[APP] IDF version: %s", esp_get_idf_version());
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
esp_log_level_set("*", ESP_LOG_INFO);
|
esp_log_level_set("*", ESP_LOG_INFO);
|
||||||
|
|||||||
@ -8,8 +8,6 @@
|
|||||||
#ifndef MAIN_MAIN_H_
|
#ifndef MAIN_MAIN_H_
|
||||||
#define MAIN_MAIN_H_
|
#define MAIN_MAIN_H_
|
||||||
|
|
||||||
extern char MAC_ID[15];
|
|
||||||
|
|
||||||
#define SENS_INT_WAKEUP 0
|
#define SENS_INT_WAKEUP 0
|
||||||
#define SENS_INT_WAKEUP0 1
|
#define SENS_INT_WAKEUP0 1
|
||||||
|
|
||||||
|
|||||||
@ -198,7 +198,7 @@ void uart_create_rx_tasks(void)
|
|||||||
void uart_ifx_init(void)
|
void uart_ifx_init(void)
|
||||||
{
|
{
|
||||||
uart_config_t uart_config = {
|
uart_config_t uart_config = {
|
||||||
.baud_rate = 4800,
|
.baud_rate = 115200,
|
||||||
.data_bits = UART_DATA_8_BITS,
|
.data_bits = UART_DATA_8_BITS,
|
||||||
.parity = UART_PARITY_DISABLE,
|
.parity = UART_PARITY_DISABLE,
|
||||||
.stop_bits = UART_STOP_BITS_1,
|
.stop_bits = UART_STOP_BITS_1,
|
||||||
|
|||||||
@ -461,8 +461,7 @@ esp_err_t http_client_do_get_request(get_req_type_t target_url, char* device_ime
|
|||||||
if(selected_server == SERVER_TWO)
|
if(selected_server == SERVER_TWO)
|
||||||
{
|
{
|
||||||
sprintf(server_url, MCU_GET_CONFIG_FLAGS_URL2, device_imei);
|
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)
|
if(retval != WIFI_OK)
|
||||||
{
|
{
|
||||||
selected_server = SERVER_THREE;
|
selected_server = SERVER_THREE;
|
||||||
@ -474,8 +473,7 @@ esp_err_t http_client_do_get_request(get_req_type_t target_url, char* device_ime
|
|||||||
if(selected_server == SERVER_THREE)
|
if(selected_server == SERVER_THREE)
|
||||||
{
|
{
|
||||||
sprintf(server_url, MCU_GET_CONFIG_FLAGS_URL3, device_imei);
|
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)
|
if(retval != WIFI_OK)
|
||||||
{
|
{
|
||||||
selected_server = SERVER_ONE;
|
selected_server = SERVER_ONE;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user