diff --git a/OpenMQTTGateway.ino b/OpenMQTTGateway.ino
index da3aa1e..c93d561 100644
--- a/OpenMQTTGateway.ino
+++ b/OpenMQTTGateway.ino
@@ -183,7 +183,9 @@ void setup()
#ifdef ZgatewayRFM69
setupRFM69();
#endif
-
+ #ifdef ZsensorHCSR501
+ setupHCSR501();
+ #endif
}
#ifdef ESP8266
@@ -247,6 +249,9 @@ void loop()
#ifdef ZsensorDHT
MeasureTempAndHum(); //Addon to measure the temperature with a DHT
#endif
+ #ifdef ZsensorHCSR501
+ MeasureHCSR501();
+ #endif
#ifdef ZsensorADC
MeasureADC(); //Addon to measure the analog value of analog pin
#endif
diff --git a/User_config.h b/User_config.h
index 5032792..04da5b9 100644
--- a/User_config.h
+++ b/User_config.h
@@ -74,6 +74,8 @@ const byte subnet[] = { 255, 255, 255, 0 }; //ip adress
#include "config_IR.h"
#define ZgatewayBT
#include "config_BT.h"
+ #define ZsensorHCSR501
+ #include "config_HCSR501.h"
#define ZsensorADC
#include "config_ADC.h"
#define ZsensorBH1750
@@ -100,6 +102,8 @@ const byte subnet[] = { 255, 255, 255, 0 }; //ip adress
//#include "config_BH1750.h"
//#define ZsensorBME280
//#include "config_BME280.h"
+ //#define ZsensorHCSR501
+ //#include "config_HCSR501.h"
//#define ZsensorADC
//#include "config_ADC.h"
//#define ZgatewayRFM69 not tested
diff --git a/ZsensorHCSR501.ino b/ZsensorHCSR501.ino
new file mode 100644
index 0000000..53815c7
--- /dev/null
+++ b/ZsensorHCSR501.ino
@@ -0,0 +1,59 @@
+/*
+ OpenMQTTGateway Addon - ESP8266 or Arduino program for home automation
+
+ Act as a wifi or ethernet gateway between your 433mhz/infrared IR signal and a MQTT broker
+ Send and receiving command by MQTT
+
+ HC SR-501 reading Addon
+
+ Copyright: (c)Florian ROBERT
+
+ Contributors:
+ - 1technophile
+
+ This file is part of OpenMQTTGateway.
+
+ OpenMQTTGateway is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenMQTTGateway is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+#ifdef ZsensorHCSR501
+
+void setupHCSR501() {
+ pinMode(HCSR501_PIN, INPUT); // declare HC SR-501 pin as input
+}
+
+void MeasureHCSR501(){
+ if (millis() > TimeBeforeStartHCSR501) {//let time to init the PIR sensor
+ static int pirState = LOW;
+ int PresenceValue = digitalRead(HCSR501_PIN);
+ #ifdef ESP8266
+ yield();
+ #endif
+ if (PresenceValue == HIGH) {
+ if (pirState == LOW) {
+ // turned on
+ client.publish(subjectHCSR501toMQTT,"true");
+ trc(F("HC SR501 Motion detected"));
+ pirState = HIGH;
+ }
+ } else {
+ if (pirState == HIGH){
+ // turned off
+ client.publish(subjectHCSR501toMQTT,"false");
+ trc(F("HC SR501 Motion ended"));
+ pirState = LOW;
+ }
+ }
+ }
+}
+#endif
diff --git a/config_HCSR501.h b/config_HCSR501.h
new file mode 100644
index 0000000..140c7e8
--- /dev/null
+++ b/config_HCSR501.h
@@ -0,0 +1,38 @@
+/*
+ OpenMQTTGateway - ESP8266 or Arduino program for home automation
+
+ Act as a wifi or ethernet gateway between your 433mhz/infrared IR signal and a MQTT broker
+ Send and receiving command by MQTT
+
+ This files enables to set your parameter for the HC SR-501 sensor
+
+ Copyright: (c)Florian ROBERT
+
+ This file is part of OpenMQTTGateway.
+
+ OpenMQTTGateway is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenMQTTGateway is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+
+/*----------------------------USER PARAMETERS-----------------------------*/
+/*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/
+#define subjectHCSR501toMQTT "home/HCSR501toMQTT"
+#define TimeBeforeStartHCSR501 60000 //define the time necessary for HC SR501 init
+
+/*-------------------PIN DEFINITIONS----------------------*/
+#ifdef ESP8266
+ #define HCSR501_PIN D5
+#else
+ #define HCSR501_PIN D7
+#endif
+