Last active
February 14, 2018 20:54
Revisions
-
janhajk revised this gist
Feb 14, 2018 . 1 changed file with 43 additions and 10 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,20 +1,34 @@ #include <ESP8266WiFi.h> // Mit oder ohne Verschlüsselung wählen (Zeile ausklammern die nicht gebraucht wird) // Für Verbindungen über Port 80 #include <WiFiClient.h> // Für Verbindung über Verschlüsselten (SSL) Port z.B. 443 //#include <WiFiClientSecure.h> // den Fingerprint (SHA1) kann man im Browser der entsprechenden Webseite // innerhalb des Sicherheitszertifikates abfragen //const char* fingerprint = "D0 26 AB 06 64 07 BC 88 56 6D 83 BE 0A 29 00 B5 10 E5 27 D2"; // W-Lan Zugansdaten const char WIFI_SSID[] = "MEIN_WLAN_SSID"; const char WIFI_PSK[] = "MEIN_WLAN_PASSWORT"; // Die Adresse, zu welcher eine GET-Abfrage gemacht werden soll const char* host = "www.beispiel.ch"; const int port = 80; // 80 oder 443 für SSL // Pin Definitionen const int LED_PIN = LED_BUILTIN; // Client // Unverschlüsselt oder Verschlüsselt WiFiClient client; //WiFiClientSecure client; // Setup wird beim Programmstart einmal ausgeführt void setup() { @@ -39,8 +53,18 @@ void loop() { // Wenn der Client läuft, dann werden die Daten eingelesen und ausgegeben if ( client.available() ) { while (client.connected()) { String line = client.readStringUntil('\n'); if (line == "\r") { Serial.println("Header empfangen."); break; } } String line = client.readStringUntil('\n'); Serial.println("Antwort von host:"); Serial.println("=========="); Serial.println(line); Serial.println("=========="); } // Wenn der Client für die Abfrage getrennt wurde (also Abfrage beendet), dann @@ -94,17 +118,26 @@ void connectWiFi() { // Eine HTTP GET Abfrage ausführen bool getPage() { Serial.print("Verbindung zu "); Serial.println(host); // Versuchen mit der Adresse zu verbinden if ( !client.connect(host, port) ) { return false; } // Wird nur bei SSL verwendet //if (client.verify(fingerprint, host)) { // Serial.println("Zertifikate stimmen überein"); //} else { // Serial.println("Zertifikate stimmen nicht überein!"); // return false; //} // HTTP GET request ausführen // index.html kann man mit dem Pfad ersetzen, z.B. /api/v1/temperatur client.println("GET /index.html HTTP/1.1"); client.print("Host: "); client.println(host); client.println("Connection: close"); client.println(); -
janhajk revised this gist
Feb 14, 2018 . 1 changed file with 6 additions and 6 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,4 @@ #include <ESP8266WiFi.h> #include <WiFiClient.h> @@ -10,15 +11,15 @@ const char http_site[] = "www.beispiel.ch"; const int http_port = 80; // Pin Definitionen const int LED_PIN = LED_BUILTIN; // Globale Variablen WiFiClient client; // Setup wird beim Programmstart einmal ausgeführt void setup() { // Set up serial console to read web page Serial.begin(115200); Serial.print("Starte GET Versuch..."); // LED Pin wird auf OUTPUT gesetzt, damit wir sie ein und ausschalten können @@ -54,7 +55,7 @@ void loop() { } // LED ausschalten digitalWrite(LED_PIN, HIGH); Serial.println("GET Request beendet"); @@ -88,7 +89,7 @@ void connectWiFi() { } // Wenn die Verbindung erfolgreich ist, dann LED einschalten digitalWrite(LED_PIN, LOW); } // Eine HTTP GET Abfrage ausführen @@ -108,5 +109,4 @@ bool getPage() { client.println(); return true; } -
janhajk created this gist
Feb 13, 2018 .There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,112 @@ #include <ESP8266WiFi.h> #include <WiFiClient.h> // W-Lan Zugansdaten const char WIFI_SSID[] = "MEINE_WLAN_SSID"; const char WIFI_PSK[] = "MEIN_WLAN_PASSWORT"; // Die Adresse, zu welcher eine GET-Abfrage gemacht werden soll const char http_site[] = "www.beispiel.ch"; const int http_port = 80; // Pin Definitionen const int LED_PIN = 5; // Globale Variablen WiFiClient client; // Setup wird beim Programmstart einmal ausgeführt void setup() { // Set up serial console to read web page Serial.begin(9600); Serial.print("Starte GET Versuch..."); // LED Pin wird auf OUTPUT gesetzt, damit wir sie ein und ausschalten können pinMode(LED_PIN, OUTPUT); // Mit dem WLAN verbinden connectWiFi(); // Versuchen, sich mit der Webseite zu verbinden if ( !getPage() ) { Serial.println("Fehler bei GET Abfrage"); } } // Loop wird bei jedem "Systemtakt" der ESP8266 ausgeführt void loop() { // Wenn der Client läuft, dann werden die Daten eingelesen und ausgegeben if ( client.available() ) { char c = client.read(); Serial.print(c); } // Wenn der Client für die Abfrage getrennt wurde (also Abfrage beendet), dann // wird das Wlan wieder ausgeschaltet (Strom sparen) if ( !client.connected() ) { Serial.println(); // Client beenden und Wlan ausschalten client.stop(); if ( WiFi.status() != WL_DISCONNECTED ) { WiFi.disconnect(); } // LED ausschalten digitalWrite(LED_PIN, LOW); Serial.println("GET Request beendet"); // Nach jedem "Systemtakt" eine Sekunde warten // Anderfalls macht wird loop so schnell wie // möglich wieder ausgeführt; das macht keinen // Sinn da so viel Strom für nichts verbraucht wird while(true){ delay(1000); } } } // Mit WLAN verbinden void connectWiFi() { byte led_status = 0; // LED ausschalten // WLAN Modus auf Client-Modus setzten WiFi.mode(WIFI_STA); // Verbindung mit WLAN initieren mittels SSID und WLAN-Passwort WiFi.begin(WIFI_SSID, WIFI_PSK); // Versuchen mit dme WLAN zu verbinden // Während dem Verbindungsversuch die LED Blinken lassen while ( WiFi.status() != WL_CONNECTED ) { digitalWrite(LED_PIN, led_status); led_status ^= 0x01; // XOR Operation zum umschalten zwischen 0 und 1 delay(100); // Intervall in Millisekunden } // Wenn die Verbindung erfolgreich ist, dann LED einschalten digitalWrite(LED_PIN, HIGH); } // Eine HTTP GET Abfrage ausführen bool getPage() { // Versuchen mit der Adresse zu verbinden if ( !client.connect(http_site, http_port) ) { return false; } // HTTP GET request ausführen // index.html kann man mit dem Pfad ersetzen, z.B. /api/v1/temperatur client.println("GET /index.html HTTP/1.1"); client.print("Host: "); client.println(http_site); client.println("Connection: close"); client.println(); return true; }