Why My pir sensor always gives motion detection notifications continuously..?

#include <FS.h>
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
//needed for library
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>          //https://github.com/tzapu/WiFiManager
#include <ArduinoJson.h>          //https://github.com/bblanchon/ArduinoJson
#include <SimpleTimer.h>
#include <DHT.h>
char blynk_token[34] = "BLYNK_TOKEN";
//flag for saving data
bool shouldSaveConfig = false;
//callback notifying us of the need to save config
void saveConfigCallback () {  
  Serial.println("Should save config");
  shouldSaveConfig = true;
bool pirEnabled = false;
  int control4DigitalPins = param.asInt();
  if(control4DigitalPins == 1){
    digitalWrite(D1, HIGH);
    digitalWrite(D2, HIGH);
    digitalWrite(D3, HIGH);
    digitalWrite(D7, HIGH);
    digitalWrite(D1, LOW);
    digitalWrite(D2, LOW);
    digitalWrite(D3, LOW);
    digitalWrite(D7, LOW);
BLYNK_WRITE(V3){  // button in switch mode
    pirEnabled = true;  
    pirEnabled = false;     
#define DHTPIN 2          // What digital pin we're connected to
#define ledPower 16
// Uncomment whatever type you're using!
#define DHTTYPE DHT11     // DHT 11
//#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301
SimpleTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
  int h = dht.readHumidity();
  int t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
  int p=digitalRead(14);
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
 if((p==HIGH) && (pirEnabled == true)){
 Blynk.notify("Orang Tak Dikenal Terdeteksi");
void setup()
  pinMode (ledPower,OUTPUT);
  digitalWrite (ledPower, HIGH);
  Serial.begin(9600); // See the connection status in Serial Monitor
  //SPIFFS.format();    //clean FS, for testing
  Serial.println("Mounting FS...");    //read configuration from FS json
void loop()
  Blynk.run(); // Initiates Blynk
  timer.run(); // Initiates SimpleTimer

My board uses Nodemcu Lolin V3 with wifi manager : Why does my pir sensor always give motion detection notifications continuously doesn’t stop when the V3 button is on?
when the V3 button is off, it works great because the PIR Sensor is off…
can anyone here help me, please?

Are you saying that GPIO14 is continuously HIGH?


yes… OUT pin on PiR Sensor connected to D5(gpio14) on nodemcu lolin…

can you help me?

Well, if the PIR is always pulling this pin HIGH regardless of whether it’s triggered then that’s the issue you need to look at.


is there any error from my code ?

First of all make sure your PIR is 3v. If it is not most of them have either a jumper you can change or some have a solder pad labeled H that you solder a supply to your 3.3 on the nodeMcu.

If in doubt post a picture of front and back of the PCB.

THIS IS my PIR Sensor connected to the Nodemcu via PCb board…
Pin On PIR SENSOR Connected to Nodemcu like this

VCC to Vin nodemcu
Out To D5(gpio14) nodemcu
GND To G nodemcu

What is the pad labelled “Switch Power” connected to?


Switch Power is a switch that only cuts off vcc for nodemcu and relays

solved…potensio on pir sensor is too maximum soo pir continuously HIGH

Which is what @daveblynk said 3 days ago :roll_eyes:


1 Like