#include #include const char* SSID = "smartroom"; const char* PSK = "smarthome"; const char* MQTT_BROKER = "192.168.252.1"; WiFiClient espClient; PubSubClient client(espClient); // defines pins numbers int ledPin = D1; // LED on Pin 1 of ESP int pirPin1 = D0; // Input for HC-SR501 #1 int pirPin2 = D2; // Input for HC-SR501 #2 int pirValueNeu1; // Place to read PIR Value int pirValueAlt1 = 0; //Place to store read PIR Value int pirAn1; int pirAus1; int pirValueNeu2; // Place to read PIR Value int pirValueAlt2 = 0; //Place to store read PIR Value int pirAn2; int pirAus2; char msg[50]; void setup() { Serial.begin(115200); setup_wifi(); client.setServer(MQTT_BROKER, 1883); pinMode(ledPin, OUTPUT); pinMode(pirPin1, INPUT); pinMode(pirPin2, INPUT); digitalWrite(ledPin, LOW); } void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(SSID); WiFi.mode(WIFI_STA); WiFi.begin(SSID, PSK); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void reconnect() { while (!client.connected()) { Serial.print("Reconnecting..."); if (!client.connect("ESP8266Client")) { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" retrying in 5 seconds"); delay(5000); } } } void loop() { if (!client.connected()) { reconnect(); } client.loop(); pirValueNeu1 = digitalRead(pirPin1); pirValueNeu2 = digitalRead(pirPin2); digitalWrite(ledPin,(pirValueNeu1|pirValueNeu2)); pirAn1= ((pirValueNeu1==1)&&(pirValueAlt1==0)); pirAn2= ((pirValueNeu2==1)&&(pirValueAlt2==0)); pirAus1= ((pirValueNeu1==0)&&(pirValueAlt1==1)); pirAus2= ((pirValueNeu2==0)&&(pirValueAlt2==1)); if(pirAn1){ Serial.println("Steigende Flanke von PIR1"); snprintf (msg,50,"%c%c",49,48); //Codierung PIR1 steigende Flanke: 10 Serial.print("Publish Motion: "); Serial.println(msg); client.publish("/home/data", msg); } if(pirAn2){ Serial.println("Steigende Flanke von PIR2"); snprintf (msg,50,"%c%c",49,49); //Codierung PIR2 steigende Flanke: 11 Serial.print("Publish Motion: "); Serial.println(msg); client.publish("/home/data", msg); } if(pirAus1){ Serial.println("Fallende Flanke von PIR1"); snprintf (msg,50,"%c%c",48,48); //Codierung PIR1 fallende Flanke: 00 Serial.print("Publish Motion: "); Serial.println(msg); client.publish("/home/data", msg); } if(pirAus2){ Serial.println("Fallende Flanke von PIR2"); snprintf (msg,50,"%c%c",48,49); //Codierung PIR2 fallende Flanke: 01 Serial.print("Publish Motion: "); Serial.println(msg); client.publish("/home/data", msg); } pirValueAlt1=pirValueNeu1; pirValueAlt2=pirValueNeu2; }