PIR motion sensor (HC-SR501) false results with NodeMCU

Arduino Asked on January 2, 2022

I have a PIR sensor which I use to detect the motion and turn ON and OFF the lights on the basis of it.

I have PIR connected with NodeMCU (ESP8266) based board. I find that sometimes it trigger false positive value. Even when there is no motion. As per my understanding I think any of the following reasons can be there:

  1. I have NodeMCU close to it. So may be because NodeMCU heatness triggers it.
  2. Some hot air blow near it. But I don’t know. It trigger the false positive even in mid-night.
  3. It can be trigger by mosquitoes.
  4. I have my other electric wires going from near by.

I am considering these scenarios correct? If yes then how can I prevent from them?

I tried to put it in a box and make it tightly pack. but still its false trigger. I checked even with multiple sensors and have same problem.

Any suggestions to protect this? I also check people put capacitor to smooth it. And put some resistance on Vin.

My Vin of PIR is connected to 5v and OUTPUT pin to D2.

For reference I am having this code for checking.

#define SIGNAL_PIN D2

void setup()
//  digitalWrite (SIGNAL_PIN, LOW);

void loop() {

    static uint32_t lastSeenHigh = millis();
    static bool pirState = false;

    // If it's active then record that fact along with the time
    if (digitalRead(SIGNAL_PIN) == HIGH) {
        lastSeenHigh = millis();
        pirState = true;
    } else {
        if ((millis() - lastSeenHigh) > 10000) {
            pirState = false;

    if (pirState == true) {
        Serial.println("Pir Is active");
    if (pirState == false) {
      Serial.println("PIR sensor inactive");

4 Answers

I glued some aluminum foil onto a piece of a cereal box and folded it around the PIR sensor. Works like a charm!

Answered by Arthur Smaal on January 2, 2022

I was also going through the same issue. But finally, the issue got resolved.

The issue is the PIR sensor that comes with ESP8266 can work with 3.3V as well as 5V. By default, the wiring is connected to the 5V which may work fine for the Arduino device but not for ESP8266.

I just removed the red cable (power cable) from the connector and connected to the other side where you can see H. That side also there are 3 pins. Remove the jumper completely and connect to the first PIN from top.

Just make sure you leave the GND and OUTPUT as it is, but only the RED wire will be connected to the first pin on the other side of the PIR sensorplease see the attached image.

Answered by Minhaj Mohammad on January 2, 2022

I had the same issue. I tried various solutions on the net. Finally i solved my issue like this.

  • Supplied the PIR sensor 3.3 v (from the NodeMcu board) instead of 5v (my main PS is 5V)
  • Connected VCC (3.3v) cable to "HIGH PIN" of trigger pins instead of main (+) pin.
  • It's not generate false positive signals about 2 hours.

Actually, I'm applied that solution ->

Answered by Emrah AKBIYIK on January 2, 2022

I had the same issue. PIRs have very sensitive circuitry and can be triggered by the WiFi signal from the ESP8266. The answer is to move them apart and with some decoupling of the power supply lines you should see much better performance. My PIR and ESP are now a couple of metres apart and I use shielded cable to connect them together.

Answered by Bra1n on January 2, 2022

Add your own answers!

Related Questions

IMU (MPU9250) and Ticker on ESP32

1  Asked on December 10, 2020 by r-ho


Where this function is defined?

1  Asked on December 7, 2020 by ravi-s


Ultrasonic Sensor(HC-SR04) recording random distance

1  Asked on December 1, 2020 by shubham-bajaj


How to save data in arduino when it’s power goes off

3  Asked on December 1, 2020 by user63158


Max7219 7-segment display not working

0  Asked on November 29, 2020 by elayer213


Unresolved reference to public function from library

1  Asked on November 6, 2020 by omar_hussein


SG 90 servos randomly spinning

0  Asked on October 25, 2020


void loop() stops running after an hour or so

1  Asked on October 22, 2020 by imrobert7


Multiple sensors I2C stop working suddenly

0  Asked on October 6, 2020 by zaffresky


Is it possible to exit a loop on the change of an input state?

1  Asked on September 15, 2020 by jabawokjayuk


Ask a Question

Get help from others!

© 2023 All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP