Fechadura Inteligente Wi-Fi com Arduino e ESP8266 - Desbloqueio via Celular
Componentes e Materiais
| Arduino UNO R3 | 1 | |
| Módulo WiFi ESP8266 com Antena PCB (ElectroPeak) | 1 | |
| Transistor Darlington de Alta Potência | 1 | |
| Solenoide Tipo Fechadura | 1 |
Aplicativos e Serviços Online
- Arduino IDE - Para programar tanto o Arduino quanto o ESP8266
Sobre o Projeto
Você pode ler este e outros tutoriais incríveis no site oficial da ElectroPeak
Neste tutorial, você aprenderá como criar uma fechadura inteligente baseada em Arduino; esta fechadura tem a capacidade de ser desbloqueada pelo seu celular. Ao final deste projeto:
- Você aprenderá como gerar um QR code específico.
- Você aprenderá como criar uma página de login pelo ESP8266.
- Você será capaz de desbloquear uma porta usando seu celular.
Portas Seguras com Fechadura Inteligente
Hoje em dia, você pode melhorar a segurança da sua casa ou escritório usando tecnologia de ponta. O uso de smartphones e dispositivos inteligentes torna-se mais fácil e acessível para todas as pessoas, sendo uma boa opção para tornar nossas coisas mais inteligentes. A cada dia, engenheiros e técnicos produzem novos sistemas e ferramentas que permitem automação residencial mais inteligente e criam novas maneiras de tornar sua vida mais segura e fácil. Provavelmente você já viu fechaduras inteligentes para portas que têm teclado ou usam impressão digital para trancar ou destrancar a porta.
Neste projeto, queremos criar um sistema baseado em Arduino que ajude você a criar uma seção de login para uma porta por WiFi e fechadura solenoide. Não usamos teclado ou elementos mecânicos complicados, e essas são vantagens deste sistema. Apenas colamos um QR code na porta e as pessoas autorizadas podem escaneá-lo para ver a página de login e digitar sua senha. Após digitar a senha, a fechadura solenoide será ativada. Usamos apenas uma placa Arduino e um driver para o solenoide e um ESP8266 para fazer a conexão com o WiFi local. Vamos lá.
Circuito
Código
Primeiro, escrevemos um código para o ESP-01 criar uma página de login e receber a senha do usuário e depois enviá-la ao Arduino pela porta Serial. Depois, escrevemos outro código para o Arduino receber dados do ESP-01 e controlar o motor servo. Você pode usar a Arduino IDE para compilar ambos os códigos e carregá-los nas placas.
Você deve adicionar a biblioteca e depois carregar o código. Se é a primeira vez que executa uma placa Arduino, não se preocupe. Siga estes passos:
- Acesse www.arduino.cc/en/Main/Software e baixe o software do seu SO. Instale a IDE Arduino conforme instruído.
- Execute a Arduino IDE, limpe o editor de texto e copie o código a seguir no editor.
- Escolha a placa em Tools > Boards, selecione sua placa Arduino.
- Conecte o Arduino ao PC e defina a porta COM em Tools > Port.
- Pressione o botão Upload (seta).
- Pronto!
Código do Arduino
String inputString = ""; // String para armazenar dados recebidos
bool stringComplete = false; // Se a string está completa
void setup() {
Serial.begin(115200); // Inicializa serial
inputString.reserve(200); // Reserva 200 bytes
pinMode(9, OUTPUT); // Pino 9 como saída para o solenoide
}
void loop() {
// Imprime a string quando chega newline
if (stringComplete) {
if (inputString == "your_password") { // Substitua pela sua senha
digitalWrite(9, HIGH); // Ativa solenoide
delay(300); // Mantém ativo por 300ms
digitalWrite(9, LOW); // Desativa solenoide
Serial.println(inputString);
// Limpa a string
inputString = "";
stringComplete = false;
}
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read(); // Lê novo byte
inputString += inChar; // Adiciona à string
// Se caractere é newline, marca flag para loop principal processar
if (inChar == '\n') {
stringComplete = true;
}
}
}
Código do ESP8266 (ESP-01)
Agora, hora de carregar o código do ESP-01. Use a Arduino IDE para carregar o sketch no ESP. Antes de carregar, você deve selecionar a placa ESP na IDE.
- Vá em File > Preferences e adicione
https://arduino.esp8266.com/stable/package_esp8266com_index.jsonem Additional Boards Manager URLs. - Baixe e instale pelo Board Manager. Agora você verá as placas ESP em Tools > Board.
- Selecione "Generic ESP8266 Module" e copie o código em um novo sketch.
- Configure o conversor USB-TTL como hardware de upload. Conecte o conversor e defina a porta correta em Tools > Port.
- Pronto para Upload.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
// Rede WiFi
const char* ssid = "YourSSID";
const char* password = "YourPASSWORD";
ESP8266WebServer server(80);
char htmlResponse[3000];
void handleRoot() {
snprintf(htmlResponse, 3000,
"<!DOCTYPE html>\
<html lang=\"en\">\
<head>\
<style>\
body {background-color: rgb(160, 0, 53);}\
h3 {color: white;text-align:center;}\
p {color: white; text-align:center;}\
div {color: white; text-align:center;}\
ID {text-align:center;}\
input {text-align:center;}\
</style>\
<meta charset=\"utf-8\">\
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\
</head>\
<body>\
<h3><center>Electropeak Smart Security Door</center></h3>\
<p><center>Please type your ID</center></p>\
<div>ID: <input type='text' name='pass_word' id='pass_word' align='center' size=10 autofocus></div>\
<div>\
<br><button id=\"save_button\">Log In</button>\
</div>\
<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js\"></script>\
<script>\
var pass;\
$('#save_button').click(function(e){\
e.preventDefault();\
pass = $('#pass_word').val();\
$.get('/save?pass=' + pass, function(data){\
console.log(data);\
});\
});\
</script>\
</body>\
</html>");
server.send(200, "text/html", htmlResponse);
}
void handleSave() {
if (server.arg("pass") != "") {
Serial.println(server.arg("pass")); // Envia senha para Arduino via Serial
}
}
void setup() {
Serial.begin(115200);
delay(10);
// Conectando à rede WiFi
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.on("/save", handleSave);
server.begin();
Serial.println("HTTP server started");
}
void loop() {
server.handleClient();
}
Após carregar o código, abra o Serial Monitor da Arduino IDE e obtenha seu IP. Agora, se você digitar o IP na barra de URL do navegador, verá a interface do servidor web. Digite seu ID na caixa de texto e, se fizer corretamente, o Arduino ativará a fechadura. Note que você deve estar conectado ao mesmo roteador WiFi que o ESP8266.
Agora é hora de criar um QR code e tornar mais simples o acesso a esta página. Existem muitas ferramentas online para gerar um QR code específico. Sugerimos esta.
Basta copiar seu IP na barra e clicar em "Create QR Code".
Imprima e cole perto da porta. Para desbloquear, você deve conectar ao WiFi, escanear o QR code e digitar seu ID.
O Que Vem A Seguir?
Aqui estão algumas sugestões:
- Tente criar uma UI profissional para a página de login.
- Tente adicionar mais opções para usuários, como diferentes níveis de permissão ou permissão baseada em tempo.
Você pode ler este e outros tutoriais incríveis no site oficial da ElectroPeak
Processo de manufatura
- Dentro dos Cofres Bancários: História, Design e Futuro da Segurança
- Construa Robô Raspberry Pi Controlado por Wi-Fi com Python – Guia Passo a Passo
- Crie um Sistema Ambilight Impressionante para Monitor com Arduino
- Crie uma Fechadura RFID Segura com Arduino – Guia Passo a Passo
- Persianas Inteligentes: Controle Automático de Luz com Arduino e Energia Solar
- Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
- Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
- Construa um Pote Inteligente IoT com ESP8266, Arduino e Sensor Ultrassônico – Monitoramento em Tempo Real
- Servidor Web Arduino Uno WiFi: Controle LED via Navegador
- Fechadura Inteligente Wi-Fi com Arduino e ESP8266 - Desbloqueio via Celular