ESP8266 - Sensor de Porta
O sensor de porta é uma escolha popular para sistemas de segurança, pois pode detectar e monitorar entradas como portas, janelas e mais. Ele também é chamado de sensor de entrada, sensor de contato ou sensor de janela.
Este tutorial ensina você a usar o ESP8266 com o sensor de porta. Em detalhes, vamos aprender:
- Como conectar o ESP8266 ao sensor de porta.
- Como programar o ESP8266 para ler o estado do sensor de porta.
- Como programar o ESP8266 para verificar se a porta está aberta ou fechada.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor de Porta
Pinagem do Sensor de Porta
Um sensor de porta é composto por duas partes:
- Um reed switch com dois pinos
- Um ímã

Assim como um interruptor/botão comum, não é necessário diferenciar os dois pinos do reed switch.
Como Funciona
O ímã é fixado na porta/janela (a parte móvel), e o reed switch é fixado no batente da porta (a parte fixa). Quando a porta está fechada, os dois componentes ficam em contato:
- Se o ímã estiver próximo do reed switch, o circuito do reed switch está fechado
- Se o ímã estiver distante do reed switch, o circuito do reed switch está aberto

※ Nota:
O reed switch não produz um sinal LOW ou HIGH em seus pinos. Ele está apenas fechado ou aberto. Dependendo de como o conectamos ao ESP8266, o valor do pino pode ser LOW, HIGH ou um valor flutuante imprevisível. Para evitar isso, um resistor de pull-up ou pull-down deve ser usado no pino do ESP8266.
Se ligarmos um pino do reed switch ao GND e o outro pino do reed switch a um pino de entrada do ESP8266 com um resistor de pull-up (interno ou externo):
- Quando o ímã está próximo do reed switch, o valor no pino de entrada do ESP8266 é LOW
- Quando o ímã está distante do reed switch, o valor no pino de entrada do ESP8266 é HIGH
Para determinar o estado da porta, basta verificar 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 abre ou fecha monitorando as mudanças de estado no pino de entrada do ESP8266:
- Se o estado mudar de LOW para HIGH, a abertura da porta foi detectada
- Se o estado mudar de HIGH para LOW, o fechamento da porta foi detectado
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Como Programar o Sensor de Porta
- Configura o pino do ESP8266 no modo de entrada digital usando a função pinMode(). Como exemplo, o pino D7 é configurado como entrada.
- Utiliza a função digitalRead() para avaliar o estado do pino do ESP8266.
Código ESP8266 - Verificar o Estado Aberto e Fechado da Porta
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Copie o código e abra-o com o Arduino IDE.
- Clique no botão Upload da IDE para enviar o código para o ESP8266.
- Aproxime o ímã do reed switch e depois afaste-o.
- Veja o resultado no Serial Monitor.
Código ESP8266 - Detectar Eventos de Abertura e Fechamento da Porta
- Copie o código e abra-o no Arduino IDE.
- Clique no botão Upload para transferi-lo para o ESP8266.
- Aproxime o ímã do reed switch e depois afaste-o.
- Veja o resultado no Serial Monitor.