Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
arduino:webserver [2022/05/19 16:56] khirlingarduino:webserver [2022/06/27 22:42] (aktuell) khirling
Zeile 1: Zeile 1:
 +====== Webseiten ======
 +Internetseiten werden mit Hilfe von HTML (Hypertext Markup Language (Hypertext-Auszeichnungssprache)) dargestellt. Eine typische HTML ist ein reine Textdatei mit der Dateiendung .html. HTML ist eine Seitenbeschreibungssprache. Neben den Inhalten wird auch die Struktur (Art der Überschrift, Absatz, Aufzählung, Bild, Link, Tabelle etc. ) beschrieben. Da die Darstellung nicht nur auf normalen PCs, sondern auch abhängig von den unterschiedlichsten Darstellungsgeräten (Handy, Smartwatch, Displays unterschiedlichster Auflösung) funktionieren sollte, wird die Darstellung (Design) mit Hilfe von Stylesheets separat in einem CSS - Block oder einer separaten  CSS- Datei geschehen, die rein für die Darstellung, das Aussehen des Textes verantwortlich ist.
 + 
 +Alle Inhalte (HTML- Seie, CSS -Seite, Javascript - Seite, Bilder, Videos, ...) werden mit Hilfe des Protokolls HTTP (Hypertext Transfer Protokoll) bzw. HTTPS (HyperText Transfer Protocol Secure)  übertragen. 
 +
 +Der Browser fordert die Seite von einem Webserver an, dieser überträgt diese dann an den Client und wird dann nach und nach angezeigt. Datei erfolgt die Darstellung im Browser, abhängig von Voreinstellungen, die konfiguriert worden sind.
 +
 +Normalerweise sind die Seiten statisch auf der Festplatte des Servers abgelegt. Oftmals sollen die HTML-Seiten aber erst dynamisch erstellt werden, wie z.B. bei einer Suchanfrage. Der Server erkannt an der Dateiendung (.php), dass diese nicht direkt, sondern zusätzlich bearbeitet werden sollen. PHP ist eine Scriptsprache, die im Webserver integriert ist und mit dessen Hilfe auf externe Seiten oder Datenbanksysteme zugegriffen werden, sowie umfangreiche Berechnungen gemacht werden können.
 +
 +PHP kann auch gut auf Datenbanken zugreifen. MySQL ist eine Datenbankverwaltungssystem, welches die Grundlage für viele dynamische Webseiten bildet. Der Zugriff auf die Datenbank erfolgt mit Hilfe der von SQL (Structured Query Language).
 +
 +
 +
 ====== Der NodeMCU ====== ====== Der NodeMCU ======
  
Zeile 249: Zeile 262:
 } // ende loop() } // ende loop()
  
 +</sxh>
 +
 +Nur CO2
 +<sxh cpp>
 +
 +#include <ESP8266WiFi.h>
 +#include <ESP8266HTTPClient.h>
 +#include <Arduino.h>
 +#include <SoftwareSerial.h>
 +    
 +
 +HTTPClient sender;
 +WiFiClientSecure wifiClient;
 + 
 +// WLAN-Daten
 +const char* ssid = "Handy";
 +const char* password = "12345678";
 +// uint8_t newMACAddress[] = {0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xf2}; 
 +
 + 
 +SoftwareSerial softwareSerial(D7, D8);
 +byte abfrage[] = { 0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79 }; // Befehl zur Abfrage des CO2 Sensors
 +char antwort[9];
 + 
 + 
 +void setup() {
 +  Serial.begin(9600);
 +  softwareSerial.begin(9600);
 +
 +// Beginn Netzwerk und WLAN - Konfiguration 
 +  //WiFi.mode(WIFI_STA);
 +  //wifi_set_macaddr(STATION_IF, &newMACAddress[0]);
 +  //IPAddress ip(10, 144, 5, 2);
 +  //IPAddress dns(10, 144, 1, 1);
 +  //IPAddress gateway(10, 144, 1, 2);
 +  //IPAddress subnet(255, 255, 0, 0);
 +  //WiFi.config(ip, dns, gateway, subnet);
 + // ende der Netzwerkkonfiguration
 +
 +
 +
 +WiFi.begin(ssid, password);
 +while (WiFi.status() != WL_CONNECTED) {
 +    delay(200);
 +    Serial.print(".");
 +  }
 +  
 +  Serial.println("Mit dem WLAN verbunden!");
 +  Serial.println();
 +  wifiClient.setInsecure();  // sichere Verbindung wird nicht überprüft
 +  
 +} // ende setup
 + 
 + 
 +void loop() {
 + delay(600000);
 + Serial.println(" ");
 + softwareSerial.write(abfrage, 9);
 + softwareSerial.readBytes(antwort, 9);
 + int resHigh = (int) antwort[2];
 + int resLow  = (int) antwort[3];
 + int CO2_ppm = (256*resHigh)+resLow;
 + String str_CO2_ppm = String(CO2_ppm);
 + Serial.print(CO2_ppm);
 + Serial.println(" CO2 ppm");
 + Serial.println("einzelne Werte: ");  
 +  for(int i=0; i<9 ; i++){
 +    Serial.print((int)antwort[i]);
 +    Serial.print("   ");
 +  }
 +  Serial.println(" "); 
 +  if(antwort[0]!=255){
 +    Serial.println("RESET .........................................................................................................................");
 +    delay(500);
 +    ESP.restart();
 +  }
 +
 +// Netzwerkverbindung aufbauen
 +//GET Data + Link
 +  String getData = "?wert4=" + str_CO2_ppm + "&beschreibung=2022_06_28_5b";
 +  String Link = "https://www.info-checker.de/raumklima/MesswertAbspeichern.php";
 +  Link = Link + getData;
 +   Serial.println(Link);
 +  if (sender.begin(wifiClient, Link)) {
 +    int httpCode = sender.GET();      
 +    if (httpCode > 0) {
 +      if (httpCode == 200) {
 +        String antwort = sender.getString();
 +        Serial.println(antwort);
 +      }else{
 +        Serial.print("HTTP-Error: " +  String(httpCode));
 +      }
 +    }
 +    sender.end();
 +  }else {
 +    Serial.printf("HTTP-Verbindung konnte nicht hergestellt werden!");
 +  }
 +
 +
 +
 +
 +
 +  
 +} // ende loop
 </sxh> </sxh>
  • arduino/webserver.1652972198.txt.gz
  • Zuletzt geändert: 2022/05/19 16:56
  • von khirling