From: Mario Höllein Date: Wed, 31 Jul 2019 13:12:08 +0000 (+0200) Subject: initial X-Git-Url: https://git.hoellein.online/?a=commitdiff_plain;h=0be552d3d9880f27fe0d52ae9d05f51fcd236a68;p=Mikrocontroller%2FTemperaturFeuchtigkeitTBZ initial --- 0be552d3d9880f27fe0d52ae9d05f51fcd236a68 diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..6982d00 --- /dev/null +++ b/README.txt @@ -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 index 0000000..4a545dc --- /dev/null +++ b/TemperaturFeuchtigkeitTBZ.ino @@ -0,0 +1,142 @@ +#include +#include +#include "DHT.h" +#include +#include +// 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 = " \n"; + ptr +="\n"; + ptr +="TBZ Wetterdaten\n"; + ptr +=""; + ptr +="\n"; + ptr +="\n"; + ptr +="\n"; + ptr +="
\n"; + ptr +="

Klimadaten

\n"; + + ptr +="

Zeit: "; + ptr += timeClient.getHours(); + ptr +=":"; + ptr += timeClient.getMinutes(); + ptr +=":"; + ptr += timeClient.getSeconds(); + ptr +="

"; + + ptr +="

Temperature: "; + ptr +=(double)Temperaturestat; + ptr +=" C

"; + ptr +="

Humidity: "; + ptr +=(double)Humiditystat; + ptr +=" %

"; + + ptr +="
\n"; + ptr +="\n"; + ptr +="\n"; + return ptr; +}