1
- /* |----------------------------------------------------------|*/
2
- /* |WORKING EXAMPLE FOR HTTPS CONNECTION |*/
3
- /* |TESTED BOARDS: Devkit v1 DOIT, Devkitc v4 |*/
4
- /* |CORE: June 2018 |*/
5
- /* |----------------------------------------------------------|*/
1
+ /* |-----------------------------------------------------------|*/
2
+ /* |WORKING EXAMPLE FOR HTTPS CONNECTION |*/
3
+ /* |Author: Bc. Martin Chlebovec |*/
4
+ /* |Technical University of Košice |*/
5
+ /* |TESTED BOARDS: Devkit v1 DOIT, Devkitc v4 |*/
6
+ /* |CORE: 0.9x, 1.0.0, 1.0.1 tested, working (newer not tested)|*/
7
+ /* |Supported methods: PEAP + MsCHAPv2, EAP-TTLS + MsCHAPv2 |*/
8
+ /* |-----------------------------------------------------------|*/
9
+
6
10
#include < WiFi.h>
7
11
#include < WiFiClientSecure.h>
8
12
#include " esp_wpa2.h"
9
13
#include < Wire.h>
10
- #
define EAP_IDENTITY " identity" // if connecting from another corporation, use [email protected] in Eduroam
11
- #define EAP_PASSWORD " password" // your Eduroam password
12
- const char * ssid = " eduroam" ; // Eduroam SSID
13
- const char * host = " arduino.php5.sk" ; // external server domain for HTTP connection after authentification
14
+ #
define EAP_ANONYMOUS_IDENTITY " [email protected] " // anonymous identity
15
+ #
define EAP_IDENTITY " [email protected] " // user identity
16
+ #define EAP_PASSWORD " password" // eduroam user password
17
+ const char * ssid = " eduroam" ; // eduroam SSID
18
+ const char * host = " arduino.php5.sk" ; // external server domain for HTTPS connection
14
19
int counter = 0 ;
15
- const char * test_root_ca= \
16
- " -----BEGIN CERTIFICATE-----\n " \
17
- " MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\n " \
18
- " MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n " \
19
- " d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n " \
20
- " QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\n " \
21
- " MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n " \
22
- " b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n " \
23
- " 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\n " \
24
- " CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\n " \
25
- " nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n " \
26
- " 43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\n " \
27
- " T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\n " \
28
- " gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\n " \
29
- " BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\n " \
30
- " TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\n " \
31
- " DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\n " \
32
- " hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n " \
33
- " 06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\n " \
34
- " PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\n " \
35
- " YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\n " \
36
- " CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n " \
37
- " -----END CERTIFICATE-----\n " ;
20
+ const char * test_root_ca = \
21
+ " -----BEGIN CERTIFICATE-----\n " \
22
+ " MIIEsTCCA5mgAwIBAgIQCKWiRs1LXIyD1wK0u6tTSTANBgkqhkiG9w0BAQsFADBh\n " \
23
+ " MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n " \
24
+ " d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n " \
25
+ " QTAeFw0xNzExMDYxMjIzMzNaFw0yNzExMDYxMjIzMzNaMF4xCzAJBgNVBAYTAlVT\n " \
26
+ " MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n " \
27
+ " b20xHTAbBgNVBAMTFFJhcGlkU1NMIFJTQSBDQSAyMDE4MIIBIjANBgkqhkiG9w0B\n " \
28
+ " AQEFAAOCAQ8AMIIBCgKCAQEA5S2oihEo9nnpezoziDtx4WWLLCll/e0t1EYemE5n\n " \
29
+ " +MgP5viaHLy+VpHP+ndX5D18INIuuAV8wFq26KF5U0WNIZiQp6mLtIWjUeWDPA28\n " \
30
+ " OeyhTlj9TLk2beytbtFU6ypbpWUltmvY5V8ngspC7nFRNCjpfnDED2kRyJzO8yoK\n " \
31
+ " MFz4J4JE8N7NA1uJwUEFMUvHLs0scLoPZkKcewIRm1RV2AxmFQxJkdf7YN9Pckki\n " \
32
+ " f2Xgm3b48BZn0zf0qXsSeGu84ua9gwzjzI7tbTBjayTpT+/XpWuBVv6fvarI6bik\n " \
33
+ " KB859OSGQuw73XXgeuFwEPHTIRoUtkzu3/EQ+LtwznkkdQIDAQABo4IBZjCCAWIw\n " \
34
+ " HQYDVR0OBBYEFFPKF1n8a8ADIS8aruSqqByCVtp1MB8GA1UdIwQYMBaAFAPeUDVW\n " \
35
+ " 0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEF\n " \
36
+ " BQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQo\n " \
37
+ " MCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBCBgNVHR8E\n " \
38
+ " OzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9i\n " \
39
+ " YWxSb290Q0EuY3JsMGMGA1UdIARcMFowNwYJYIZIAYb9bAECMCowKAYIKwYBBQUH\n " \
40
+ " AgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCwYJYIZIAYb9bAEBMAgG\n " \
41
+ " BmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggEBAH4jx/LKNW5ZklFc\n " \
42
+ " YWs8Ejbm0nyzKeZC2KOVYR7P8gevKyslWm4Xo4BSzKr235FsJ4aFt6yAiv1eY0tZ\n " \
43
+ " /ZN18bOGSGStoEc/JE4ocIzr8P5Mg11kRYHbmgYnr1Rxeki5mSeb39DGxTpJD4kG\n " \
44
+ " hs5lXNoo4conUiiJwKaqH7vh2baryd8pMISag83JUqyVGc2tWPpO0329/CWq2kry\n " \
45
+ " qv66OSMjwulUz0dXf4OHQasR7CNfIr+4KScc6ABlQ5RDF86PGeE6kdwSQkFiB/cQ\n " \
46
+ " ysNyq0jEDQTkfa2pjmuWtMCNbBnhFXBYejfubIhaUbEv2FOQB3dCav+FPg5eEveX\n " \
47
+ " TVyMnGo=\n " \
48
+ " -----END CERTIFICATE-----\n " ;
38
49
// You can use x.509 client certificates if you want
39
50
// const char* test_client_key = ""; //to verify the client
40
51
// const char* test_client_cert = ""; //to verify the client
@@ -47,42 +58,42 @@ void setup() {
47
58
Serial.println (ssid);
48
59
WiFi.disconnect (true ); // disconnect form wifi to set new wifi connection
49
60
WiFi.mode (WIFI_STA); // init wifi mode
50
- esp_wifi_sta_wpa2_ent_set_identity ((uint8_t *)EAP_IDENTITY , strlen (EAP_IDENTITY )); // provide identity
51
- esp_wifi_sta_wpa2_ent_set_username ((uint8_t *)EAP_IDENTITY, strlen (EAP_IDENTITY)); // provide username --> identity and username is same
61
+ esp_wifi_sta_wpa2_ent_set_identity ((uint8_t *)EAP_ANONYMOUS_IDENTITY , strlen (EAP_ANONYMOUS_IDENTITY )); // provide identity
62
+ esp_wifi_sta_wpa2_ent_set_username ((uint8_t *)EAP_IDENTITY, strlen (EAP_IDENTITY)); // provide username
52
63
esp_wifi_sta_wpa2_ent_set_password ((uint8_t *)EAP_PASSWORD, strlen (EAP_PASSWORD)); // provide password
53
- esp_wpa2_config_t config = WPA2_CONFIG_INIT_DEFAULT (); // set config settings to default
54
- esp_wifi_sta_wpa2_ent_enable (&config); // set config settings to enable function
64
+ esp_wpa2_config_t config = WPA2_CONFIG_INIT_DEFAULT ();
65
+ esp_wifi_sta_wpa2_ent_enable (&config);
55
66
WiFi.begin (ssid); // connect to wifi
56
67
while (WiFi.status () != WL_CONNECTED) {
57
68
delay (500 );
58
69
Serial.print (" ." );
59
70
counter++;
60
- if (counter>= 60 ){ // after 30 seconds timeout - reset board
71
+ if (counter >= 60 ) { // after 30 seconds timeout - reset board (on unsucessful connection)
61
72
ESP.restart ();
62
73
}
63
74
}
64
75
client.setCACert (test_root_ca);
65
- // client.setCertificate(test_client_key); // for client verification
66
- // client.setPrivateKey(test_client_cert); // for client verification
76
+ // client.setCertificate(test_client_key); // for client verification - certificate
77
+ // client.setPrivateKey(test_client_cert); // for client verification - private key
67
78
Serial.println (" " );
68
79
Serial.println (" WiFi connected" );
69
- Serial.println (" IP address set: " );
80
+ Serial.println (" IP address set: " );
70
81
Serial.println (WiFi.localIP ()); // print LAN IP
71
82
}
72
83
void loop () {
73
- if (WiFi.status () == WL_CONNECTED) { // if we are connected to Eduroam network
84
+ if (WiFi.status () == WL_CONNECTED) { // if we are connected to eduroam network
74
85
counter = 0 ; // reset counter
75
- Serial.println (" Wifi is still connected with IP: " );
86
+ Serial.println (" Wifi is still connected with IP: " );
76
87
Serial.println (WiFi.localIP ()); // inform user about his IP address
77
- }else if (WiFi.status () != WL_CONNECTED) { // if we lost connection, retry
78
- WiFi.begin (ssid);
88
+ } else if (WiFi.status () != WL_CONNECTED) { // if we lost connection, retry
89
+ WiFi.begin (ssid);
79
90
}
80
91
while (WiFi.status () != WL_CONNECTED) { // during lost connection, print dots
81
92
delay (500 );
82
93
Serial.print (" ." );
83
94
counter++;
84
- if (counter>= 60 ){ // 30 seconds timeout - reset board
85
- ESP.restart ();
95
+ if (counter >= 60 ) { // 30 seconds timeout - reset board
96
+ ESP.restart ();
86
97
}
87
98
}
88
99
Serial.print (" Connecting to website: " );
@@ -98,9 +109,9 @@ void loop() {
98
109
}
99
110
}
100
111
String line = client.readStringUntil (' \n ' );
101
- Serial.println (line);
102
- }else {
103
- Serial.println (" Connection unsucessful" );
104
- }
112
+ Serial.println (line);
113
+ } else {
114
+ Serial.println (" Connection unsucessful" );
115
+ }
105
116
delay (5000 );
106
117
}
0 commit comments