]> git.hoellein.online Git - Mikrocontroller/TemperaturFeuchtigkeitTBZ/commitdiff
initial
authorMario Höllein <mhoellein@freenet.de>
Wed, 31 Jul 2019 13:12:08 +0000 (15:12 +0200)
committerMario Höllein <mhoellein@freenet.de>
Wed, 31 Jul 2019 13:12:08 +0000 (15:12 +0200)
README.txt [new file with mode: 0644]
TemperaturFeuchtigkeitTBZ.ino [new file with mode: 0644]

diff --git a/README.txt b/README.txt
new file mode 100644 (file)
index 0000000..6982d00
--- /dev/null
@@ -0,0 +1 @@
+Temperartur und Feuchte per http-Server und per Serieller Ausgabe
diff --git a/TemperaturFeuchtigkeitTBZ.ino b/TemperaturFeuchtigkeitTBZ.ino
new file mode 100644 (file)
index 0000000..4a545dc
--- /dev/null
@@ -0,0 +1,142 @@
+#include <ESP8266WiFi.h>
+#include <ESP8266WebServer.h>
+#include "DHT.h"
+#include <NTPClient.h>
+#include <WiFiUdp.h>
+// DHT22:   PIN 1:  VCC     mit 3,3 oder 5V verbinden (funzte beides)
+//          PIN 2:  Data    mit D2 oder D6 funktioniert es, an D8 auch aber dann lässt sich der ESP8266 nicht mehr flashen. Spannungsteiler mit 10K Widerstand
+//                          Siehe Zeichnung wemos_d1_mini_dht22_bb.jpg im Verzeichnis dieses Skriptes
+//          PIN 3:  NC      bleibt unbelegt
+//          PIN 4:  GND     mit Masse / G verbinden
+
+// Typ des Sensors, hier DHT22
+//#define DHTTYPE DHT11   // DHT 11
+//#define DHTTYPE DHT21   // DHT 21 (AM2301)
+#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
+
+// Zugangsdaten zum WLAN:
+const char* ssid = "TBZ-PARIV";
+const char* password = "3898512881807530";
+
+const long utcOffsetInSeconds = 3600;
+char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
+
+WiFiUDP ntpUDP;
+NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);
+
+ESP8266WebServer server(80);
+
+// DHT Sensor
+// PIN mit dem "Data" des DHT22 verbunden ist
+uint8_t DHTPin = D2; 
+               
+// Initialize DHT sensor.
+DHT dht(DHTPin, DHTTYPE);                
+
+float Temperature;
+float Humidity;
+long lastMillis=millis(); 
+       void setup() {
+       Serial.begin(115200);
+       delay(100);
+       
+       pinMode(DHTPin, INPUT);
+       
+       dht.begin();
+       
+       Serial.println("Connecting to ");
+       Serial.println(ssid);
+       
+       //connect to your local wi-fi network
+       WiFi.begin(ssid, password);
+       
+       //check wi-fi is connected to wi-fi network
+       while (WiFi.status() != WL_CONNECTED) {
+       delay(1000);
+       Serial.print(".");
+       }
+       Serial.println("");
+       Serial.println("WiFi connected..!");
+       Serial.print("Got IP: ");  Serial.println(WiFi.localIP());
+       
+       server.on("/", handle_OnConnect);
+       server.onNotFound(handle_NotFound);
+       
+       server.begin();
+       Serial.println("HTTP server started");
+       timeClient.begin();
+       Serial.println("NTP started");
+}
+void loop() {
+       server.handleClient();
+       //every 5 minutes via serial
+       if (millis() - lastMillis >= 5*60*1000UL) {
+               lastMillis = millis();  //get ready for the next iteration
+               printTempSerial();
+       }
+}
+
+void printTempSerial() {
+       getDataFromSensor();
+       Serial.print(timeClient.getHours());
+       Serial.print(":");
+       Serial.print(timeClient.getMinutes());
+       Serial.print(":");
+       Serial.print(timeClient.getSeconds());
+       Serial.print(" ");
+       Serial.print("Temp: ");
+       Serial.print(Temperature);
+       Serial.print(" - ");
+       Serial.print("Humidity: ");
+       Serial.println(Humidity);
+}
+
+void getDataFromSensor() {
+       timeClient.update();
+       Temperature = dht.readTemperature(); // Gets the values of the temperature
+       Humidity = dht.readHumidity(); // Gets the values of the humidity 
+}
+
+void handle_OnConnect() {
+       getDataFromSensor();
+       server.send(200, "text/html", SendHTML(Temperature,Humidity)); 
+}
+
+void handle_NotFound(){
+       server.send(404, "text/plain", "Not found");
+}
+
+String SendHTML(float Temperaturestat,float Humiditystat){
+       String ptr = "<!DOCTYPE html> <html>\n";
+       ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
+       ptr +="<title>TBZ Wetterdaten</title>\n";
+       ptr +="<meta http-equiv=\"refresh\" content=\"2\" >";
+       ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
+       ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n";
+       ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n";
+       ptr +="</style>\n";
+       ptr +="</head>\n";
+       ptr +="<body>\n";
+       ptr +="<div id=\"webpage\">\n";
+       ptr +="<h1>Klimadaten</h1>\n";
+
+       ptr +="<p>Zeit: ";
+       ptr += timeClient.getHours();
+       ptr +=":";
+       ptr += timeClient.getMinutes();
+       ptr +=":";
+       ptr += timeClient.getSeconds();
+       ptr +="<p>";
+       
+       ptr +="<p>Temperature: ";
+       ptr +=(double)Temperaturestat;
+       ptr +=" C</p>";
+       ptr +="<p>Humidity: ";
+       ptr +=(double)Humiditystat;
+       ptr +=" %</p>";
+       
+       ptr +="</div>\n";
+       ptr +="</body>\n";
+       ptr +="</html>\n";
+       return ptr;
+}