Como fazer um sistema de automação residencial inteligente usando o módulo ESP32?

Nesta era moderna, o conceito de automação residencial está crescendo em grande velocidade. Sistemas inteligentes estão sendo instalados em quase todos os lugares. Smart Home Systems é um conceito em que todos os aparelhos elétricos ou dispositivos são controlados por meio de um único controle remoto. Nesses sistemas, na maioria das vezes, o controle remoto é um aplicativo móvel. Como o celular Android é o mais comum entre as pessoas, um aplicativo Android é a melhor opção para controlar todos esses dispositivos.



Automação residencial

Portanto, neste projeto, vamos conectar alguns dos aparelhos elétricos da casa ao módulo de relé e controlá-lo através do microcontrolador ESP32. Faremos um banco de dados firebase realtime e o conectaremos a partir do aplicativo Android. Este aplicativo Android irá enviar os dados para a nuvem e, em seguida, serão enviados para o microcontrolador para ligar ou desligar o aparelho elétrico. A melhor parte é que você pode ter controle total sobre a troca de seus eletrodomésticos de qualquer lugar do mundo. Você só precisa de uma conexão com a Internet para operar o aplicativo Android.



Como controlar eletrodomésticos através de WiFi?

Os sistemas de automação residencial que já estão disponíveis no mercado são muito caros. Podemos usar uma placa ESP32 para conectar diferentes eletrodomésticos e controlá-los usando um aplicativo Android. Isso terá um custo muito baixo e será uma forma eficiente de automatizar a casa. Agora, vamos dar um passo à frente e começar a coletar informações para iniciar o projeto.



Etapa 1: Coletando os componentes

A melhor abordagem para iniciar qualquer projeto é fazer uma lista de componentes e passar por um breve estudo desses componentes, porque ninguém vai querer ficar no meio de um projeto apenas por causa de um componente ausente. Uma lista de componentes que vamos usar neste projeto é fornecida abaixo:



  • ESP32
  • Tábua de pão
  • Fios de conexão

Etapa 2: estudar os componentes

Agora que conhecemos o resumo deste projeto, vamos dar um passo à frente e fazer um breve estudo do funcionamento dos principais componentes que iremos utilizar.

ESP32 é uma placa de microcontrolador de baixo consumo e baixo custo que possui WiFi integrado e um módulo Bluetooth de modo duplo. Esta placa de microcontrolador é criada e desenvolvida por Sistemas Espressif . Esta placa possui amplificadores de potência integrados, amplificadores de recepção de baixa qualidade, filtros e seletores de antena. É alimentado por um cabo de dados android e pode fornecer até 3,3 V na saída. O ESP32 executa TCP / IP, convenção 802.11 b / g / n / e / I WLAN MAC completa e Wi-Fi Direct em particular. Isso significa que o ESP 32 pode endereçar uma grande parte dos Roteadores WiFi existentes quando utilizado no modo de estação (cliente). Da mesma forma, ele pode fazer um ponto de acesso com 802.11 b / g / n / e / I completo. ESP32 não se limita a apoiar o BLE Bluetooth 4.2 mais recente, ele também reforça o excelente Bluetooth. Basicamente, significa que pode atender a telefones / mesas Bluetooth antigos e novos. Se você não tem um módulo ESP32, também pode usar ESP8266 ou um Node MCU. Essas placas podem ser usadas para realizar a mesma tarefa se estiverem conectadas ao WiFi.

ESP32



Um módulo de relé é um dispositivo de comutação. Funciona em dois modos, Normalmente aberto (NÃO) e Normalmente Fechado (NC) . No modo NO, o circuito está sempre interrompido, a menos que você envie um sinal HIGH para o relé por meio do Arduino. O modo NC piora ao contrário. O circuito está sempre completo, a menos que você ligue o módulo de relé. Certifique-se de conectar o fio positivo do seu aparelho elétrico ao módulo de relé da maneira mostrada abaixo.

Montagem do circuito do módulo de relé

Etapa 3: Diagrama de blocos

Diagrama de bloco

No diagrama de blocos acima, o fluxo deste projeto é mostrado. Os relés são conectados aos aparelhos ou dispositivos elétricos da casa. Um aplicativo móvel enviará um Em ou FORA comando para o banco de dados. Esta nuvem está conectada à placa do microcontrolador ESP32 por meio de wi-fi. Para ligar o aparelho eletrônico enviaremos um “1” no banco de dados e para desligá-lo enviaremos um “0” no banco de dados. Este comando será obtido pelo microcontrolador porque também está conectado ao banco de dados. Com base neste 0 ou 1, o microcontrolador ligará ou desligará o módulo de relé, o que acabará por resultar na ligação dos aparelhos elétricos.

Portanto, aqui, neste artigo, usarei dois módulos de relé para mostrar todo o procedimento. Mas você pode aumentar o número de relés e adicionar o mesmo pedaço de código em seu programa se quiser controlar um número maior de eletrodomésticos.

Etapa 4: montagem dos componentes

Agora que temos uma visão clara do que queremos fazer neste projeto, não vamos perder mais tempo e começar a montar os componentes.

  1. Pegue uma placa de ensaio e conserte o microcontrolador ESP32 nela. Agora pegue os dois módulos de relé e conecte o Vcc e o aterramento dos módulos ao Vin e o aterramento da placa do microcontrolador ESP32 em paralelo. Conecte o no pino dos módulos de relé para o pino 34 e pino 35 da placa ESP32. Você verá que os relés agora estão ligados.
  2. Conecte os eletrodomésticos ao módulo de relé. Certifique-se de que suas conexões correspondam às conexões mostradas na figura da Etapa 2.

Agora, enquanto conectamos a parte de hardware do nosso sistema. Vamos desenvolver um aplicativo Android que será conectado ao banco de dados firebase. Faremos o banco de dados e o aplicativo Android na Parte 2 deste artigo.

Etapa 5: Introdução ao ESP32

Se você não trabalhou no Arduino IDE antes, não se preocupe porque um passo a passo para configurar o Arduino IDE é mostrado abaixo.

  1. Baixe a versão mais recente do Arduino IDE em Arduino.
  2. Conecte sua placa Arduino ao PC e abra o Painel de Controle. Clique em Hardware e som. Agora aberto Dispositivos e impressora e encontre a porta à qual sua placa está conectada. No meu caso é COM14 mas é diferente em computadores diferentes.

    Encontrar o porto

  3. Clique em Arquivo e em Preferências. Copie o seguinte link no URL do gerente da placa adicional. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Preferências

  4. Agora, para usar o ESP32 com o Arduino IDE, precisamos importar bibliotecas especiais que nos permitirão gravar código no ESP32 e usá-lo. essas duas bibliotecas estão anexadas no link fornecido a seguir. Para incluir a biblioteca, vá para Sketch> Incluir Biblioteca> Adicionar Biblioteca ZIP . Uma caixa aparecerá. Encontre a pasta ZIP em seu computador e clique em OK para incluir as pastas.

    Incluir Biblioteca

  5. Agora vá para Esboço> Incluir biblioteca> Gerenciar bibliotecas.

    Gerenciar Bibliotecas

  6. Um menu será aberto. Na barra de pesquisa, digite Arduino JSON. Uma lista aparecerá. Instalar Arduino JSON de Benoit Blanchon.

    Arduino JSON

  7. Agora clique no Ferramentas. Um menu suspenso aparecerá. Defina o tabuleiro para Módulo ESP Dev.

    Tabuleiro de Configuração

  8. Clique no menu Ferramentas novamente e defina a porta que você observou no painel de controle antes.

    Porta de configuração

  9. Agora faça o upload do código que está anexado no link abaixo e clique no botão de upload para gravar o código no microcontrolador ESP32.

    Envio

Portanto, agora, quando você enviar o código, pode ocorrer um erro. Este é o erro mais comum que pode ocorrer se você estiver usando uma nova versão do Arduino IDE e do Arduino JSON. A seguir estão os erros que você pode ver na tela.

No arquivo incluído em C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, de C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: erro: StaticJsonBuffer é uma classe de ArduinoJson 5. Consulte arduinojson.org/upgrade para saber como atualizar seu programa para ArduinoJson versão 6 StaticJsonBuffer jsonBuffer; ^ No arquivo incluído em C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, de C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: erro: StaticJsonBuffer é uma classe de ArduinoJson 5. Consulte arduinojson.org/upgrade para saber como atualizar seu programa para ArduinoJson versão 6 retorna StaticJsonBuffer (). ParseObject (_data); ^ Várias bibliotecas foram encontradas para 'WiFi.h' Usado: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Não usado: C:  Arquivos de programas ( x86)  Arduino  libraries  WiFi Usando a biblioteca WiFi na versão 1.0 na pasta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Usando a biblioteca IOXhop_FirebaseESP32-master na pasta: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legado) Usando a biblioteca HTTPClient na versão 1.2 na pasta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Usando a biblioteca WiFiClientSecure na versão 1.0 na pasta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Usando a biblioteca ArduinoJson em versão 6.12.0 na pasta: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson status de saída 1 Erro ao compilar para placa ESP32 Dev Module.

Não há nada com que se preocupar, pois podemos eliminar esses erros seguindo alguns passos simples. Esses erros estão surgindo porque a nova versão do Arduino JSON tem outra classe em vez de StaticJsonBuffer. Esta é a classe do JSON 5. Portanto, podemos simplesmente eliminar esse erro fazendo o downgrade da versão do Arduino JSON do nosso IDE Arduino. Simplesmente vá para Esboço> Incluir biblioteca> Gerenciar bibliotecas. Procurar por Arduino JSON de Benoit Blanchon que você instalou antes. Desinstale-o primeiro e, em seguida, defina sua versão para 5.13.5. Agora, como configuramos uma versão antiga do Arduino JSON, instale-o novamente e recompile o código. Desta vez, seu código será compilado com sucesso.

Para baixar o código, clique aqui.

Etapa 6: Compreendendo o Código

O código deste projeto é muito simples e bem comentado. Mesmo assim, o código é explicado resumidamente a seguir.

1. No início, as bibliotecas estão incluídas para que a placa ESP32 possa ser conectada à conexão WiFi local em casa ou no escritório. Depois disso, um link para o seu projeto Firebase e a autenticação do seu projeto Firebase são definidos. Em seguida, o nome e a senha de sua conexão wi-fi local são definidos para que o ESP32 possa ser conectado ao Wifi. Alguns pinos do ESP32 são definidos para serem conectados aos módulos de relé. e, por fim, é declarada uma variável que armazenará alguns dados temporários que virão da nuvem do firebase.

#include // incluir biblioteca para se conectar à conexão Wifi local #include // Incluir biblioteca para se conectar ao banco de dados do Firebase #define FIREBASE_HOST 'coma-patient.firebaseio.com' // incluir o link de seu projeto do firebase #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73mWdf9FEUdf810Wdf9FREB910Wdf810Wdf810FUEWdf810FWdf8Wdf8Wdf8Wdf8 '// Incluir a autenticação do seu projeto firebase #define WIFI_SSID' abcd '// o nome da conexão WiFi da sua casa ou escritório #define WIFI_PASSWORD' abcd '// senha da conexão WiFi da sua casa ou escritório int r1 = 34; // pino para conectar o relé 1 int r2 = 35; // pino para conectar o relé 2 int temp; // variabe para transportar dados

2 configuração vazia () é uma função na qual inicializamos os pinos INPUT ou OUTPUT. Esta função também define a taxa de transmissão usando Serial.begin () comando. A taxa de transmissão é a velocidade de comunicação do microcontrolador. Algumas linhas de código são adicionadas aqui para conectar o ESP32 à conexão wi-fi local. A placa tentará se conectar à conexão wi-fi local e imprimirá 'conexão'. no monitor serial. Ele imprimirá “Conectado” quando a conexão for estabelecida. Portanto, para monitorar isso, é melhor abrir o monitor serial e verificar seu status lá.

configuração vazia () {Serial.begin (115200); // definindo a taxa de baud // conectar ao wi-fi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('conectando'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); atraso (500); } Serial.println (); Serial.print ('conectado:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3 - void loop () é uma função que é executada repetidamente em um loop. Neste loop, escrevemos um código que informa à placa do microcontrolador quais tarefas realizar e como. Buscamos os dados contra leve e AC do banco de dados e armazenados nas duas variáveis ​​temporárias. Em seguida, quatro condições são aplicadas para alternar os dois aparelhos de acordo com 0 ou 1 buscado no banco de dados.

void loop () {// obter o valor temp1 = Serial.println (Firebase.getFloat ('light')); // obtenha o valor para a troca da luz temp2 = Serial.println (Firebase.getFloat ('AC')); // obtém o valor para a mudança de Fan delay (1000); if (temp1 == 1 && temp2 == 1) {// Para ligar a luz e o ventilador digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Para ligar o ventilador e desligar a luz digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Para desligar o ventilador e ligar a luz digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Para desligar o ventilador e desligar a luz digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Esta foi a parte um do “Como fazer um sistema doméstico inteligente usando ESP32?”. Você pode adicionar mais módulos de retransmissão se quiser controlar mais alguns eletrodomésticos. A única coisa que você precisa fazer é ler os dados do firebase e adicionar mais algumas condições para a troca. No próximo artigo, explicarei como desenvolver um aplicativo Android e um banco de dados Firebase. Explicarei o procedimento passo a passo para conectar o aplicativo Android ao firebase e enviar dados para ele.

Para ir para o próximo tutorial Clique aqui