ESP8266 - Sensor de Toque - Relé

Este tutorial ensina você a usar o ESP8266 e o sensor de toque para controlar o relé. Ao conectar o relé a uma trava solenoide, lâmpada, fita LED, motor ou atuador..., podemos usar um sensor de toque para controlá-los. Vamos aprender duas aplicações diferentes:

Aplicação 1 - O estado do relé é sincronizado com o estado do sensor de toque. Em detalhes:

Aplicação 2 - O estado do relé é alternado cada vez que o sensor de toque é tocado. Mais especificamente:

Sobre o Relé e o Sensor de Toque

Se você não conhece o relé e o sensor de toque (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 toque e relé

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 relé está sincronizado com o estado do sensor de toque

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-touch-sensor-relay */ #define TOUCH_SENSOR_PIN D5 // The ESP8266 pin D5 connected to touch sensor's pin #define RELAY_PIN D7 // The ESP8266 pin D7 connected to relay's pin void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(TOUCH_SENSOR_PIN, INPUT); // Configure the ESP8266 pin to the input mode pinMode(RELAY_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode } void loop() { int touch_state = digitalRead(TOUCH_SENSOR_PIN); // read new state if (touch_state == HIGH) { Serial.println("The sensor is being touched"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (touch_state == LOW) { Serial.println("The sensor is untouched"); digitalWrite(RELAY_PIN, LOW); // turn off } }

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
  • Toque no sensor de toque e mantenha por alguns segundos.
  • Observe a mudança no estado do relé.

Você vai ver que o estado do relé está sincronizado com o estado do sensor de toque.

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 Toque alterna o Relé

Código ESP8266 - Sensor de Toque alterna o Relé

/* * 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-touch-sensor-relay */ #define TOUCH_SENSOR_PIN D5 // The ESP8266 pin D5 connected to touch sensor's pin #define RELAY_PIN D7 // The ESP8266 pin D7 connected to relay's pin int relay_state = LOW; // The current state of relay int prev_touch_state; // The previous state of touch sensor int touch_state; // The current state of touch sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(TOUCH_SENSOR_PIN, INPUT); // Configure the ESP8266 pin to the input mode pinMode(RELAY_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode touch_state = digitalRead(TOUCH_SENSOR_PIN); } void loop() { prev_touch_state = touch_state; // save the last state touch_state = digitalRead(TOUCH_SENSOR_PIN); // read new state if (prev_touch_state == LOW && touch_state == HIGH) { Serial.println("The sensor is touched"); // toggle state of relay relay_state = !relay_state; // control relay according to the toggled state digitalWrite(RELAY_PIN, relay_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 relay_state = !relay_state é equivalente ao código a seguir:

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

Passos Rápidos

  • Copie o código e abra-o no Arduino IDE.
  • Faça upload do código para o ESP8266.
  • Toque e solte o sensor de toque várias vezes.
  • Observe a mudança no estado do relé.

Você vai notar que o relé liga ou desliga uma vez sempre que você tocar no sensor de toque.

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!