aboutsummaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/.clang-format6
-rw-r--r--firmware/.gitignore20
-rw-r--r--firmware/README1
-rw-r--r--firmware/src/mqtt.c93
-rw-r--r--firmware/src/wifi.c35
5 files changed, 67 insertions, 88 deletions
diff --git a/firmware/.clang-format b/firmware/.clang-format
deleted file mode 100644
index b838e4d..0000000
--- a/firmware/.clang-format
+++ /dev/null
@@ -1,6 +0,0 @@
1BasedOnStyle: LLVM
2IndentWidth: 8
3UseTab: ForIndentation
4BreakBeforeBraces: Linux
5AllowShortIfStatementsOnASingleLine: false
6ColumnLimit: 80
diff --git a/firmware/.gitignore b/firmware/.gitignore
deleted file mode 100644
index 7a5e174..0000000
--- a/firmware/.gitignore
+++ /dev/null
@@ -1,20 +0,0 @@
1.env
2.pio/
3.vscode/
4*.elf
5*.bin
6*.hex
7*.map
8*.pyc
9__pycache__/
10*.DS_Store
11*~
12*.swp
13*.swo
14*.swn
15*.o
16*.d
17*.a
18*.so
19*.log
20.test/
diff --git a/firmware/README b/firmware/README
new file mode 100644
index 0000000..90c75fe
--- /dev/null
+++ b/firmware/README
@@ -0,0 +1 @@
ESP 32 Free-Rtos based firmware
diff --git a/firmware/src/mqtt.c b/firmware/src/mqtt.c
index 716feec..90451bc 100644
--- a/firmware/src/mqtt.c
+++ b/firmware/src/mqtt.c
@@ -27,59 +27,62 @@
27static esp_mqtt_client_handle_t client; 27static esp_mqtt_client_handle_t client;
28 28
29static void mqtt_event_handler(void *handler_args, esp_event_base_t base, 29static void mqtt_event_handler(void *handler_args, esp_event_base_t base,
30 int32_t event_id, void *event_data) { 30 int32_t event_id, void *event_data)
31 esp_mqtt_event_handle_t event = event_data; 31{
32 esp_mqtt_event_handle_t event = event_data;
32 33
33 switch (event->event_id) { 34 switch (event->event_id) {
34 case MQTT_EVENT_CONNECTED: 35 case MQTT_EVENT_CONNECTED:
35 printf("MQTT connected!\n"); 36 printf("MQTT connected!\n");
36 esp_mqtt_client_subscribe(event->client, SUB_TOPIC, 1); 37 esp_mqtt_client_subscribe(event->client, SUB_TOPIC, 1);
37 break; 38 break;
38 39
39 case MQTT_EVENT_DATA: { 40 case MQTT_EVENT_DATA: {
40 char topic[event->topic_len + 1]; 41 char topic[event->topic_len + 1];
41 char data[event->data_len + 1]; 42 char data[event->data_len + 1];
42 memcpy(topic, event->topic, event->topic_len); 43 memcpy(topic, event->topic, event->topic_len);
43 topic[event->topic_len] = '\0'; 44 topic[event->topic_len] = '\0';
44 memcpy(data, event->data, event->data_len); 45 memcpy(data, event->data, event->data_len);
45 data[event->data_len] = '\0'; 46 data[event->data_len] = '\0';
46 47
47 printf("MQTT Msg received\nTopic: %s\nData: %s\n", topic, data); 48 printf("MQTT Msg received\nTopic: %s\nData: %s\n", topic, data);
48 49
49 char *endptr; 50 char *endptr;
50 long long sent = strtoll(data, &endptr, 10); 51 long long sent = strtoll(data, &endptr, 10);
51 if (endptr != data) { 52 if (endptr != data) {
52 long long now = esp_timer_get_time() / 1000ULL; 53 long long now = esp_timer_get_time() / 1000ULL;
53 long long rtt = now - sent; 54 long long rtt = now - sent;
54 printf("RTT: %lld ms\n", rtt); 55 printf("RTT: %lld ms\n", rtt);
55 } 56 }
56 break; 57 break;
57 } 58 }
58 59
59 default: 60 default:
60 break; 61 break;
61 } 62 }
62} 63}
63 64
64static void publisher_task(void *pvParameters) { 65static void publisher_task(void *pvParameters)
65 while (1) { 66{
66 char buf[BUFFER_SIZE]; 67 while (1) {
67 snprintf(buf, BUFFER_SIZE, "%lld", 68 char buf[BUFFER_SIZE];
68 (long long)(esp_timer_get_time() / 1000ULL)); 69 snprintf(buf, BUFFER_SIZE, "%lld",
69 esp_mqtt_client_publish(client, PUB_TOPIC, buf, 0, 1, 0); 70 (long long)(esp_timer_get_time() / 1000ULL));
70 vTaskDelay(pdMS_TO_TICKS(PUBLISH_INTERVAL_MS)); 71 esp_mqtt_client_publish(client, PUB_TOPIC, buf, 0, 1, 0);
71 } 72 vTaskDelay(pdMS_TO_TICKS(PUBLISH_INTERVAL_MS));
73 }
72} 74}
73 75
74void mqtt_app_start(void) { 76void mqtt_app_start(void)
75 esp_mqtt_client_config_t mqtt_cfg = { 77{
76 .broker.address.uri = MQTT_URI, 78 esp_mqtt_client_config_t mqtt_cfg = {
77 }; 79 .broker.address.uri = MQTT_URI,
78 client = esp_mqtt_client_init(&mqtt_cfg); 80 };
79 esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, 81 client = esp_mqtt_client_init(&mqtt_cfg);
80 NULL); 82 esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID,
81 esp_mqtt_client_start(client); 83 mqtt_event_handler, NULL);
84 esp_mqtt_client_start(client);
82 85
83 xTaskCreate(publisher_task, "publisher_task", PUBLISHER_TASK_STACK_SIZE, NULL, 86 xTaskCreate(publisher_task, "publisher_task", PUBLISHER_TASK_STACK_SIZE,
84 PUBLISHER_TASK_PRIORITY, NULL); 87 NULL, PUBLISHER_TASK_PRIORITY, NULL);
85} 88}
diff --git a/firmware/src/wifi.c b/firmware/src/wifi.c
index 8d6b29d..ea76f24 100644
--- a/firmware/src/wifi.c
+++ b/firmware/src/wifi.c
@@ -24,26 +24,27 @@
24 * 24 *
25 * The SSID and password are defined in the configuration headers. 25 * The SSID and password are defined in the configuration headers.
26 */ 26 */
27void wifi_init_sta(void) { 27void wifi_init_sta(void)
28 esp_netif_create_default_wifi_sta(); 28{
29 esp_netif_create_default_wifi_sta();
29 30
30 wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); 31 wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
31 if (esp_wifi_init(&cfg) != ESP_OK) { 32 if (esp_wifi_init(&cfg) != ESP_OK) {
32 return; 33 return;
33 } 34 }
34 35
35 esp_wifi_set_mode(WIFI_MODE_STA); 36 esp_wifi_set_mode(WIFI_MODE_STA);
36 esp_wifi_start(); 37 esp_wifi_start();
37 38
38 wifi_scan_start(); 39 wifi_scan_start();
39 vTaskDelay(pdMS_TO_TICKS(WIFI_SCAN_DELAY_MS)); 40 vTaskDelay(pdMS_TO_TICKS(WIFI_SCAN_DELAY_MS));
40 41
41 wifi_config_t wifi_config = {0}; 42 wifi_config_t wifi_config = {0};
42 strncpy((char *)wifi_config.sta.ssid, WIFI_SSID, 43 strncpy((char *)wifi_config.sta.ssid, WIFI_SSID,
43 sizeof(wifi_config.sta.ssid) - 1); 44 sizeof(wifi_config.sta.ssid) - 1);
44 strncpy((char *)wifi_config.sta.password, WIFI_PASS, 45 strncpy((char *)wifi_config.sta.password, WIFI_PASS,
45 sizeof(wifi_config.sta.password) - 1); 46 sizeof(wifi_config.sta.password) - 1);
46 47
47 esp_wifi_set_config(WIFI_IF_STA, &wifi_config); 48 esp_wifi_set_config(WIFI_IF_STA, &wifi_config);
48 esp_wifi_connect(); 49 esp_wifi_connect();
49} 50}