Como construir uma régua/extensão de energia WiFi com Esp32

Fala galera, tudo bem com vocês? No tutorial de hoje vamos aprender como construir uma régua/extensão de energia WiFi com Esp32, e assim poderemos controlar nossos eletrodomésticos pelo WiFi conectado pelo aplicativo Blynk, um projeto fácil de fazer e muito prático, pois você poderá levar para viagem e usá-lo para ligar e desligar o seu ventilador por exemplo!

Ah e tem mais, instalamos um sensor de corrente invasiva, alternada, para monitorar o consumo online em tempo real dos equipamentos conectados na régua, neste post essa informação chegará como corrente elétrica no dashboard do aplicativo Blynk montado por nós, passo a passo aqui.

Porém, no próximo post que iremos escrever, (que será a parte 2 deste projeto), a informação no Blynk será o cálculo em reais do valor gasto pelo dispositivo, assim você conseguirá estipular o quanto pagaria no fim do mês em sua conta de energia, legal né? Pois bora lá.

Neste primeiro post, nossa versão final ficou como na imagem acima, bem básica onde qualquer pessoa poderia montar.

Material necessário para a montagem da régua Wifi com Esp32

Com estes componentes você poderá ligar e desligar os equipamentos conectados na tomada além de monitorar em tempo real o consumo de corrente elétrica na régua!

Montagem do Circuito

O diagram do circuito ficou assim:

régua wifi arduino omega

Fiz questão de montar o circuito com um módulo relé de 04 canais, que você também adquiriu aqui no site Arduino Omega, além do módulo relé usamos uma fonte de energia, tipo carregador de celular para alimentar o Esp32, sensor de módulo relé e dela mesmo já deriva os 220V para o sensor de corrente e os bornes dos relés. Ah, instale um fusível de 250V e 20A na entrada da fonte, assim você garante a segurança em caso de sobrecarga na parte 220V do nosso projeto.

Os leds RGB’s são os indicadores se a tomada está energizada ou não, logo, se observar, só estamos usando os pinos R e G do led, que se referem as cores Red (Vermelha) e Green (Verde), com isso o nosso projeto vai alternar a cor dos leds para Verde se a tomada estiver energizada e Vermelho caso não esteja.

Os componentes verdes, representam a tomada macho, que alimenta a fonte e as tomadas fêmeas que são as entradas dos eletrodomésticos que irão ser conectados à nossa régua.

O princípio básico é o mesmo de uma extensão, um cabo com conector macho que será usado na tomada de energia da sua casa que expande as tomadas para 04.

Lembrando, na imagem só usamos 02 derivações de tomadas mas o código e o circuito lhe orienta a usar 04, caso deseje diminuir as quantidades ou aumentar a lógica é a mesma bastando replicar o que já existe.

Mergulhando no código fonte

Agora vamos ao código necessário para construir uma régua/extensão de energia WiFi com Esp32:

#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h> 
#include <BlynkSimpleEsp32.h> 
BlynkTimer timer;

char auth[] = "Token de Autenticação gerado";

//-------- Configurações de Wi-Fi -----------
char ssid[] = "sua rede";
char pass[] = "sua senha";

float vetCorrente[300];
float valor_medio;
float valor_Corrente;

BLYNK_CONNECTED()
{         // Se conectar com Blynk
  Blynk.syncVirtual(V3);    // Sincroniza com o pino V3
}

void sendSensor()
{
  double maior_Valor = 0;
  double valor_Corrente = 0;  
 
  float tensao = 220;
  float potencia = 0;
 
  for(int i = 0; i < 300; i++)
  {
    vetCorrente[i] = analogRead(39);
    delayMicroseconds(600);
  } 
 
  int somaTotal = 0;
 
  for(int i = 0; i < 300; i++)
  {
    somaTotal = vetCorrente[i] + somaTotal;
  }
  valor_medio = somaTotal / 300;
  valor_medio = valor_medio * 0.0012;
  valor_Corrente = (valor_medio - 2.5);
  valor_Corrente = valor_Corrente*1000;
  valor_Corrente = valor_Corrente / 66; //sensibilidade : 66mV/A para ACS712 30A
 
  Serial.print("Corrente = ");
  Serial.print(valor_Corrente);
  Serial.println(" A");
  potencia = valor_Corrente * tensao;
  Serial.print("Potência = ");
  Serial.print(potencia);
  Serial.println(" W");
  Serial.print(".");
  delay(500);
  Serial.println("");
  Blynk.virtualWrite(V3, valor_Corrente);      
  delay(100);
}
void setup()
{
  Serial.begin(115200);     
  pinMode(13, OUTPUT);           
  pinMode(12, OUTPUT);
  pinMode(14, OUTPUT);           
  pinMode(27, OUTPUT);           
  Blynk.begin(auth, ssid, pass); // TOKEN+REDE+SENHA
  timer.setInterval(1000L, sendSensor);
}
void loop() 
{
  timer.run();
  Blynk.run();
}

Vamos detalhar algumas partes importantes! Logo no início do código podemos ver as importações da bibliotecas necessárias para o ESP32 trabalhar com o aplicativo Blynk além do básico necessário de comunicação WiFi que são as libraries WiFi.h e WiFiClient.h. Estamos usando esta classe BlynkTimer para que o sensor de corrente seja lido de tempo em tempo sem a necessidade de desenvolvermos uma lógica para isso.

#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h> 
#include <BlynkSimpleEsp32.h> 
BlynkTimer timer;

Configuração do Blynk

Agora precisamos configurar o aplicativo Blynk, se ainda não sabe fazer acesse este outro tutorial aqui do nosso blog e veja comp é muito fácil configurar o Blynk.

Neste exemplo acima o Maker Danilo, autor do post, está montando o projeto com o NodeMCU8266, porém o Dashboard é independente do modelo do ESP, o único ponto que você precisaria fazer diferente seria no lugar de selecionar o Modelo NodeMCU:

Configure seu app para o Esp32:

O seu Token chegará via e-mail, o que você configurou na instalação do APP, feito isso bonitinho, seguindo o passo a passo de configuração do Danilo, vamos avançar para a criação do DashBoard, o meu ficou assim:

Para chegar nesse modelo, você precisa criar 05 componentes, um componente virtual para o sensor de corrente e 04 componentes digitais para as tomadas. Para arrastar esses componentes para sua tela, clique no + no canto superior direito e logo apresentará todos os Widget Box, lembrando esse passo a passo está em um outro tutorial aqui no blog, que pode ser visto neste link.

Observe abaixo os ambientes de edição dos Widge’s do nosso projeto:

Pronto, com isso está tudo configurado, os pinos que você escolher no APP será o que você vai definir no código dentro do Setup, então bora voltar pro código.

De volta ao código

Esta função abaixo é responsável por receber o pino virtual criado no app, olha a imagem anterior, na configuração do sensor de corrente definimos um pino virtual V3 com o qual iremos anexar o sensor na placa.

BLYNK_CONNECTED()
{         // Se conectar com Blynk
  Blynk.syncVirtual(V3);    // Sincroniza com o pino V3
}

Vamos pular agora para o Setup, se você estiver seguindo o código verá que pulei umas coisinhas, calma que vou voltar lá, no setup vamos definir os pinos que estão conectados no Esp32 e o módulo relé, lembrando que tem que ser igual ao que foi configurado no app Blynk. Após definir os modos dos pinos inicializa-se o Blynk passando para ele a rede, senha e o token.

void setup()
{
  Serial.begin(115200);     
  pinMode(13, OUTPUT);           
  pinMode(12, OUTPUT);
  pinMode(14, OUTPUT);           
  pinMode(27, OUTPUT);           
  Blynk.begin(auth, ssid, pass); // TOKEN+REDE+SENHA
  timer.setInterval(1000L, sendSensor);
}

No loop, olha que coisa fácil galera, são apenas duas linhas de código(!), chamando o Blynk para rodar a lógica das portas e o timer para contar o tempo definido na última linha da imagem anterior.

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

Agora vamos voltar pra parte que pulei, ela é apenas a função de calculo da corrente elétrica.

 for(int i = 0; i < 300; i++)
  {
    somaTotal = vetCorrente[i] + somaTotal;
  }
  valor_medio = somaTotal / 300;
  valor_medio = valor_medio * 0.0012;
  valor_Corrente = (valor_medio - 2.5);
  valor_Corrente = valor_Corrente*1000;
  valor_Corrente = valor_Corrente / 66; //sensibilidade : 66mV/A para ACS712 30A

Para o calculo da corrente o sensor lê 300x e joga esses valores em um vetor, fazendo assim a média das leituras, após isso na linha 43 faz a multiplicação do valor médio encontrado pela taxa de conversão tensão/bits da porta. No final, é preciso dividir o valor total da corrente por 66 que é a sensibilidade 66mV/A.

Ajuste a faixa de leitura no app e carregue o código e se divirta com o resultado 🙂

Galera é isso ai, tutorial de como Como construir uma régua/extensão de energia WiFi com Esp32 finalizado! Na verdade essa é a primeira parte, na parte 2 vamos aprender a calcular o valor em reais da energia despendida! precisando de um help, pode comentar aqui ou me contactar na rede social, meu Instagram é @profsandromesquita.

Sobre Sandro Mesquita 11 artigos
Prof. Sandro Mesquita, Msc. Eng de Software, CREA - 44680 .

2 Trackbacks / Pingbacks

  1. Como medir o gasto financeiro da régua WiFi com Esp32 -
  2. Estação Metereológica com Arduino Cloud - Blog Arduino Ômega

Deixe uma resposta

O seu endereço de email não será publicado.


*