Automação Residencial: Controle de Portas com ESP32

A automação residencialIntrodução à Automação Residencial com ESP32Introdução à Automação Residencial com ESP32Descubra como o ESP32 transforma sua casa em um lar inteligente com dicas práticas de configuração, programação e automação residencial. vem ganhando cada vez mais espaço nas casas brasileiras. Controlar portas e fechaduras eletrônicas à distância não é mais coisa de filme de ficção científica. Com o ESP32, um microcontrolador poderoso e acessível, é possível transformar portas convencionais em sistemas inteligentes e seguros. Neste artigo, vamos explorar como o ESP32 pode ser utilizado para criar um sistema de controle de portas e fechaduras eletrônicas, oferecendo comodidade e segurança para o seu lar.

Introdução ao ESP32 e Fechaduras Eletrônicas🔗

O ESP32 é um microcontrolador com conectividade Wi-Fi e Bluetooth integrada, ideal para projetos de Internet das Coisas (IoT). Sua versatilidade permite que seja utilizado em diversas aplicações, desde sensores de temperaturaIntrodução aos Sensores de Temperatura e Umidade com ESP32Introdução aos Sensores de Temperatura e Umidade com ESP32Descubra como integrar sensores de temperatura e umidade ao ESP32 em projetos IoT. Tutorial prático com dicas, conexões e código para soluções inteligentes. até sistemas complexos de automação.

As fechaduras eletrônicas substituem as fechaduras mecânicas tradicionais, permitindo o controle de acesso📞 Interfone IP com Vídeo Chamada📞 Interfone IP com Vídeo ChamadaDescubra como integrar interfone IP com vídeo chamada utilizando ESP32 para segurança residencial e corporativa, com streaming e criptografia avançada. por meios eletrônicos, como senhas, cartões RFID, smartphones ou comandos remotos. Integrar o ESP32 a essas fechaduras possibilita controlar o acesso de forma inteligente, registrar entradas e saídas e até mesmo receber notificações em tempo real.

Como Funcionam as Fechaduras Eletrônicas🔗

As fechaduras eletrônicas operam por meio de um mecanismo eletromagnético ou motorizado que controla o travamento e destravamento da porta. Existem diversos tipos de fechaduras eletrônicas:

  • Fechaduras Solenóides: Utilizam um eletroímã para acionar o mecanismo de travamento.
  • Fechaduras Motorizadas: Possuem um motor elétrico que gira o mecanismo de trava.
  • Fechaduras Magnéticas: Mantêm a porta fechada por força magnética constante, liberada ao cortar a alimentação.

Essas fechaduras podem ser controladas por meio de um sinal elétrico, geralmente tensão de 12V ou 24V. O papel do ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! é enviar esse sinal de controle de forma inteligente.

Componentes Necessários🔗

Para montar o sistema de controle de portas com ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!, você vai precisar de:

Montagem do Circuito🔗

A montagem envolve conectar o ESP32 ao módulo de relé que controlará a fechadura. O relé funciona como um interruptor, isolando o circuito de alta tensão da fechadura do microcontroladorCaracterísticas Técnicas e Funcionalidades do ESP32Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança.. A seguir, um passo a passo da montagem:

1. Conecte o Relé ao ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!:

2. Conecte a Fechadura ao ReléControle de LEDs e Relés através do Web Server do ESP32Controle de LEDs e Relés através do Web Server do ESP32Aprenda a controlar LEDs e relés usando um Web Server no ESP32. Este tutorial completo ensina montagem, configuração e programação para automação IoT.:

3. Conexão do Botão ou SensorProgramando o ESP32 para Integração de SensoresProgramando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. (Opcional):

Atenção: Certifique-se de que todas as conexões estão corretas e que a alimentação está desconectada durante a montagem para evitar curto-circuitos ou danos aos componentes📜 Quadro Digital com Tela E-Ink de 32 Polegadas📜 Quadro Digital com Tela E-Ink de 32 PolegadasDescubra como combinar eficiência energética, tecnologia E-Ink e ESP32 para criar quadros digitais, dashboards interativos e arte generativa com soluções IoT..

Programando o ESP32🔗

Com o hardware montado, é hora de programar o ESP32 para controlar a fechadura. Utilizaremos a IDE do ArduinoInstalando o Arduino IDE para ESP32 no WindowsInstalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT., que oferece uma interface amigável para programação.

Configurando a IDE do Arduino para o ESP32

Antes de começar, certifique-se de que a IDE do ArduinoInstalando o Arduino IDE para ESP32 no WindowsInstalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT. está configurada para programar o ESP32:

1. Abra a IDE do ArduinoInstalando o Arduino IDE para ESP32 no WindowsInstalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT..

2. Vá em Arquivo -> Preferências.

3. No campo URLs Adicionais para Gerenciadores de PlacasInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns., adicione:

https://dl.espressif.com/dl/package_esp32_index.json

4. Clique em OK.

5. Vá em Ferramentas -> Placa -> Gerenciador de PlacasInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns..

6. Procure por ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e instale o pacote esp32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! by Espressif Systems.

Código de Controle da Fechadura

Vamos desenvolver um código simples que permite abrir e fechar a fechadura através de comandos Wi-Fi. O ESP32 atuará como um servidor webIntrodução ao Desenvolvimento de um Web Server com ESP32Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência., onde poderemos enviar comandos por meio de um navegador ou aplicativo.

Bibliotecas Necessárias

Para este projeto, utilizaremos as seguintes bibliotecasHospedando Múltiplas Páginas Web no ESP32Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP.:

Importando Bibliotecas

Antes de tudo, importe as bibliotecasHospedando Múltiplas Páginas Web no ESP32Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP. no início do código:

#include <WiFi.h>
#include <ESPAsyncWebServer.h>

Variáveis Globais e Definições

Defina as credenciais da rede Wi-FiConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade. e o pino conectado ao relé:

const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
#define RELAY_PIN 23

Configuração Inicial

No setup(), configuramos o pino do relé como saída e iniciamos a conexão Wi-FiConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização.:

void setup()
{
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW); // Fechadura inicial fechada
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.println("Conectando ao Wi-Fi...");
  }
  Serial.println("Conectado ao Wi-Fi");
  Serial.print("Endereço IP: ");
  Serial.println(WiFi.localIP());
  // Configuração do servidor web será adicionada aqui
}

Criando o Servidor Web

Instancie o servidor webIntrodução ao Desenvolvimento de um Web Server com ESP32Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência. e defina as rotas para abrir e fechar a fechadura:

AsyncWebServer server(80);
void setup()
{
  // ... configuração anterior
  server.on("/abrir", HTTP_GET, [](AsyncWebServerRequest *request)
  {
    digitalWrite(RELAY_PIN, HIGH); // Aciona o relé
    request->send(200, "text/plain", "Fechadura Aberta");
    Serial.println("Fechadura Aberta");
  });
  server.on("/fechar", HTTP_GET, [](AsyncWebServerRequest *request)
  {
    digitalWrite(RELAY_PIN, LOW); // Desativa o relé
    request->send(200, "text/plain", "Fechadura Fechada");
    Serial.println("Fechadura Fechada");
  });
  server.begin();
}

Loop Principal

No loop(), não há necessidade de adicionar código, pois o servidor webIntrodução ao Desenvolvimento de um Web Server com ESP32Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência. lida com as requisições de forma assíncrona:

void loop()
{
  // Não é necessário código aqui
}

Código Completo

Juntando todas as partes, o códigoDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! completo fica:

#include <WiFi.h>
#include <ESPAsyncWebServer.h>
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
#define RELAY_PIN 23
AsyncWebServer server(80);
void setup()
{
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.println("Conectando ao Wi-Fi...");
  }
  Serial.println("Conectado ao Wi-Fi");
  Serial.print("Endereço IP: ");
  Serial.println(WiFi.localIP());
  server.on("/abrir", HTTP_GET, [](AsyncWebServerRequest *request)
  {
    digitalWrite(RELAY_PIN, HIGH);
    request->send(200, "text/plain", "Fechadura Aberta");
    Serial.println("Fechadura Aberta");
  });
  server.on("/fechar", HTTP_GET, [](AsyncWebServerRequest *request)
  {
    digitalWrite(RELAY_PIN, LOW);
    request->send(200, "text/plain", "Fechadura Fechada");
    Serial.println("Fechadura Fechada");
  });
  server.begin();
}
void loop()
{
  // Sem código necessário aqui
}

Observação: Certifique-se de substituir "SEU_SSID" e "SUA_SENHA" pelas credenciais da sua rede Wi-FiConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade..

Testando o Sistema🔗

Após carregar o código no ESP32, abra o monitor serialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. para verificar o endereço IP atribuído. Com o ESP32 conectado à mesma rede que seu dispositivo (computador ou smartphone), abra um navegador e digite:

  • Para abrir a fechadura:
http://ENDERECO_IP/abrir
  • Para fechar a fechadura:
http://ENDERECO_IP/fechar

Substitua ENDERECO_IP pelo endereço IP exibido no monitor serialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização..

Ao acessar essas URLs, o ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! enviará um sinal ao relé, acionando ou desativando a fechadura eletrônica.

Implementando Segurança🔗

Controlar uma fechadura via Wi-Fi pode apresentar riscos se não houver medidas de segurança🌀 Escultura Cinética Controlada por Voz🌀 Escultura Cinética Controlada por VozDescubra como integrar hardware, TensorFlow Lite e controle de motores para criar uma escultura cinética interativa e cheia de inovações tecnológicas. adequadas. Algumas sugestões para tornar o sistema mais seguro:

Exemplo de Autenticação Simples

Podemos adicionar uma camada de autenticação básicaAutenticação Simples no Web Server do ESP32Autenticação Simples no Web Server do ESP32Aprenda a proteger seu servidor ESP32 com autenticação básica e controle de acesso. Passo a passo prático com dicas de segurança para IoT. ao servidor web:

const char* username = "usuario";
const char* userPassword = "senha";
void setup()
{
  // ... configuração anterior
  server.on("/abrir", HTTP_GET, [](AsyncWebServerRequest *request)
  {
    if (!request->authenticate(username, userPassword))
    {
      return request->requestAuthentication();
    }
    digitalWrite(RELAY_PIN, HIGH);
    request->send(200, "text/plain", "Fechadura Aberta");
    Serial.println("Fechadura Aberta");
  });
  server.on("/fechar", HTTP_GET, [](AsyncWebServerRequest *request)
  {
    if (!request->authenticate(username, userPassword))
    {
      return request->requestAuthentication();
    }
    digitalWrite(RELAY_PIN, LOW);
    request->send(200, "text/plain", "Fechadura Fechada");
    Serial.println("Fechadura Fechada");
  });
  server.begin();
}

Agora, ao acessar as rotas, será solicitada autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. com nome de usuário e senha.

Expansões e Melhorias🔗

O sistema básico pode ser expandido para incluir funcionalidades adicionais:

Integrando com Sensor RFID

Uma forma de aumentar a segurançaSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. é usar um leitor RFID para permitir o acesso apenas a pessoas autorizadas. Podemos conectar um módulo RFID RC522 ao ESP32 e programá-lo para abrir a fechadura apenas quando um cartão ou tag autorizada for apresentada.

Componentes Adicionais

Conexão do Módulo RFID ao ESP32

Conecte os pinos do módulo RFID aos pinos correspondentes do ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!:

Código para Leitura do RFID

Primeiro, precisamos adicionar a biblioteca para o RC522. Instale a biblioteca MFRC522 pela IDE do ArduinoInstalando o Arduino IDE para ESP32 no WindowsInstalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT..

Adicione as seguintes declarações:

#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 21
#define RST_PIN 22
MFRC522 mfrc522(SS_PIN, RST_PIN);

No setup(), inicialize o SPI e o módulo RFID📊 Sistema de Votação em Tempo Real📊 Sistema de Votação em Tempo RealDescubra como implementar um sistema de votação robusto, seguro e escalável com ESP32, RFID, WebSocket e criptografia avançada.:

void setup()
{
  // ... configuração anterior
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println("Aproxime o cartão ou tag RFID");
}

No loop(), adicione o códigoDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! para ler o cartão e verificar se é autorizado:

void loop()
{
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  String uidString = "";
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    uidString += String(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.print("UID do cartão:");
  Serial.println(uidString);
  if (uidString == "seu_uid_autorizado")
  {
    digitalWrite(RELAY_PIN, HIGH);
    Serial.println("Acesso Permitido");
    delay(5000); // Mantém a fechadura aberta por 5 segundos
    digitalWrite(RELAY_PIN, LOW);
  }
  else
  {
    Serial.println("Acesso Negado");
  }
  mfrc522.PICC_HaltA();
}

Substitua "seu_uid_autorizado" pelo UID do cartão ou tag que você deseja autorizar. Você pode descobrir o UID inicializando o monitor serialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. e aproximando o cartão; o UID será exibido.

Considerações Finais🔗

Controlar portas e fechaduras eletrônicas com o ESP32 abre um leque de possibilidades para melhorar a segurançaSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. e a conveniência em residências e empresas. Com o conhecimento adquirido neste artigo, você pode iniciar projetos personalizados, adaptando as funcionalidades às suas necessidades específicas.

Lembre-se sempre de considerar aspectos de segurança, principalmente quando se trata de acesso físico a ambientes. Invista tempo em implementar autenticações robustas e em manter seu sistema atualizado contra possíveis vulnerabilidadesSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados..

Próximos Passos🔗

Com criatividade e empenho, o céu é o limite para o que você pode criar com o ESP32 e a automação residencialIntrodução à Automação Residencial com ESP32Introdução à Automação Residencial com ESP32Descubra como o ESP32 transforma sua casa em um lar inteligente com dicas práticas de configuração, programação e automação residencial.!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados