Como usar o touch capacitivo do ESP32

Post como usar o sensor touch capacitivo do ESP32

Uma característica interessante do ESP32 é a possibilidade de usar o pino touch capacitivo do módulo, recurso que pode ser utilizado em projetos de automação residencial e IoT (Internet das Coisas) para acionamento de motores, luzes, relés e uma infinidade de outros componentes.

O módulo ESP32 já foi abordado em vários outros artigos aqui do Arduino e Cia, e mostra-se uma excelente opção para o seu projeto pois já conta com conexão Wifi e Bluetooth integrados, podendo ser controlado por exemplo por smartphones.

Com a função touch você já está mais do que acostumado, pois é dessa maneira que você, no seu telefone celular, seleciona através da tela um aplicativo, executa uma rolagem de tela e comanda diversas outras funções. A grande maioria dos smartphones hoje em dia usam sensores capacitivos em sua estrutura.

Onde estão os pinos capacitivos do ESP32?

Você vai encontrar facilmente os pinos capacitivos do ESP32 dando uma olhadinha na figura abaixo. Nela temos os pinos capacitivos destacados na cor rosa.

Nessa versão do ESP32 com 30 pinos você tem disponíveis 9 pinos com a função touch capacitiva, e em versões do NodeMCU com 36 ou 38 pinos você tem 10 pinos touch.

Circuito de testes dos pinos capacitivos

Vamos então montar o circuito de testes, no qual vamos usar a função touch da GPIO4 (pino D4) e GPIO15 (pino D15) para acionar 2 leds conectados nas GPIOs 22 e 23:

A extremidade dos fios que estão conectados nas portas que vamos usar como “touch” podem permanecer desconectadas (soltas) e você pode por exemplo criar uma estrutura em papel laminado para aumentar a área de contato, ou até mesmo criar algo em uma PCB (placa de circuito impresso).

Configurando a IDE para o ESP32

Vamos programar o ESP32 usando a IDE do Arduino, e para isso vamos primeiro fazer algumas configurações para que isso tudo funcione.

Primeiramente, acesse o menu Arquivo -> Preferências da IDE, e no item URL´s Adicionais para Gerenciadores de Placas coloque o seguinte endereço:

https://dl.espressif.com/dl/package_esp32_index.json

Clique em OK e agora vá até o menu Ferramentas -> Placa -> Gerenciadores de placas. Procure por ESP32, localize o pacote esp32 by Espressif Systems e em seguida selecione Instalar:

Após a instalação, selecione a placa ESP32 Dev Module no menu Ferramentas, conforme a imagem abaixo:

Isso finaliza a configuração da IDE, preparada agora para ser usada com o ESP32.

Programa acionamento touch capacitivo do ESP32

O programa abaixo faz a leitura das GPIOs 4 e 15, onde estão conectados os fios referentes ao nosso “leitor capacitivo”.

Para fazer essa leitura é usada a função touchRead(), na qual é indicada a GPIO que será utilizada.

No nosso caso então, usaremos touchRead(4) e touchRead(15). As variáveis valor_tecla1 e valor_tecla2 armazenam os valores lidos dessas portas.

//Programa: Touch Capacitivo ESP32 NodeMCU
//Autor: Arduino e Cia

//Variaveis que armazenam o valor lido dos pinos touch
int valor_tecla1, valor_tecla2;

void setup() 
{
  Serial.begin(115200);
  delay(1000);
  Serial.println("Teste touch capacitivo ESP32");

  //Definicao dos pinos dos leds
  pinMode(22, OUTPUT); //Led Vermelho
  pinMode(23, OUTPUT); //Led Verde
}

void loop() 
{
  //Leitura dos pinos touch
  valor_tecla1 = touchRead(4); //Touch0 - GPIO4
  valor_tecla2 = touchRead(15); //Touch3 - GPIO15

  //Checa tecla 1
  if (valor_tecla1 <= 20)
  {
    digitalWrite(22, LOW);
  }
  else
  {
    digitalWrite(22, HIGH);
  }

  //Checa tecla 2
  if (valor_tecla2 <= 20)
  {
    digitalWrite(23, LOW);
  }
  else
  {
    digitalWrite(23, HIGH);
  }

  //Mostra valores no serial monitor
  Serial.print("Tecla 1: ");
  Serial.print(valor_tecla1);
  Serial.print(" Tecla 2: ");
  Serial.println(valor_tecla2);

  delay(1000);
}

A cada 1 segundo é feita uma varredura da GPIO, verificando se algum pino touch foi acionado. Caso o valor do pino seja menor do que 20, é aceso o led correspondente.

Para facilitar o acompanhamento desse processo, os valores dos pinos são enviados para o monitor serial, onde você deve ter uma saída como essa:

Você pode usar o mesmo princípio para acionar motores, buzzers e até mesmo relés, criando o seu projeto de automação residencial usando sensores capacitivos.

Gostou de usar o sensor touch capacitivo do ESP32? Então confira outros posts usando ESP32 aqui mesmo no Arduino e Cia!

4/5 - (1 voto)

Related posts

Como usar o WifiManager com ESP32 e ESP8266

by Arduino e Cia
2 anos ago

Controle o ESP8266 pelo smartphone usando Blynk

by Arduino e Cia
3 anos ago

Controlando um servo motor utilizando Android e Bluetooth

by Arduino e Cia
11 anos ago
Sair da versão mobile