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 +