diff --git a/certs/eventgrid.azure.pem_long b/certs/eventgrid.azure.pem_long deleted file mode 100644 index 7a99d7b..0000000 --- a/certs/eventgrid.azure.pem_long +++ /dev/null @@ -1,34 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIF7DCCBXKgAwIBAgITMwAAOwbB7ZfX5rV81AAAAAA7BjAKBggqhkjOPQQDAzBd -MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS4w -LAYDVQQDEyVNaWNyb3NvZnQgQXp1cmUgRUNDIFRMUyBJc3N1aW5nIENBIDAyMB4X -DTI0MDUwOTA4MzM0MloXDTI0MDYyNzIzNTk1OVowbDELMAkGA1UEBhMCVVMxCzAJ -BgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg -Q29ycG9yYXRpb24xHjAcBgNVBAMMFSouZXZlbnRncmlkLmF6dXJlLm5ldDB2MBAG -ByqGSM49AgEGBSuBBAAiA2IABNo1WD1ITcmvbIrygYnhC2D47oZO7b+eMxrHlKDI -9cISbOz3HboMqAj+4eBUJ6Q/GmXbIauMsRdlhQB+nNxTjO/aXW9nK1gX+57qk8yH -40vVpMhRqIhBHBMKTiyY7d5V+aOCA+MwggPfMIIBBQYKKwYBBAHWeQIEAgSB9gSB -8wDxAHYAdv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGPXIXnAQAA -BAMARzBFAiEA2Xiv4QRy2EPdNxir/xoDEFfAuBG3pRJ7CYb0UG4MWxICIC4fBr0D -enSOkfazlhbOJKM/tS5jxiRwJwN2ekVUhabLAHcASLDja9qmRzQP5WoC+p0w6xxS -ActW3SyB2bu/qznYhHMAAAGPXIXm+QAABAMASDBGAiEAi41NhUHiUY1k7r1MERDM -Pt5oEkx8+xzZsL0CnpgW5PMCIQD0bzit3HySHw8KLEOTCkxL0ygdUKtDV3P58qM8 -MNmU0DAnBgkrBgEEAYI3FQoEGjAYMAoGCCsGAQUFBwMCMAoGCCsGAQUFBwMBMDwG -CSsGAQQBgjcVBwQvMC0GJSsGAQQBgjcVCIe91xuB5+tGgoGdLo7QDIfw2h1dgoTl -aYLzpz4CAWQCASYwgbQGCCsGAQUFBwEBBIGnMIGkMHMGCCsGAQUFBzAChmdodHRw -Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMEF6 -dXJlJTIwRUNDJTIwVExTJTIwSXNzdWluZyUyMENBJTIwMDIlMjAtJTIweHNpZ24u -Y3J0MC0GCCsGAQUFBzABhiFodHRwOi8vb25lb2NzcC5taWNyb3NvZnQuY29tL29j -c3AwHQYDVR0OBBYEFFuPa3785IaPHHkuMmN+Lga0w0ujMA4GA1UdDwEB/wQEAwIH -gDBlBgNVHREEXjBcghUqLmV2ZW50Z3JpZC5henVyZS5uZXSCIioud2VzdHVzMi0x -LnRzLmV2ZW50Z3JpZC5henVyZS5uZXSCHyoud2VzdHVzMi0xLmV2ZW50Z3JpZC5h -enVyZS5uZXQwDAYDVR0TAQH/BAIwADBqBgNVHR8EYzBhMF+gXaBbhllodHRwOi8v -d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBBenVyZSUy -MEVDQyUyMFRMUyUyMElzc3VpbmclMjBDQSUyMDAyLmNybDBmBgNVHSAEXzBdMFEG -DCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29m -dC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wCAYGZ4EMAQICMB8GA1Ud -IwQYMBaAFJ3lDnc3R54JM9mQvioJwhJ/TtKjMB0GA1UdJQQWMBQGCCsGAQUFBwMC -BggrBgEFBQcDATAKBggqhkjOPQQDAwNoADBlAjAmmC6OfNCt5iiGDjth3FzRFx/b -INmhSkZzZGHjv91uMdStaLfZzlupMmYBXcdtSt0CMQC8XxfbpShXJCRHDkjdZzaB -Oy8GeMOEivVZoKTpcEDZuFklOHRlD+1uFWgQP2xmGx0= ------END CERTIFICATE----- diff --git a/main/App.cpp b/main/App.cpp index cd96fdf..e94f6b4 100644 --- a/main/App.cpp +++ b/main/App.cpp @@ -12,9 +12,11 @@ #include #include "Mqtt.h" +#include #define LED_PIN 26 +//static const char * TAG = "app"; App::App() { @@ -35,6 +37,14 @@ void App::init() uint32_t status = m_wifi->start(); if(status == WH_OK) { + ESP_LOGI(TAG, "Getting local time"); + struct tm timeinfo; + configTime(0, 0, "pool.ntp.org"); + if(getLocalTime(&timeinfo)) + ESP_LOGI(TAG, "Got local time"); + else + ESP_LOGE(TAG, "Failed to get local time"); + m_led->setColor(0, 0, 0); MDNS.begin("esp32"); needs_provision = false; @@ -52,9 +62,9 @@ void App::init() ota.start(); m_led->setColor(0, 0, 0); - // Mqtt m; - // m.test(); - Mqtt::test(); + Mqtt m; + m.test(); + // Mqtt::test(); } void App::start() diff --git a/main/Mqtt.h b/main/Mqtt.h index a92290f..7557033 100644 --- a/main/Mqtt.h +++ b/main/Mqtt.h @@ -27,7 +27,7 @@ using namespace std::placeholders; class Mqtt { -#if 1 +#if 0 public: static void log_error_if_nonzero(const char *message, int error_code) @@ -131,65 +131,93 @@ static void test() } #endif public: -#if 0 +#if 1 void callback(char* topic, byte* payload, unsigned int length) { - printf("Message arrived in topic: %s", topic); - printf("Message:\n"); + printf("Message arrived in topic: %s\n", topic); + printf("Message:'"); for (int i = 0; i < length; i++) { printf("%c", (char)payload[i]); } - printf("\n-----------------------\n"); + printf("'\n"); + printf("-----------------------\n"); } +#include "time.h" + + + void printLocalTime() + { + struct tm timeinfo; + char buf[48]; + if(!getLocalTime(&timeinfo)){ + printf("Failed to obtain time\n"); + return; + } + strftime(buf, 26, "%Y-%m-%d %H:%M:%S", &timeinfo); + ESP_LOGI(TAG, "%s", buf); + } + void test() { - const char* mqtt_broker = "91.121.93.94";//"40.64.128.45"; // "mqtt-dev-server.westus2-1.ts.eventgrid.azure.net"; - const char* topic = "test"; - const int mqtt_port = 8884 ; - - // Set ssl certificate - const char* root_ca = (const char*)mosq_bin;// ca_bin; - const char* client_cert = (const char *)cli_cert_bin;//cert_bin; - const char* client_key = (const char *)cli_key_bin;//key_bin; - - printf(root_ca); - - ESP_ERROR_CHECK(esp_netif_init()); + const char* mqtt_broker = "mqtt-dev-server.westus2-1.ts.eventgrid.azure.net"; + const char* topic = "wellnuotopics/topic1"; + const int mqtt_port = 8883 ; WiFiClientSecure espClient; PubSubClient client(espClient); - //printf("'%s'", root_ca); - - espClient.setCACert(root_ca); - espClient.setCertificate(client_cert); // for client verification - espClient.setPrivateKey(client_key); // for client verification - + espClient.setCACert((const char*)server_cert); + espClient.setCertificate((const char *)client_cert); // for client verification + espClient.setPrivateKey((const char *)client_key); // for client verification client.setServer(mqtt_broker, mqtt_port); client.setCallback(std::bind(&Mqtt::callback, this, _1, _2, _3)); + printLocalTime(); + while (!client.connected()) { String client_id = "esp32-client"; client_id += String(WiFi.macAddress()); - // Print the Name and the id of the esp32 controller - ESP_LOGI("", "The client %s connects to the public mqtt broker\n", client_id.c_str()); - if (client.connect( client_id.c_str())) { - ESP_LOGI("", "Public emqx mqtt broker connected\n"); + // Print the Name and the id of the esp32 controller + ESP_LOGI("", "connecting client %s mqtt broker...", client_id.c_str()); + if (client.connect("Esp32 client", "client1-authn-ID", NULL)) { + ESP_LOGI("", "Public emqx mqtt broker connected"); } else { - ESP_LOGI("", "failed with state %d", client.state()); - delay(200000); + ESP_LOGE("", "failed with state %d", client.state()); + delay(5000); } } - // Publish and Subscribe - client.publish(topic, "Hi I'm ESP32 ^^"); - client.subscribe(topic); + + bool val; + + // val = client.subscribe(topic); + // if(val) + // ESP_LOGI(TAG, "sub ok"); + // else + // ESP_LOGI(TAG, "sub failed"); + // Publish and Subscribe + + // val = client.publish(topic, "Hi I'm ESP32 ^^"); + // if(val) + // ESP_LOGI(TAG, "publish ok"); + // else + // ESP_LOGI(TAG, "publish failed"); + + int n = 0; while(true) { - client.loop(); - delay(1000); +// client.loop(); + delay(2500); + + val = client.publish(topic, "Hi I'm ESP32 ^^"); + if(val) + ESP_LOGI(TAG, "%d publish ok", n); + else + ESP_LOGE(TAG, "%d publish failed", n); + + n++; } } diff --git a/main/OTA.cpp b/main/OTA.cpp index c77d8e2..6f792b3 100644 --- a/main/OTA.cpp +++ b/main/OTA.cpp @@ -122,7 +122,7 @@ void OTA::start() memcpy(&new_app_info, &otaWriteData[sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t)], sizeof(esp_app_desc_t)); - ESP_LOGI(TAG, "New firmware"); + ESP_LOGI(TAG, "Remote firmware"); ESP_LOGI(TAG, "version: %s", new_app_info.version); ESP_LOGI(TAG, " name: %s", new_app_info.project_name); ESP_LOGI(TAG, " c time: %s", new_app_info.time); diff --git a/main/Wifi.cpp b/main/Wifi.cpp index 0b3d5fc..d8c973f 100644 --- a/main/Wifi.cpp +++ b/main/Wifi.cpp @@ -67,11 +67,11 @@ void Wifi::wifi_event(arduino_event_id_t event, arduino_event_info_t info) /// @return ok/not connected uint32_t Wifi::connectTo(int index) { -IPAddress local_IP(192, 168, 1, 155); -IPAddress gateway(192, 168, 1, 100); -IPAddress subnet(255, 255, 255, 0); -IPAddress primaryDNS(8, 8, 8, 8); -IPAddress secondaryDNS(8, 8, 4, 4); + IPAddress local_IP(0, 0, 0, 0); + IPAddress gateway(0, 0, 0, 0); + IPAddress subnet(255, 255, 255, 0); + IPAddress primaryDNS(8, 8, 8, 8); + IPAddress secondaryDNS(8, 8, 4, 4); ESP_LOGI(TAG, "Connecting to %s...", SETTINGS.wifi.entry[index].ssid);