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:
10 Comentários
Boas noites.
ResponderExcluirAtenção ás coneções do sw está a curto-circuitar o (+) com o (-) !
Também estou percebendo.Como seria o correto?
ExcluirO correto é ligar Vcc no terminal 1 do botão, e o terminal 2 do botão no resistor e o resistor no GND. A derivação para o GPIO é feita no no terminal 2 do botão.
ExcluirO correto é ligar Vcc no terminal 1 do botão, e o terminal 2 do botão no resistor e o resistor no GND. A derivação para o GPIO é feita no no terminal 2 do botão.
ExcluirJá 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?
ResponderExcluirObrigado.
Luiz Guaraci
sdv.automacoes@gmail.com
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.
ResponderExcluirComo 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.
A chave TAC de 4 posições possui 2 terminais em curto. Assim se você medir com um multimetro irá encontrar as posições que são curto circuitadas.
ExcluirQuanto ao resistor não há necessidade de trocar por um valor mais baixo, pois nesse caso a corrente é apenas de referência para o pino, e a corrente é suficiente para aciona-lo.
Bom dia,
ResponderExcluirposso usar blocos de relés serial com o esp32?
TD BEM FERNANDO ONDE VC COMPROU SEU STM32F746G ?
ResponderExcluirFernando blz, tem um erro no desenho esquemático que você fez, a configuração do resistor de pull-down está errado, quando clicar no push button vai fechar curto. Fora isso, excelente aula.
ResponderExcluir