+#include <DHT.h>
+#include <ESP8266WiFi.h>
+
+
+#define DHTTYPE DHT22
+#define DHTPIN 5
+#include <SoftwareSerial.h>
+
+#define trigger 3 // Arduino Pin an HC-SR04 Trig
+#define echo 2 // Arduino Pin an HC-SR04 Echo
+
+
+const char* host = "192.168.178.25";
+const char* ssid = "moellein";
+const char* password = "90628227476854167809";
+
+WiFiClient net;
+
+DHT dht(DHTPIN, DHTTYPE);
+
+void connect();
+
+void setup() {
+
+ dht.begin();
+
+ Serial.begin(115200);
+ Serial.println();
+ Serial.println("Booting...");
+
+ WiFi.mode(WIFI_AP_STA);
+ WiFi.begin(ssid, password);
+
+ connect();
+ Serial.println("Setup completed...");
+}
+
+void loop() {
+ //if (!mqtt.connected()) {
+ // connect();
+ //}
+
+// mqtt.loop();
+// delay(30000);
+
+ float temp = dht.readTemperature();
+ float humidity = dht.readHumidity();
+ int entfernung=getEntfernung();
+ int mittelwert= getEntfernungGD();
+
+ Serial.write("Entfernung:");
+ Serial.print(entfernung, DEC) ;
+ Serial.write(" , Mittelwert (gewichtet): ");
+ Serial.print(mittelwert, DEC) ;
+ Serial.write(" cm\n");
+
+ Serial.print("Sending... ");
+ if (!isnan(humidity) || !isnan(temp)) {
+ // mqtt.publish("/Wohnung/Buero/temp", String(temp));
+ // mqtt.publish("/Wohnung/Buero/humidity", String(humidity));
+
+ Serial.print("Temp: ");
+ Serial.print(String(temp));
+ Serial.print(" Humidity: ");
+ Serial.println(String(humidity));
+ delay(1000);
+ }
+}
+// Entfernung in cm über gewöhnlichen Ultraschallsensor mit Echo und Trigger messen
+int getEntfernung(){
+
+ long entfernung=0;
+ long zeit=0;
+
+ digitalWrite(trigger, LOW);
+ delayMicroseconds(3);
+ noInterrupts();
+ digitalWrite(trigger, HIGH); //Trigger Impuls 10 us
+ delayMicroseconds(10);
+ digitalWrite(trigger, LOW);
+ zeit = pulseIn(echo, HIGH); // Echo-Zeit messen
+ interrupts();
+
+ zeit = (zeit/2); // Zeit halbieren
+ entfernung = zeit / 29.1; // Zeit in Zentimeter umrechnen
+ return(entfernung);
+}
+
+//Entfernung Gleitender Durchschnitt (gewichtet)
+int getEntfernungGD(){
+
+int alt=0;
+int mittel;
+int entf;
+int i;
+
+ delay(10);
+ alt=getEntfernung();
+ delay(10);
+ for (i=0; i<10; i++)
+ {
+ entf=getEntfernung();
+ mittel=(0.8*alt) + (0.2*entf);
+ alt=mittel;
+ delay(10);
+ }
+ return (mittel);
+}
+void connect() {
+ while(WiFi.waitForConnectResult() != WL_CONNECTED) {
+ WiFi.begin(ssid, password);
+ Serial.println("WiFi connection failed. Retry.");
+ }
+
+ Serial.print("Wifi connection successful - IP-Address: ");
+ Serial.println(WiFi.localIP());
+
+ //while (!mqtt.connect(host)) {
+ // Serial.print(".");
+ //}
+
+ //Serial.println("MQTT connected!");
+}
+
+void messageReceived(String topic, String payload, char * bytes, unsigned int length) {
+ Serial.print("incoming: ");
+ Serial.print(topic);
+ Serial.print(" - ");
+ Serial.print(payload);
+ Serial.println();
+}