Manual

do

Maker

.

com

Blynk com ESP32 usando servidor Blynk local

Blynk com ESP32 usando servidor Blynk local

Espero estar agradando com as introduções ao Blynk. Já escrevi artigos anteriormente, mas não dei a devida atenção. No artigo anterior mostrei como configurar um servidor Blynk local utilizando um Raspberry como broker. Nesse artigo vou mostrar uma breve introdução de uso desse broker, utilizando Blynk com ESP32 para o teste. Posteriormente farei artigos mais avançados, ok?

Preparando o ambiente

Eu utilizo e recomendo fortementne a utilização da IDE Atom com Platformio. Dê uma olhada nesse link.

Vantagens de utilizar Atom com PlatformIO

Primeiramente, a IDE possui muitos recursos agradáveis e tem tudo integrado. Segundo, uma aba do PlatformIO é aberta, permitindo a criação de projetos orientados por um wizard, o que facilita um bocado para quem está iniciando. Na aba Libraries podemos pesquisar por bibliotecas de forma semelhante ao Arduino. A vantagem aí está na possibilidade de visualizar os exemplos de utilização sem abrir janelas e janelas. Por fim, tem o recurso de auto-completação de código, o que agiliza bastante o desenvolvimento e auxilia na utilização dos recursos disponíveis. Tem mais coisas, mas sugiro que experimente.

Criando um novo projeto do Blynk com ESP32

Na aba PlatformIO encontra-se uma opção chamada Boards. Nela, podemos incluir as arquiteturas desejadas. Adicione o ESP32.

Após criar um novo projeto através da mesma aba, clique em Libraries. Na caixa de pesquisa, digite Blink. Instale-a.

Volte ao Blink no smartphone. Crie um novo projeto para a respectiva board. Feito isso, o token será enviado para o email cadastrado. Pegue-o e adicione ao sketch, aproveitando para configurar também o SSID e senha da sua rede WiFi.

No método begin() do Blynk:

Blynk.begin(auth, ssid, pass,SRV,PORT);

Adicione o IP do Blynk server no formato Arduino e a porta 8080 após as linhas de include:

#define SRV IPAddress(192,168,1,2)
#define PORT 8080

O código completo fica assim:

#define BLYNK_PRINT Serial
#define BLYNK_DEBUG 1

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = "mfsdoirywy8elkfnlksfjodada"; //token por email

#define SRV IPAddress(192,168,1,2)
#define PORT 8080

char ssid[] = "seu_ssid";
char pass[] = "sua_senha";

void setup()
{
  // Debug console
  Serial.begin(115200);
  delay(5000);

  Blynk.begin(auth, ssid, pass,SRV,PORT);
}

void loop()
{
  Blynk.run();
}

Adicionei um botão para ligar e desligar o LED built-in. No terminal eu percebi que ele colocou o pino em OUTPUT ao criar o botão. Ao clicar, adivinha? Acendeu!

Coloquei um gráfico, bastante útil para medir pulsos, ou temperatura, ou luminosidade etc.

Vou escrever um pouco sobre o Blynk com ESP32, mas o Blynk tem uma boa documentação (em inglês). Só o código que é porcamente identado, mas fora isso funciona e é fácil usar!

blynk-graph-169x300.webp

Como não tinha nenhum sensor conectado ao ESP32, fiquei ligando e desligando o LED.

Outra coisa importante; seguindo esse tutorial, você não deve ter problema, mas caso não seja possível estabelecer a conexão, a mensagem de debug não é clara. Deve exibir algo "package too big:...".  Quando a conexão é devidamente estabelecida, o ESP32 deve exibir na serial algo como:

[2317718] <[06|00|E9|00|00]
[2317731] >[00|00|E9|00|C8]
[2327722] <[06|00|EA|00|00]
[2327735] >[00|00|EA|00|C8]
[2337726] <[06|00|EB|00|00]
[2337740] >[00|00|EB|00|C8]
[2347730] <[06|00|EC|00|00]

Eu não suspeitei da origem do problema que estava ocorrendo, então fiz sniffing da interface de rede. Por acaso, não estava chegando nada na porta 8080 nem na 9443. Foi aí que procurei o construtor do método begin() para ver que parâmetros eu poderia passar e ví que era possível passar além do IP, a porta. Daí foi só sucesso!

Sugiro também da uma olhada no diretório do server - execute-o preferencialmene a partir de um diretório exclusivo porque ele criará as pastas logsstatic. Além desses dois, é necessário passar o diretório de dados e por fim, tem a criação do e-mail para que seja possível enviar o token. Eu criei o diretório Blynk e coloquei o server dentro. A estrutura acaba ficando organizada, com o seguinte conteúdo:

blynk_server-struct.webp

Pode NÃO SER NECESSÁRIO, mas antes de resolver o problema de conexão, apelei à interface de configuração do server, descrito no artigo anterior. Nele, mudei os parâmetros de servidor listen.address=0.0.0.0/0,::/0net.interface=wlan. Estou muito preguiçoso para voltar ao padrão e testar se precisa fazer isso, mas fique à vontade para testar aí seu Blynk com ESP32.

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.