banner

Ir para o Forum

Introdução à Programação do ESP32




Introdução à Programação do ESP32 utilizando o Arduino IDE. Vou te mostrar aqui como programar um ESP32, de 19 pinos de cada lado, como um Arduino, mas mostrando justamente as diferenças entre este tipo de microcontrolador e o Arduino propriamente dito. Sendo assim, além de introduzir o ESP32 usando a IDE do Arduino, vou te apresentar um exemplo prático para realizar uma leitura digital e atuação digital.



Demonstração




Recursos usados

1 ESP WROOM  32
1 interruptor do tipo push-button
1 resistor 10k ohm
1 módulo de relés
Protoboard




O que é o ESP32?

O ESP32 é uma série de Soc’s (System on Chip), desenvolvido pela Espressif Systems, contendo um microprocessador Tensilica Xtensa LX6, WiFi e Bluetooth integrado.
Foi desenvolvido para que tivesse baixo consumo e baixo custo, sendo uma opção muito interessante para makers ou desenvolvedores de produtos.
Pode ser encontrado em algumas variações, desde o chip passando por módulos e placas de desenvolvimento.


Para iniciar, a utilização de placas de desenvolvimento tende a ser a melhor opção, uma vez que a eletrônica mínima para manutenção do ESP32, que apesar de muito pequena, já está disponível.
Há também a facilidade na utilização de conversores USB-Serial nessas placas de desenvolvimento que facilitam muito o processo de comunicação com ESP32.
As placas de desenvolvimento podem ser encontradas, também, em uma vasta gama de modelos, algumas muito parecidas e outras com facilidades bem específicas.




A placa de desenvolvimento com ESP WROOM 32

Para esta aula, vamos utilizar a placa de desenvolvimento ESP WROOM 32 da NodeMCU.
É importante que ao usar uma placa de desenvolvimento, fiquemos atentos para a forma como esta placa disponibiliza os pinos do módulo para uso externo, em seus cabeçalhos de pinos.




Circuito

Neste circuito vamos detectar o acionamento de um botão, através do GPIO18 (pino 36 da placa) e acionaremos os relés do módulo através dos GPIO32 e 33 (pinos 7 e 8) respectivamente.




Código-Fonte: Declarações

Defino o pino 18 como ligado ao botão. Já aos módulos de relés ficam ligados os pinos 32 e 33. Tenho ainda aqui a variável para guardar o estado do segundo relé.

//Pinos ligado no botão
int btn1 = 18;

//Pinos que são ligados no módulo de relés
int rele1 = 33;
int rele2 = 32;

//variável para guardar o estado do segundo relé
boolean rele2_Ativo = false;

Código-Fonte: Setup()

A função setup() é executada uma vez antes do Loop. Setamos os pinos dos botões como entrada e os pinos de relés como saída. Abrimos, então, a porta serial, definindo a taxa de dados para 9600 bps.

//A função setup() é executada uma vez antes do loop
void setup()
{
  //Seta os pinos dos botões como entrada
  pinMode(btn1, INPUT);

  //Seta os pinos dos relés como saída
  pinMode(rele1, OUTPUT);
  pinMode(rele2, OUTPUT);

  //Abre a porta serial, definindo a taxa de dados para 9600 bps
  Serial.begin(9600);
}


Código-Fonte: Loop()

Aqui, a função loop() é executada após o setup e é repetida continuamente.  Caso o botão 1 seja pressionado, exibiremos no monitor serial a mensagem entre aspas: "Botão pressionado". Ligamos o relé 1, invertemos o estado da variável rele2_Ativo. Mudamos o estado do relé 2, aguardamos 1 segundo (1000 ms) e desligamos o relé 1.

//A função loop() é executada após o setup e é repetida continuamente
void loop()
{
  if (digitalRead(btn1) == HIGH) //Caso o botão 1 foi pressionado
  {
    //Exibe no monitor serial a mensagem entre aspas
    Serial.println("Botão pressionado");

    //Ligamos o relé 1
    digitalWrite(rele1, HIGH);

    //Invertemos o estado da variável rele2_Ativo
    rele2_Ativo = !rele2_Ativo;

    //Mudamos o estado do relé 2
    digitalWrite(rele2, rele2_Ativo );

    //Aguardamos 1 segundo (1000 ms)
    delay(1000);

    //Desligamos o relé 1
    digitalWrite(rele1, LOW);
  }
}


Fazendo o UpLoad do código

Com a IDE aberta, abra o arquivo com o código fonte, clicando duas vezes sobre o arquivo .ino ou através do menu Arquivo



Com o ESP32 conectado a USB, selecione o menu Ferramentas => Placa: “ESP32 Dev Module”



Ainda no menu Ferramentas, selecione a porta COM na qual o ESP32 está conectado



Clique no botão UPLOAD. A IDE irá compilar o código e tentará iniciar a conexão com o ESP32



Quando a mensagem de “Connecting....._____.....___” aparecer, pressione o botão IO0 no ESP32, para habilitá-lo para gravação.



Após a gravação, vamos agora verificar a execução, clique no botão para abrir o Monitor Serial e em seguida, ajuste a velocidade da comunicação (baud rate) para 9600.



Aperte o botão, além do acionamento dos relés, a seguinte mensagem deverá aparecer no Monitor Serial





Faça o download dos arquivos:



4 comentários:

  1. Boas noites.
    Atenção ás coneções do sw está a curto-circuitar o (+) com o (-) !

    ResponderExcluir
  2. Já tenho experiência em programação em várias linguagens, tenho experiência em vários equipamentos de automação também e quero entrar no mercado de automação residencial de alto nível. Tem algum "kit ESP32" que você possa indicar para eu adquirir ou montar?
    Obrigado.
    Luiz Guaraci
    sdv.automacoes@gmail.com

    ResponderExcluir
  3. Estou tendo muitas dificuldades com o tal push button, não tem muita coisa, parece muito simples para quem conhece, mas para quem está começando, é difícil.
    Como funciona o de 4 pinos como saber quais o pinos são ligados após o contato?
    Explica o uso do resistor, mesmo com a voltagem em 3,3v.

    ResponderExcluir

Tecnologia do Blogger.