Датчик движения PIR (HC-SR501) ложные результаты с NodeMCU
У меня есть датчик PIR, который я использую для обнаружения движения и включения и ВЫКЛЮЧЕНИЯ света на его основе.
У меня есть PIR, связанный с платой на базе NodeMCU (ESP8266). Я нахожу, что иногда это вызывает ложноположительное значение. Даже когда нет движения. Насколько я понимаю, я думаю, что здесь может быть любая из следующих причин:
- У меня есть NodeMCU рядом с ним. Так может быть потому, что его запускает теплота NodeMCU.
- Рядом с ним дует горячий воздух. Но я не знаю. Это вызывает ложное срабатывание даже в середине ночи.
- Это может быть вызвано комарами.
- У меня есть другие электрические провода, идущие рядом.
Я рассматриваю эти сценарии правильно? Если да, то как я могу предотвратить их?
Я попытался положить его в коробку и плотно упаковать. но все равно его ложный триггер. Я проверил даже с несколькими датчиками и у меня такая же проблема.
Есть какие-нибудь предложения по защите этого места? Я также проверяю, чтобы люди ставили конденсатор, чтобы сгладить его. И оказать некоторое сопротивление Вин.
Мой Vin PIR подключен к 5v, а ВЫХОДНОЙ вывод-к D2.
Для справки У меня есть этот код для проверки.
#define SIGNAL_PIN D2
void setup()
{
Serial.begin(115200);
pinMode(SIGNAL_PIN, INPUT_PULLUP);
// digitalWrite (SIGNAL_PIN, LOW);
}
void loop() {
static uint32_t lastSeenHigh = millis();
static bool pirState = false;
Serial.println(digitalRead(SIGNAL_PIN));
// 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");
}
delay(1000);
}
@user3201500, 👍2
Обсуждение4 ответа
У меня была та же проблема. PIRs имеют очень чувствительную схему и могут быть вызваны сигналом Wi-Fi от ESP8266. Ответ заключается в том, чтобы раздвинуть их, и при некотором разъединении линий питания вы увидите гораздо лучшую производительность. Мои PIR и ESP теперь находятся на расстоянии пары метров друг от друга, и я использую экранированный кабель, чтобы соединить их вместе.
У меня была та же проблема. Я пробовал различные решения в сети. Наконец-то я решил свою проблему вот так.
- Поставил датчик PIR 3,3 В (с платы NodeMCU) вместо 5 В (мой основной блок питания 5 В).
- Подсоедините кабель VCC (3,3 В) к "ВЫСОКОМУ контакту" триггерных контактов вместо основного (+) контакта.
- Он не генерирует ложноположительных сигналов около 2 часов.
На самом деле, я применил это решение -> >https://www.youtube.com/watch?v=2HbbQIqJHoE
Я тоже сталкивался с той же проблемой. Но в конце концов проблема была решена.
Проблема в том, что датчик PIR, поставляемый с ESP8266, может работать как с напряжением 3,3 В, так и с напряжением 5 В. По умолчанию проводка подключена к 5 В, что может нормально работать для устройства Arduino, но не для ESP8266.
Я просто вынул красный кабель (кабель питания) из разъема и подключил с другой стороны, где вы можете видеть H. На этой стороне также есть 3 контакта. Полностью снимите перемычку и подсоедините ее к первому контакту сверху.
Просто убедитесь, что вы оставили GND и выход как есть, но только красный провод будет подключен к первому контакту на другой стороне датчика PIR.
Я наклеил немного алюминиевой фольги на кусок коробки из-под хлопьев и сложил его вокруг датчика PIR. Работает как заклинание!
Хороший хак, надежен ли он, можете ли вы поделиться изображением, как это выглядит в конце?, @Rahul Sharma
- Как определить размер Flash?
- В ESP-12E NodeMCU, какой выход PIN A0?
- Преобразование byte* в int в Arduino
- Каково использование зарезервированных контактов и контактов SDD2, SDD3 NodeMCU?
- NodeMCU (Arduino IDE) «DynamicJsonBuffer» не был объявлен в этой области
- NodeMCU поддерживает внедрение ключей?
- Как получить текущую дату
- NodeMCU второй HARDWARE последовательный TX в качестве порта отладки
Основной датчик PIR (HC-SR501) содержит регулировку чувствительности, которая регулирует диапазон чувствительности. Вот ссылка, которая поможет вам с настройкой [PIR](http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-hc-sr501-motion-sensor-tutorial/), @Vaibhav
я попытался внести коррективы. И это сработало не так, как я хотел., @user3201500
вы можете поделиться своим кодом и схемой?, @Vaibhav
Измените **INPUT_PULLUP** на **INPUT_PULLDOWN**, так как вы ищете ВЫСОКОЕ событие., @Vaibhav
ЛОЛ. Эти датчики и платы настолько дешевы, что я построил два датчика движения. Свет включается только тогда, когда оба соглашаются, что в комнате есть движение. Я использую Домашнего помощника для координации автоматизации, но, возможно, можно было бы сделать что-то хитроумное, чтобы они могли общаться напрямую., @azoe
@azoe, ха-ха, я думал о том, чтобы сделать то же самое. Эта установка хорошо работает, не так ли?, @Jeromy Adofo