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:
4 Comentários
Fernando, boa noite.
ResponderExcluirEstou 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.
Bom dia,Fernando.
ResponderExcluirEsse Esp vem com uma bateria integrada, é isso?
fala fernando, posta o link de onde posso comprar o esp32-lora
ResponderExcluirNesse 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