ESP8266:Примеры/Использование ESP8266 вместе с компактным PIR-датчиком

Материал из ВикиСправочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 1819 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Использование ESP8266 вместе с компактным PIR-датчиком[1]

А не хотите собрать систему, способную определять человеческое присутствие? Это можно сделать разными способами, но один из самых популярных – это использование пироэлектрического датчика, который также называют пассивным инфракрасным (на англ. «passive infrared» или просто «PIR») датчиком (более подробно о них можно почитать в Википедии). Датчик, о котором я расскажу в этой статье – это тоже PIR-датчик, но компактный и с поддержкой 3,3-вольтовой логики, что отлично подходит для использования с ESP8266.

PIR-датчик с поддержкой 3,3 вольт

Функции

  • Рабочее напряжение – от 2,7 до 12 вольт (постоянный ток)
  • Энергопотребление (по моим измерениям) – 0,016 мА (в течение 2 секунд после обнаружения источника движения) и 0,076 мА (когда датчик в активном состоянии)
  • Время задержки – обнаружив движение, датчик будет держать выходной контакт в состоянии HIGH в течение 2 секунд
  • Угол действия – около 100 градусов
  • Дальность действия – около 2 метров
  • Размеры – примерно 12 на 25 мм

Как использовать вместе с ESP8266?

Этот датчик может работать с 3,3-вольтовой логикой, поэтому совместим с ESP8266. У него всего три контакта – один для входного напряжения (Vin), один для «земли» (GND) и один для вывода данных (Data). Подключение к плате NodeMCU можно выполнить следующим образом:

Подключение компактного PIR-датчика к NodeMCU

То есть, контакт Vin на PIR-датчике – к контакту 3.3V на плате (слева), контакт Data – к контакту D2 (посередине), а контакт GND – к контакту GND (справа).

Затем скопируйте код, показанный ниже, в IDE Arduino и загрузите его на плату NodeMCU, подключенную к компьютеру:

  1. int oldValue = 0;
  2.  
  3. void setup() {
  4.   // блок setup() предназначен для исходных настроек,
  5.   // поэтому проходит всего один цикл:
  6.   pinMode(D2, INPUT_PULLUP);
  7.   Serial.begin(115200);
  8.  
  9. }
  10.  
  11. void loop() {
  12.   int value = digitalRead(D2);
  13.   if (value != oldValue) {
  14.     Serial.println("New Value: " + String(value));
  15.                 //  "Новое значение: "
  16.     oldValue = value;
  17.     if (value == 1) {
  18.       Serial.println("##########################");
  19.     }
  20.   }
  21.   delay(100);
  22. }

Теперь, если датчик определит движение, то отправит соответствующие данные на монитор порта IDE Arduino.

Область применения

Тот факт, что этому датчику не нужны никакие дополнительные компоненты, делает его применимым в самых разнообразных ситуациях. Будучи активным, он потребляет 0,076 мА, а в течение 2 секунд после обнаружения движения энергопотребление и вовсе падает до 0,016 мА. Таким образом, теоретически этот датчик может работать на 1200-миллиамперной батарее около 2 лет. Более того, если смастерить более продвинутую цепь, то подав на контакт CH_EN (т.е. «chip enable», что значит «включение устройства») чипа ESP8266 значение LOW, вы тем самым переключите датчик в режим «ультраглубокого» сна, из которого датчик будет пробуждаться лишь при обнаружении движения. Более подробно о том, как это сделать, можно почитать тут.

Вот так будет выглядеть схема для этого продвинутого проекта. Правда, я ее еще не пробовал.

PIR-ESP8266-Low-Power.png

Преимущества и недостатки

  • Плюсы:
    • Низкая цена
    • Компактность
    • Простой интерфейс
    • Широкий диапазон входного напряжения (удобно при использовании вместе с ESP8266)
  • Минусы:
  • Короткая дальность действия (хорошие результаты лишь в пределах 2 метров)

См.также

Внешние ссылки

  1. blog.squix.org - ESP8266 Peripherals: Mini PIR Motion Sensor