92 lines
2.6 KiB
C
92 lines
2.6 KiB
C
/*
|
|
* mqtt_driver.c
|
|
*
|
|
* Created on: 26 May 2026
|
|
* Author: Christian Lind Vie Madsen
|
|
*/
|
|
|
|
#include "mqtt_driver.h"
|
|
#include "mqtt_client.h"
|
|
|
|
// Not important libs..
|
|
#include "esp_log.h"
|
|
|
|
static esp_mqtt_client_handle_t client;
|
|
|
|
uint8_t valid = 0;
|
|
|
|
static void mqtt_event_handler(void *handler_args,
|
|
esp_event_base_t base,
|
|
int32_t event_id,
|
|
void *event_data)
|
|
{
|
|
if (event_id == MQTT_EVENT_CONNECTED) {
|
|
ESP_LOGI("MQTT", "Connected!");
|
|
valid = 1;
|
|
}
|
|
}
|
|
|
|
int mqtt_driver_publish(const char *topic, const char *data){
|
|
|
|
if(!valid)return 1;
|
|
|
|
esp_mqtt_client_publish(
|
|
client,
|
|
topic, // topic
|
|
data, // payload
|
|
0, // length (0 = auto strlen)
|
|
1, // QoS (0,1,2)
|
|
0 // retain flag
|
|
);
|
|
|
|
return 0;
|
|
}
|
|
|
|
const char emqx_ca_cert[] = R"EOF(
|
|
-----BEGIN CERTIFICATE-----
|
|
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
|
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
|
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
|
|
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
|
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
|
|
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
|
|
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
|
|
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
|
|
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
|
|
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
|
|
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
|
|
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
|
|
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
|
|
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
|
|
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
|
|
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
|
|
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
|
|
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
|
MrY=
|
|
-----END CERTIFICATE-----
|
|
)EOF";
|
|
|
|
void mqtt_start(void)
|
|
{
|
|
esp_mqtt_client_config_t cfg = {
|
|
.uri = "mqtts://s960411f.ala.eu-central-1.emqxsl.com:8883",
|
|
.username = "cma",
|
|
.password = "testcma",
|
|
.cert_pem = emqx_ca_cert,
|
|
|
|
};
|
|
|
|
client = esp_mqtt_client_init(&cfg);
|
|
|
|
|
|
esp_mqtt_client_register_event(
|
|
client,
|
|
ESP_EVENT_ANY_ID,
|
|
mqtt_event_handler,
|
|
NULL
|
|
);
|
|
|
|
esp_mqtt_client_start(client);
|
|
}
|