Recents in Beach


Receba o meu conteúdo GRATUITAMENTE


Introdução ao ESP32 WiFi LoRa



Vamos ao segundo vídeo da nossa playlist “Introdução”, desta vez, abordando o “ESP32 WiFi LoRa”. Esse “cara” é muito especial porque ele tem 3 WiFi’s: Bluetooth 4.2; WiFi 802.11; e tem o LoRa, tipo de rede com alcance de 3,6 km com uma antena simples. Tudo isso pode ser usado ao mesmo tempo, o que o torna magnífico. Vamos, então, introduzir o Heltec WiFi LoRa 32 usando a IDE do Arduino e apresentar um exemplo prático para realizar uma leitura digital e atuação digital.




Recursos usados

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




O que é o Heltec WiFi LoRa 32?

É uma placa de desenvolvimento que integra um SoC ESP32-D0WDQ6.
Um chip W25Q32FV de Memória Flash Serial (SPI/QPI) com aproximadamente 32 megabits (4 megabytes) de armazenamento.
Um chip SX1278 LoRa, controlado pelo ESP32.
A interface USB-Serial utiliza um CP2102 da Silicon Labs.


Além de um MCP73831/2, controlador de carga de bateria de Íon de Lítio (Li-Ion) ou Polímero de Lítio (Li-Po).
E um regulador AP2112-3.3 para fornecer 3,3V e um mínimo de 600mA.
A placa conta com dois cristais, um de 26MHz para o ESP32 e um de 32MHz para o SX1278
Um display OLED 0.96”, também controlado pelo ESP32.




Esquema elétrico Heltec WiFi LoRa 32

Esse mesmo esquema elétrico serve tanto para o chip da Heltec quanto da TTGO.





Pinout da placa Heltec WiFi LoRa 32

Destaco que, se você pegar o ESP32 tradicional, diferentemente desta imagem, ele não vai ter o display e o SX1278, que é o chip da Semtech.




TTGO x Heltec




Circuito

Neste circuito vamos detectar o acionamento de um botão, através do GPIO34 (pino 34 da placa), e acionaremos os relés do módulo através dos GPIO22 e 23 (pinos 22 e 23), respectivamente.




Instalação da placa

Para instalar a placa podemos seguir as instruções da própria Heltec em seu GIT.




Código fonte

Declarações

Quando você está fazendo referência ao pino do ESP32, o que importa é o GPIO. Nesta etapa, portanto, apontamos o pino que está ligado no botão, bem como os que são ligados no módulo de relés. Temos ainda a variável para guardar o estado do segundo relé. 

//Pino ligado no botão
int btn1 = 34;
//Pinos que são ligados no módulo de relés
int rele1 = 22;
int rele2 = 23;
//variável para guardar o estado do segundo relé
boolean rele2_Ativo = false;


Setup()

A função setup() deve ser executada uma vez antes do loop. Setamos os pinos dos botões como entrada, dos relés como saída, e abrimos 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);
}


Loop()

Quanto a função loop(), esta é executada após o setup e é repetida continuamente. Verifico se o botão foi pressionado e, em caso positivo, imprimimos este status na tela. Ligamos, então, o relé 1, invertemos o estado da variável rele2_Ativo e mudamos o estado do relé 2. Aguardamos 1 segundo 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 Heltec conectado à USB, selecione o menu Ferramentas => Placa: “Heltec_WIFI_LoRa_32”



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



Clique no botão UPLOAD...


...E aguarde a conclusão:




Verificando a execuçã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:



Postar um comentário

4 Comentários

  1. Fernando, boa noite.
    Estou tentando utilizar um sensor de temperatura MAX6675 com o ESP32 LORA e não sei porque não compila. Você poderia me ajudar. Fiz um código bem simples só para testar mas não compila. Acho que a biblioteca não funciona com este micro controlador. Sabe alguma coisa a respeito?
    O mesmo código funciona bem com Arduíno, basta modificar os pinos.
    Desde já agradeço o seu apoio. Você tem me ajudado muito com seus vídeos e materiais para dowload.

    ResponderExcluir
  2. Bom dia,Fernando.

    Esse Esp vem com uma bateria integrada, é isso?

    ResponderExcluir
  3. fala fernando, posta o link de onde posso comprar o esp32-lora

    ResponderExcluir
  4. Nesse diagrama de pinagem aqui nesse post (e em nenhum outro q vi aqui na WEB) não mostra quais são os pinos que tem RTC habilitado. Vc sabe informar quais são?

    ResponderExcluir