Differences

This shows you the differences between two versions of the page.

Link to this comparison view

iothings:laboratoare:2025_code:lab9_1 [2025/11/23 13:42]
dan.tudose
iothings:laboratoare:2025_code:lab9_1 [2025/11/24 16:58] (current)
dan.tudose
Line 18: Line 18:
 const char* DEVICE_PASSWORD = "​DEVICE_PASSWORD";​ const char* DEVICE_PASSWORD = "​DEVICE_PASSWORD";​
 const char* DEVICE_ID ​      = "​sparrow-01";​ const char* DEVICE_ID ​      = "​sparrow-01";​
- 
-// Google GTS Root R1 (cross-signed by GlobalSign Root CA), seen in TLS chain for 
-// identitytoolkit.googleapis.com and *.firebaseio.com (captured via openssl s_client) 
-static const char GOOGLE_ROOT_CA[] PROGMEM = R"EOF( 
------BEGIN CERTIFICATE----- 
-MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/​E8FjTDTANBgkqhkiG9w0BAQsFADBX 
-MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE 
-CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYx 
-OTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT 
-GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIx 
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/​lD63 
-ladAPKH9gvl9MgaCcfb2jH/​76Nu8ai6Xl6OMS/​kr9rH5zoQdsfnFl97vufKj6bwS 
-iV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/​AmQ351k 
-KSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZ 
-DrXYfiYaRQM9sHmklCitD38m5agI/​pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zk 
-j5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5 
-cuHKZPfmghCN6J3Cioj6OGaK/​GP5Afl4/​Xtcd/​p2h/​rs37EOeZVXtL0m79YB0esW 
-CruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499 
-iYH6TKX/​1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35Ei 
-Eua++tgy/​BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbap 
-sZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/​0lUTbiSw1nH69MG6zO0b 
-9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/​wQEAwIBhjAP 
-BgNVHRMBAf8EBTADAQH/​MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/​wiRNxPjAf 
-BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//​z9SzBgBggrBgEFBQcBAQRUMFIw 
-JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUH 
-MAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6Al 
-oCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAy 
-MAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIF 
-AwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9 
-NR3t5P+T4Vxfq7vqfM/​b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/​olUazsaL+yyEn9 
-WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/​AhSrw 
-9U5pCZEt4Wi4wStz6dTZ/​CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy 
-+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvi 
-d0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/​yilrbCgj8= 
------END CERTIFICATE----- 
-)EOF"; 
  
 // Hardware (adapt to your Sparrow board) // Hardware (adapt to your Sparrow board)
-#define I2C_SDA ​      ​21 ​  ​ +#define I2C_SDA ​      21 
-#define I2C_SCL ​      ​22 ​  ​ +#define I2C_SCL ​      22 
-#define NEOPIXEL_PIN ​ 3    +#define NEOPIXEL_PIN ​ 3
 #define MIN_VALID_EPOCH 1577836800UL // Jan 1 2020 used to detect if NTP time is set #define MIN_VALID_EPOCH 1577836800UL // Jan 1 2020 used to detect if NTP time is set
  
Line 99: Line 63:
     Serial.println("​NTP time synced"​);​     Serial.println("​NTP time synced"​);​
   }   }
 +}
 +
 +bool waitForTime(uint32_t timeoutMs = 8000) {
 +  unsigned long start = millis();
 +  while (!hasValidTime() && millis() - start < timeoutMs) {
 +    syncTimeIfNeeded();​
 +    delay(200);
 +  }
 +  return hasValidTime();​
 } }
  
Line 367: Line 340:
  
   connectWiFi();​   connectWiFi();​
-  ​syncTimeIfNeeded();+  ​waitForTime();
  
   secureClient.setTimeout(15000);​   secureClient.setTimeout(15000);​
-  secureClient.setCACert(GOOGLE_ROOT_CA); // validate ​HTTPS using Google root+  secureClient.setInsecure(); // NOTE: uses HTTPS but skips cert validation
  
   initBME();   initBME();
iothings/laboratoare/2025_code/lab9_1.1763898141.txt.gz · Last modified: 2025/11/23 13:42 by dan.tudose
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0