ESP8266 - Sensor de Toque

Este tutorial ensina você a usar o sensor de toque capacitivo com o ESP8266. Em detalhes, vamos aprender:

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 Toque
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.

Sobre o Sensor de Toque

Um sensor de toque capacitivo, também conhecido como botão de toque ou chave de toque, é comumente usado para controlar dispositivos, como uma luminária de toque. Ele tem o mesmo propósito de um botão, mas é usado no lugar de um botão em muitos dispositivos modernos por causa da sua aparência elegante.

Pinagem do Sensor de Toque

O sensor de toque tem três pinos:

  • Pino GND: deve ser conectado à tensão de terra (0V).
  • Pino VCC: deve ser conectado à tensão VCC (5V ou 3,3V).
  • Pino SIGNAL: é um pino de saída. Ele fica em LOW quando não há toque e em HIGH quando há toque. Este pino deve ser conectado a um pino de entrada do ESP8266.
Pinagem do sensor de toque

Como Funciona

  • Quando não há interação com o sensor, o pino SIGNAL do sensor fica em nível LOW.
  • Porém, quando o sensor é tocado, o pino SIGNAL do sensor fica em nível HIGH.

ESP8266 - Sensor de Toque

O pino SIGNAL do sensor de toque é conectado a um pino de entrada de um ESP8266. Podemos determinar se o sensor de toque foi tocado examinando o estado do pino do ESP8266.

Diagrama de Ligação

ESP8266 NodeMCU sensor de toque 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 para o Sensor de Toque

  • Configure o pino do ESP8266 no modo de entrada digital usando a função pinMode(). Por exemplo:
pinMode(D7, INPUT);
  • Leia o estado do pino do ESP8266 por meio da função digitalRead().
int inputState = digitalRead(D7);

※ Nota:

Há dois cenários comumente usados:

  • O primeiro: se o estado de entrada for HIGH, execute uma ação. Se o estado de entrada for LOW, execute a ação oposta.
  • O segundo: se o estado de entrada mudar de LOW para HIGH (ou de HIGH para LOW), execute uma ação.

Escolhemos um deles conforme o objetivo da aplicação. Por exemplo, se quisermos usar um sensor de toque para controlar um LED:

  • Se o objetivo é que o LED fique LIGADO quando o sensor é tocado e DESLIGADO quando o sensor NÃO é tocado, DEVEMOS usar o primeiro cenário.
  • Se o objetivo é que o LED alterne entre LIGADO e DESLIGADO a cada toque no sensor, DEVEMOS usar o segundo cenário.

Sensor de Toque - Código ESP8266

O tutorial fornece dois códigos de exemplo:

  • O ESP8266 lê o valor do sensor de toque e o imprime no Serial Monitor.
  • O ESP8266 detecta se o sensor foi tocado ou solto.

O ESP8266 lê o valor do sensor de toque e o imprime no Serial Monitor

/* * 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 */ #define SENSOR_PIN D7 // The ESP8266 NodeMCU input pin that connects to the sensor's SIGNAL pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); // print state to Serial Monitor Serial.println(state); }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira 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 no Arduino IDE.
  • Clique no botão Upload no IDE para transferir o código para o ESP8266.
  • Coloque o dedo no sensor e depois retire-o.
  • Veja a saída no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
0 0 0 1 1 1 1 1 1 0 0
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

O ESP8266 detecta se o sensor foi tocado ou solto

/* * 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 */ #define SENSOR_PIN D7 // The ESP8266 NodeMCU input pin that connects to the sensor's SIGNAL pin int prev_state = LOW; // The previous state from the input pin int touch_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: touch_state = digitalRead(SENSOR_PIN); if(prev_state == LOW && touch_state == HIGH) Serial.println("The sensor is touched"); else if(prev_state == HIGH && touch_state == LOW) Serial.println("The sensor is released"); // save the the last state prev_state = touch_state; }

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 upload do código para o ESP8266.
  • Mantenha o dedo tocando o sensor.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
The sensor is touched
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
  • Retire o dedo do sensor.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
The sensor is touched The sensor is released
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) 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!