Arduino Nano ESP32 - Sensor de Porta

O sensor de porta (também conhecido como sensor de entrada, sensor de contato ou sensor de janela) é muito usado em vários tipos de aplicação, especialmente para segurança. Ele é usado para detectar/monitorar entradas (como porta, janela ...). Este tutorial ensina como usar o Arduino Nano ESP32 com o sensor de porta.

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Sensor de Porta
1×(Opcional) Conector de Alimentação DC
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Sensor de Porta

Pinagem do Sensor de Porta

O sensor de porta tem dois componentes:

  • Um ímã
  • Uma chave reed, que tem dois fios
Pinagem do sensor de porta

Assim como o interruptor/botão, NÃO precisamos diferenciar os dois fios da chave reed.

Como o Sensor de Porta Funciona

O ímã e a chave reed são instalados na porta/janela da seguinte forma:

  • O ímã é a parte móvel. Ele deve ser fixado na porta/janela
  • A chave reed é a parte fixa. Ela deve ser fixada no batente da porta

Os dois componentes ficam em contato quando a porta está fechada.

  • O circuito da chave reed fica fechado quando ela está perto do ímã
  • O circuito da chave reed fica aberto quando ela está longe do ímã
Como o sensor de porta funciona

※ Nota:

Assim como um botão, DEVEMOS usar o resistor de pull-up ou pull-down no pino do Arduino Nano ESP32 que se conecta à chave reed

Se conectarmos a chave reed da seguinte forma: um fio ao GND e o outro ao pino de entrada do ESP32 com um resistor de pull-up:

  • O pino de entrada do ESP32 fica em LOW quando o ímã está perto da chave reed
  • O pino de entrada do ESP32 fica em HIGH quando o ímã está longe da chave reed

Então:

  • Se o pino de entrada do ESP32 está em LOW, a porta está fechada
  • Se o pino de entrada do ESP32 está em HIGH, a porta está aberta
  • Se o pino de entrada do ESP32 muda de LOW para HIGH, a porta está abrindo
  • Se o pino de entrada do ESP32 muda de HIGH para LOW, a porta está fechando

Diagrama de Ligação entre o Sensor de Porta e o Arduino Nano ESP32

Diagrama de ligação do sensor de porta com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Como Programar o Sensor de Porta

  • Inicializa o pino do Arduino Nano ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino D2
pinMode(D2, INPUT_PULLUP);
  • Lê o estado do pino do Arduino Nano ESP32 usando a função digitalRead().
int door_state = digitalRead(D2);

Código Arduino Nano ESP32 - Verificar o Estado Aberto e Fechado da Porta

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to door sensor's pin int door_state; void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Passos Rápidos

  • Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
  • Copie o código acima e cole na Arduino IDE.
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload na Arduino IDE
  • Aproxime o ímã da chave reed e depois afaste-o da chave reed.
  • Veja o resultado no Serial Monitor. Ele se parece com o exemplo abaixo:.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Código Arduino Nano ESP32 - Detectar Eventos de Abertura e Fechamento da Porta

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to door sensor's pin int door_state; // current state of door sensor int prev_door_state; // previous state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == LOW && door_state == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Copie o código acima e cole na Arduino IDE.
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload na Arduino IDE
  • Aproxime o ímã da chave reed e depois afaste-o da chave reed.
  • Veja o resultado no Serial Monitor. Ele se parece com o exemplo abaixo:.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
The door-closing event is detected The door-opening event is detected
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!