From a3e0b8a63259555152e80a602caff46be9ac7e7f Mon Sep 17 00:00:00 2001 From: Martin Date: Sat, 2 Feb 2019 20:32:43 +0100 Subject: [PATCH] Create WifiClientSecure_Enterprise.ino --- WifiClientSecure_Enterprise.ino | 105 ++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 WifiClientSecure_Enterprise.ino diff --git a/WifiClientSecure_Enterprise.ino b/WifiClientSecure_Enterprise.ino new file mode 100644 index 0000000..3c38e2d --- /dev/null +++ b/WifiClientSecure_Enterprise.ino @@ -0,0 +1,105 @@ +/*|----------------------------------------------------------|*/ +/*|AckSensors ENTERPRISE connection |*/ +/*|EMAIL: martinius96@gmail.com |*/ +/*|NOT TESTED OFFICIALY YET |*/ +/*|CORE: June 2018 |*/ +/*|----------------------------------------------------------|*/ +#include +#include "esp_wpa2.h" //wpa2 library for connections to Enterprise networks +#include +const char* host = "asksensors.com"; +//-------- Customise these values ----------- +const char* ssid = "eduroam"; +#define EAP_ANONYMOUS_IDENTITY "anonymous@example.com" +#define EAP_IDENTITY "nickname@example.com" +#define EAP_PASSWORD "password" +String apiKeyIn = "XXXX"; // API Key +//-------- END Customise these values ----------- +int counter = 0; +const char* cert = \ + "-----BEGIN CERTIFICATE-----\n" \ + "MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/\n" \ + "MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n" \ + "DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow\n" \ + "PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD\n" \ + "Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\n" \ + "AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O\n" \ + "rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq\n" \ + "OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b\n" \ + "xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw\n" \ + "7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD\n" \ + "aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV\n" \ + "HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG\n" \ + "SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69\n" \ + "ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr\n" \ + "AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz\n" \ + "R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5\n" \ + "JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo\n" \ + "Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ\n" \ + "-----END CERTIFICATE-----\n"; +WiFiClientSecure client; +void setup(){ + // open serial + Serial.begin(9600); + Serial.println("*****************************************************"); + Serial.println("********** Program Start : Connect ESP32 to AskSensors."); + Serial.println("Wait for WiFi... "); + esp_wifi_sta_wpa2_ent_set_identity((uint8_t *)EAP_ANONYMOUS_IDENTITY, strlen(EAP_ANONYMOUS_IDENTITY)); + esp_wifi_sta_wpa2_ent_set_username((uint8_t *)EAP_IDENTITY, strlen(EAP_IDENTITY)); + esp_wifi_sta_wpa2_ent_set_password((uint8_t *)EAP_PASSWORD, strlen(EAP_PASSWORD)); + esp_wpa2_config_t config = WPA2_CONFIG_INIT_DEFAULT(); //set config settings to default + esp_wifi_sta_wpa2_ent_enable(&config); //set config settings to enable function + WiFi.disconnect(true); //disconnect form wifi to set new wifi connection + WiFi.mode(WIFI_STA); //init wifi mode + WiFi.begin(ssid); //connect to wifi + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + counter++; + if(counter>=60){ //after 30 seconds timeout - reset board + ESP.restart(); + } + } + client.setCACert(cert); + // connected + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); +} + +void loop(){ + if (WiFi.status() == WL_CONNECTED) { //if we are connected to Eduroam network + counter = 0; //reset counter + Serial.println("Wifi is still connected with IP: "); + Serial.println(WiFi.localIP()); //inform user about his IP address + }else if (WiFi.status() != WL_CONNECTED) { //if we lost connection, retry + WiFi.begin(ssid); + } + while (WiFi.status() != WL_CONNECTED) { //during lost connection, print dots + delay(500); + Serial.print("."); + counter++; + if(counter>=60){ //30 seconds timeout - reset board + ESP.restart(); + } + } + if (client.connect(host, 443)) { + String url = "/api.asksensors/write/"; + url += apiKeyIn; + url += "?module1="; + url += random(10, 100); + client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "User-Agent: ESP32\r\n" + "Connection: close\r\n\r\n"); + while (client.connected()) { + String line = client.readStringUntil('\n'); + //Serial.println(line); ---> uncomment for see header + if (line == "\r") { + break; + } + } + String line = client.readStringUntil('\n'); + Serial.println(line); + }else{ + Serial.println("Connection unsucessful"); + } + delay(20000); // delay +}