Sensor de presença com NodeMCU ESP8266


  
Nosso objetivo hoje é criar um sistema de detecção de movimento em um ambiente, utilizando um sensor de presença PIR HC-SR501 e um buzzer contínuo para disparar como um alarme. A nossa montagem até parece um robozinho, mas isso porque eu utilizei um suporte de solda somente para fixar o sensor e facilitar a visualização no vídeo. O microcontrolador que usamos neste projeto é o WiFi ESP8266 NodeMcu ESP12E.


No vídeo vocês podem ver que o circuito que montamos é bem simples. A alimentação do NodeMCU é feita pela USB e este microcontrolador fica ligado direto ao buzzer de 5v. Quando ocorre uma saída 3v3 em cima deste buzzer, ele funciona muito bem. Quanto ao sensor PIR, ele tem alimentação positivo/negativo e tem o pino de sinal que só manda 0 ou 1. Ele é bastante simples de mexer porque é binário. Ao lado dele, temos dois Trimpots de controle, sendo um de tempo e outro de sensibilidade.


WiFi ESP8266 NodeMcu ESP-12E

Aqui mostro para você a foto do NodeMCU e toda sua pinagem.


PIR HC-SR501 – Características


Na imagem do sensor, à esquerda, eu aponto onde ficam os dois Trimpots, que são os botões de ajuste. No dispositivo que controla o tempo você vai ajustar o delay, ou seja, o tempo que vai demorar após o disparo do alarme para a montagem ativar novamente. Já no botão da sensibilidade, você vai apontar qual a distância de acionamento do sensor. No lado direito está a vista de cima do sensor.
Este modelo PIR HC-SR501 conta ainda com três pinos: VCC, GND e OUT. Alimentação: de 5V a 20V. Tensão de Saída: 3,3V. Potenciômetro para ajuste de tempo e sensibilidade. E, por fim, ângulo de abertura: aproximadamente 120 graus.

Buzzer Contínuo

Aqui temos o buzzer que, para quem não conhece, funciona como uma espécie de alto-falante. São dois tipos. Temos um microcontrolado, que é este que usamos hoje, o qual recebe alimentação e já apita, além do modelo que não tem o microcontrolador dentro dele, ou seja, não tem o oscilador dentro dele. O que ocorre aí é que você que vai ter que mandar a oscilação. O mais comum, no entanto, é do primeiro modelo que citei.

Montagem


Nesta imagem temos o esquema do projeto de hoje. Vamos ligar o sensor ao NodeMCU pela entrada D4. A saída do microcontrolador para o buzzer é a D1.

Código

Começamos definindo as constantes que utilizaremos durante nosso código.

//definição do pino de saída do sensor PIR 
#define PIN_SENSOR D4
//definição do pino de entrada do Buzzer
#define PIN_BUZZER D1

Setup

Na função setup(), vamos configurar os pinos que usaremos para comunicação com o sensor e o buzzer, através do comando “pinMode”.

void setup() {

  //abaixo vamos confirar cada um dos pinos como entrada ou saída de dados
  pinMode(PIN_SENSOR, INPUT);
  pinMode(PIN_BUZZER, OUTPUT);
}

Loop

Na função loop(), faremos a leitura do sensor para saber se detectou algum movimento. Caso seja detectado, acionaremos o buzzer para soar como um alarme.

void loop() { 

  //faz a leitura do sensor de presença (retorna HIGH ou LOW)
  int sinal = digitalRead(PIN_SENSOR); 

  //HIGH : movimento detectado
  if(sinal == HIGH){
    //aciona o Buzzer
    digitalWrite(PIN_BUZZER, HIGH);
  }
  //LOW : nenhum movimento detectado
  else{
    //desativa o buzzer
    digitalWrite(PIN_BUZZER, LOW);
  }

}


Faça download dos arquivos:
PDF
INO





Um comentário:

  1. boa tarde estou com problema em acionar 4 reles com o nodemcu ele não aciona os reles, estou utilizando também a base para ele ver 1.0,

    coloquei as variáveis d1,d2,d3,d3
    liguei o vcc do rele na entrada 5v do suporte e a gnd (tentei também com o node sem o suporte), quando ligo o rele ele acende os leds das portas dos reles mas quando aciono o comando do html nada faz. Teria como o senhor publicar um tutorial utilizando o nodemcu com rele acesso web? ou com o suporte obrigado . obs: rele 5v (daqueles kits de arduino classico).

    ResponderExcluir

Tecnologia do Blogger.