Tutorial ESP32 21/55 - Detectando Humanos com Sensor de Movimento PIR | Kit de Aprendizado IoT ESP32 da SunFounder
Neste tutorial, aprenderemos como usar um sensor de movimento PIR com o ESP32 para detectar a presença humana. O ESP32 é um microcontrolador poderoso que oferece capacidades tanto de Wi-Fi quanto de Bluetooth, tornando-o ideal para projetos de IoT. Ao integrar um sensor PIR, podemos construir um sistema que ativa um LED ou um buzzer sempre que movimento for detectado, proporcionando uma maneira simples, mas eficaz, de monitorar a atividade humana.
O sensor PIR (Infravermelho Passivo) detecta movimento ao captar a radiação infravermelha emitida por objetos, particularmente aqueles de corpo quente como os humanos. Quando o movimento é detectado, o sensor envia um sinal para o ESP32, que pode então acionar uma saída, como acender um LED ou emitir um alarme. Este tutorial irá guiá-lo pela configuração do hardware, fiação e código necessários para fazer o sistema funcionar corretamente (no vídeo em 00:45).
Hardware Explicado
Este projeto envolve vários componentes chave. O microcontrolador ESP32 serve como o cérebro da operação, lidando com dados de sensores e controlando as saídas. O sensor de movimento PIR detecta movimento ao medir mudanças na radiação infravermelha. O LED ou o buzzer fornece um alerta visual ou audível quando o movimento é detectado.
O ESP32 é equipado com Wi-Fi e Bluetooth, permitindo funcionalidades ampliadas, como conectividade com a nuvem. O sensor PIR contém uma lente que foca a luz infravermelha em um sensor piroelétrico, que gera um sinal de voltagem quando detecta mudanças nos níveis de infravermelho, indicando movimento.
Detalhes da Ficha Técnica
| Fabricante | SunFounder |
|---|---|
| Número da peça | Módulo de Sensor PIR |
| Tensão de lógica/IO | 3,3 V |
| Tensão de alimentação | 3,3 V |
| Corrente de saída (por canal) | 20 mA máx |
| Corrente de pico (por canal) | 50 mA máximo |
| Orientação sobre a frequência PWM | N/A |
| Limiares de lógica de entrada | 0,3 V (baixo), 2,0 V (alto) |
| Queda de tensão / RDS(on)/ saturação | N/A |
| Limites térmicos | 0 a 70 °C |
| Pacote | Módulo |
| Notas / variantes | Sensibilidade e atraso ajustáveis |
- Assegure um fornecimento de energia adequado (3,3 V) para evitar danos.
- Use um resistor para o LED para limitar a corrente.
- Mantenha a fiação adequada para prevenir curtos-circuitos.
- Ajuste os botões do sensor PIR para sensibilidade e atraso conforme necessário.
- Teste o sensor em diferentes ambientes para desempenho ideal.
Instruções de Ligação

Para conectar o sensor de movimento PIR e o LED ao ESP32, comece ligando o pino VCC do sensor PIR à saída de 3,3 V do ESP32. Em seguida, conecte o pino de terra do sensor PIR a um pino de terra no ESP32. O pino de sinal (geralmente rotulado comoS) do sensor PIR deve ser conectado ao pino GPIO 14 no ESP32.
Para o LED, conecte o terminal mais longo (ânodo) ao pino GPIO 26 através de um resistor de 220 Ohm, e conecte o terminal mais curto (cátodo) ao terra. Certifique-se de que todas as conexões estejam seguras para garantir o funcionamento adequado. Se você estiver usando um buzzer em vez de um LED, conecte um pino do buzzer ao pino GPIO 26 e o outro ao terra, substituindo a configuração do LED.
Exemplos de Código e Passo a Passo
No código, definimos os números dos pinos para o sensor PIR e o LED. Nós usamosconst int pirPin = 14;para definir o pino PIR econst int ledPin = 26;para o pino LED. Essas constantes garantem que os números dos pinos permaneçam inalterados durante a execução do programa.
const int pirPin = 14; // the number of the pir pin
const int ledPin = 26; // LED pinEste trecho inicializa os pinos que usaremos. No setup()função, configuramos o pino PIR como entrada e o pino do LED como saída. Esta configuração é crucial para ler o estado do sensor e controlar o LED.
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT); // initialize the pir pin as an input
pinMode(ledPin, OUTPUT); // initialize the LED pin as an output
}Em oloop()função, lemos continuamente o estado do sensor PIR usandodigitalRead(pirPin);. Se o sensor detectar movimento (indicado por um estado ALTO), ligamos o LED usandodigitalWrite(ledPin, HIGH);Caso contrário, desligamos o LED.
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH); // turn LED on
} else {
digitalWrite(ledPin, LOW); // turn LED off
}Essa lógica permite que o LED responda a movimentos detectados pelo sensor PIR. Certifique-se de fazer o upload do código completo fornecido abaixo do artigo para funcionalidade total.
Demonstração / O que Esperar
Uma vez que tudo esteja configurado e o código seja enviado, o LED acenderá quando o movimento for detectado pelo sensor PIR. Você pode testar o sensor movendo-se na frente dele; o LED deve acender imediatamente. Se o sensor estiver configurado para um atraso, ele permanecerá ligado pelo tempo especificado antes de desligar novamente (no vídeo às 12:15).
Armadilhas comuns incluem fiação incorreta, o que pode impedir que o sensor funcione. Certifique-se de que o sensor PIR está devidamente alimentado e que o pino de sinal está conectado ao pino GPIO correto no ESP32. Ajustar os controles de sensibilidade e atraso no sensor PIR também pode ajudar a otimizar o desempenho com base no seu ambiente.
Marcadores de vídeo
- 00:00 Início
- 1:54 Introdução ao Sensor PIR
- 6:38 Explicação da fiação
- 10:21 Código Arduino explicado
- 12:45 Selecionando a placa ESP32 e a porta COM no Arduino IDE
- 14:27 Demonstração e calibração do sensor PIR
Common Course Links
Common Course Files
Recursos e referências
Ainda não há recursos.
Arquivos📁
Folha de dados (pdf)
-
Folha de dados do sensor de movimento RE200B_PRI
RE200B_PRI_datasheet.pdf0.02 MB -
Folha de dados do chip sensor de movimento BISS0001
BISS0001_datasheet.pdf0.16 MB
Outros arquivos
-
Manual do Usuário do Sensor de Movimento HC-SR501
robojax-HC-SR501-motion-manual.pdf