Arduino Nano - Sensor de Porta

O sensor de porta é uma escolha popular para segurança. Ele é usado para detectar e monitorar entradas, como portas e janelas. Esse dispositivo também é chamado de sensor de entrada, sensor de contato ou sensor de janela.

Este tutorial ensina você a usar o Arduino Nano com o sensor de porta. Em detalhes, vamos aprender:

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Sensor de Porta
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

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

Um sensor de porta é formado por duas partes:

  • Um ímã.
  • Um reed switch que tem dois pinos: como em uma chave/botão comum, não é necessário diferenciar os dois pinos.
Pinagem do sensor de porta

Como Funciona

O ímã é fixado na porta/janela (a parte que se move), e o reed switch é preso ao batente da porta (o elemento estático). As duas peças entram em contato quando a porta está fechada:

  • Quando o ímã está perto do reed switch, o circuito do reed switch fica fechado
  • Quando o ímã está longe do reed switch, o circuito do reed switch fica aberto
Como o sensor de porta funciona

※ Nota:

O reed switch não fornece uma saída LOW ou HIGH em seus pinos. Ele está fechado ou aberto. Dependendo de como o conectamos ao Arduino Nano, o pino pode ter o valor LOW, HIGH ou um valor flutuante (imprevisível). Para evitar o valor flutuante, é preciso usar um resistor de pull-up ou pull-down no pino do Arduino Nano.

Se conectarmos um pino do reed switch ao GND e o outro pino do reed switch a um pino de entrada do Arduino Nano com resistor de pull-up (interno ou externo):

  • Quando o ímã está perto do reed switch, o valor no pino de entrada do Arduino é LOW
  • Quando o ímã está longe do reed switch, o valor no pino de entrada do Arduino é HIGH

Para saber o estado da porta, basta olhar o estado do pino de entrada do Arduino:

  • Se o estado for LOW, a porta está fechada
  • Se o estado for HIGH, a porta está aberta

Também podemos detectar quando a porta é aberta ou fechada observando uma mudança no estado do pino de entrada do Arduino:

  • Se o estado mudar de LOW para HIGH, o evento de abertura da porta é detectado
  • Se o estado mudar de HIGH para LOW, o evento de fechamento da porta é detectado

Diagrama de Ligação

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

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Como Programar para o Sensor de Porta

  • Inicialize o pino do Arduino Nano no modo de entrada digital usando a função pinMode(). Por exemplo, o código a seguir pode ser usado para configurar o pino 2 como entrada.
pinMode(2, INPUT_PULLUP);
  • Usa a função digitalRead() para descobrir o estado do pino do Arduino Nano.
int door_state = digitalRead(2);

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

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-door-sensor */ #define DOOR_SENSOR_PIN 2 // The Arduino Nano 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 arduino 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

  • Copie o código e abra-o com o Arduino IDE.
  • Clique no botão Upload no Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Aproxime o ímã do reed switch e depois afaste.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 on COM15
2

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

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-door-sensor */ #define DOOR_SENSOR_PIN 2 // The Arduino Nano 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 arduino 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 e abra-o no Arduino IDE.
  • Clique no botão Upload para transferir o código para o Arduino Nano.
  • Aproxime o ímã do reed switch e depois afaste.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
The door-closing event is detected The door-opening event is detected
Ln 11, Col 1
Arduino Nano on COM15
2

Vídeo

Referências de Funções

※ 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!