====== Arduinoskript ====== #include #include #include HTTPClient sender; WiFiClientSecure wifiClient; // WLAN-Daten const char* ssid = "wlan_ssid"; const char* password = "passwort"; // uint8_t newMACAddress[] = {0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xf2}; // CO2 - Sensor #include #include SoftwareSerial softwareSerial(D7, D8); Mhz19 sensor; int carbonDioxide; // Display #include #include "SSD1306Ascii.h" #include "SSD1306AsciiWire.h" SSD1306AsciiWire oled; // Luftfeuchtigkeitssensor #include "DHT.h" #define DHTPIN 12 //Der Sensor wird an PIN 12 angeschlossen #define DHTTYPE DHT22 // Es handelt sich um den DHT22 Sensor DHT dht(DHTPIN, DHTTYPE); //Der Sensor wird ab jetzt mit „dht“ angesprochen float temperatur; float luftfeuchtigkeit; void setup() { Serial.begin(9600); // Display Wire.begin(); Wire.setClock(400000L); oled.begin(&Adafruit128x32, 0x3C); oled.setFont(System5x7); oled.clear(); // Beginn Netzwerk und WLAN - Konfiguration // auskommentieren, falls notwendig //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 oled.print("Netzwerk hergestellt"); delay(100); // Luftfeuchtigkeits-Sensor dht.begin(); //DHT22 Sensor starten // CO2-Sensor softwareSerial.begin(9600); sensor.begin(&softwareSerial); sensor.setMeasuringRange(Mhz19MeasuringRange::Ppm_5000); sensor.enableAutoBaseCalibration(); Serial.println("Preheating..."); // Preheating, 3 minutes oled.println("Vorheizen..."); while (!sensor.isReady()) { delay(100); Serial.print("."); oled.print("."); } oled.clear(); delay(50); } void loop() { luftfeuchtigkeit = dht.readHumidity(); temperatur = dht.readTemperature(); carbonDioxide = sensor.getCarbonDioxide(); oled.clear(); oled.print("CO2: "); oled.println(carbonDioxide); oled.print("Feuchte: "); oled.println(luftfeuchtigkeit); oled.print("Temperatur: "); oled.println(temperatur); // für das Internet String Str_luftfeuchtigkeit =String(luftfeuchtigkeit); String Str_temperatur =String(temperatur); String Str_carbonDioxide =String(carbonDioxide); //GET Data + Link String getData = "?wert1=" + Str_carbonDioxide +"&wert2="+Str_luftfeuchtigkeit+"&wert3="+ Str_temperatur + "&beschreibung=2022_10_05"; String Link = "https://www.info-checker.de/raumklima/einlesen.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!"); } delay(5*60*1000); // alle 5 Minuten } ====== PHP - einlesen ====== query($sql); ?>

Werte in Datenbank eingetragen.

====== PHP auslesen und darstellen ====== query($sql) as $row) { // defaultwert der Messreihen $auswahl = $auswahl."'".$row['beschreibung']."',"; } $auswahl = substr($auswahl, 0, -1); // Liste aller möglichen Messreihen // GET einlesen // werden welche über GET angefordert, so werden nur diese aus der Liste ausgewählt $alle_messreihen = $auswahl; if(isset($_GET['beschreibung']) && $_GET['beschreibung'] !="") { $beschreibung = $_GET['beschreibung']; $auswahl=""; foreach ($beschreibung as $value) { $pos = strpos($alle_messreihen, $value); if ($pos >0){ $auswahl = $auswahl."'".$value."',"; } } $auswahl = substr($auswahl, 0, -1); // Liste der angeforderten Messenreihen } else { $beschreibung =""; } // Für welchen Zeitraum sollen die Messwerte angezeigt werden? // default: die letzten 5 Tage if(isset($_GET['stopzeit'])&& $_GET['stopzeit'] !="") {$stopzeit= $_GET['stopzeit'];} else { $stopzeit = date('Y-m-d H:i'); // aktuelle Uhrzeit } if(isset($_GET['startzeit']) && $_GET['startzeit'] !="") {$startzeit= $_GET['startzeit'];} else { $startzeit = date("Y-m-d H:i", mktime(date("H"), date("m"), 0, date("m") , date("d")-5,date("Y"))); } ?> Messwerte

Schaubilder:

query($sql) as $row) { $jahr = substr($row['zeit'],0,4); $monat =substr($row['zeit'],5,2)-1; $tag = substr($row['zeit'],8,2); $stunde = substr($row['zeit'],11,2); $minute = substr($row['zeit'],14,2); $sekunde = substr($row['zeit'],17,2); $google_chart_string_wert1= $google_chart_string_wert1."[new Date('".$jahr."','".$monat."','".$tag."','".$stunde."','".$minute."','".$sekunde."'),".$row['wert1']."],\n"; $google_chart_string_wert2= $google_chart_string_wert2."[new Date('".$jahr."','".$monat."','".$tag."','".$stunde."','".$minute."','".$sekunde."'),".$row['wert2']."],\n"; $google_chart_string_wert3= $google_chart_string_wert3."[new Date('".$jahr."','".$monat."','".$tag."','".$stunde."','".$minute."','".$sekunde."'),".$row['wert3']."],\n"; } $google_chart_string_wert1 = substr($google_chart_string_wert1,0,-2); $google_chart_string_wert2 = substr($google_chart_string_wert2,0,-2); $google_chart_string_wert3 = substr($google_chart_string_wert3,0,-2); ?>

Messwerte:

"; echo "idWert 1 Wert 2 Wert 3 Beschreibung Zeit\n"; foreach ($pdo->query($sql) as $row) { echo ""; echo " ".$row['id'].""; echo "".$row['wert1'].""; echo "".$row['wert2'].""; echo "".$row['wert3'].""; echo "".$row['beschreibung'].""; echo "".$row['zeit'].""; echo "\n"; } echo ""; ?>

Messdatenabfrage:

Klaus Hirling