ESP8266 - Sensor de Porta - LED

Este tutorial ensina você a usar o ESP8266 e o sensor de porta para controlar o LED. Vamos aprender duas aplicações diferentes:

Aplicação 1 - O LED fica aceso quando a porta está aberta e apagado quando a porta está fechada. O estado do LED é sincronizado com o estado do sensor de porta. Em detalhes:

Aplicação 2 - O estado do LED é alternado cada vez que a porta é aberta. Mais especificamente:

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
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×LED Kit
1×LED (red)
1×LED Module
1×(Alternativa) Button and LED Kit
1×220Ω Resistor
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

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.

Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.

Sobre o LED e o Sensor de Porta

Se você não conhece o LED e o sensor de porta (incluindo pinagem, funcionamento e programação), os tutoriais a seguir podem ajudar:

Diagrama de Ligação

Diagrama de ligação do ESP8266 NodeMCU com sensor de porta e LED

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.

Aplicação 1 - O estado do LED está sincronizado com o estado do sensor de porta

Código ESP8266

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-door-sensor-led */ #define DOOR_SENSOR_PIN D7 // The ESP8266 pin D7 connected to the OUTPUT pin of door sensor #define LED_PIN D2 // The ESP8266 pin D2 connected to LED'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); // Configure the ESP8266 pin to the input pull-up mode pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open, turns on LED"); digitalWrite(LED_PIN, HIGH); // turn on LED } else { Serial.println("The door is closed, turns off LED"); digitalWrite(LED_PIN, LOW); // turn off LED } }

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.
  • Conecte um ESP8266 ao seu computador com um cabo USB.
  • Abra o Arduino IDE e selecione a placa e a porta corretas.
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para compilar e fazer upload do código para o ESP8266.
Carregar código no Arduino IDE
  • Abra e feche a porta
  • Observe a mudança no estado do LED.

Você vai ver que o estado do LED está sincronizado com o estado do sensor de porta.

Explicação do Código

Veja a explicação linha por linha nos comentários do código-fonte!

Aplicação 2 - O Sensor de Porta alterna o LED

Código ESP8266 - Sensor de Porta alterna o LED

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-door-sensor-led */ #define DOOR_SENSOR_PIN D7 // The ESP8266 pin D7 connected to the OUTPUT pin of door sensor #define LED_PIN D2 // The ESP8266 pin D2 connected to LED's pin int led_state = LOW; // The current state of LED int prev_door_state; // The previous state of door sensor int door_state; // The current state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected, toggles the state of LED"); // toggle state of LED led_state = !led_state; // control LED according to the toggled state digitalWrite(LED_PIN, led_state); } }

Explicação do Código

Você pode encontrar a explicação nas linhas de comentário do código ESP8266 acima.

No código, a expressão led_state = !led_state é igual ao código a seguir:

if(led_state == LOW) led_state = HIGH; else led_state = LOW;

Passos Rápidos

  • Copie o código e abra-o no Arduino IDE.
  • Faça upload do código para o ESP8266.
  • Abra e feche a porta várias vezes.
  • Observe a mudança no estado do LED.

Você vai ver que o estado do LED é alternado uma vez cada vez que a porta é fechada.

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!