Cerradura Inteligente WiFi con Arduino y ESP8266: Desbloqueo desde el Móvil
Componentes y materiales
| Componente | Cantidad |
|---|---|
| Arduino UNO R3 | 1 |
| Módulo WiFi ESP8266 (con antena PCB) | 1 |
| Transistor Darlington de alta potencia | 1 |
| Solenoide tipo cerradura | 1 |
Aplicaciones y servicios
- Arduino IDE – Para programar tanto el Arduino como el ESP8266.
Descripción del proyecto
En este tutorial aprenderás a crear una cerradura inteligente basada en Arduino que se desbloquea desde tu teléfono móvil. Al finalizar el proyecto:
- Sabrás generar un código QR personalizado.
- Crearás una página de login servida por el ESP8266.
- Podrás abrir una puerta usando tu smartphone.
Seguridad en puertas con cerradura inteligente
Hoy en día puedes mejorar la seguridad de tu hogar u oficina con tecnología de vanguardia. El uso de smartphones y dispositivos inteligentes se ha vuelto accesible para todos, permitiendo crear automatización doméstica más segura y cómoda. Seguramente has visto cerraduras con teclado o lector de huella; este proyecto propone una alternativa más sencilla: un código QR en la puerta que lleva a una página web donde usuarios autorizados introducen su contraseña.
Ventajas del sistema:
- Sin teclado físico ni elementos mecánicos complejos.
- Solo Arduino, driver para solenoide y ESP8266 para WiFi.
- Acceso mediante QR + contraseña en el móvil.
Esquema de conexiones
Código
Se necesitan dos programas: uno para el ESP8266 (página web + recepción contraseña → envío serie a Arduino) y otro para el Arduino (recepción serie → control solenoide). Ambos se suben desde Arduino IDE.
Configuración inicial del Arduino IDE
- Descarga desde arduino.cc e instala.
- Abre el IDE, limpia el editor y pega el código correspondiente.
- En Herramientas → Placa, selecciona tu Arduino.
- Conecta el Arduino por USB y selecciona el puerto COM en Herramientas → Puerto.
- Pulsa Subir (icono flecha).
Código para Arduino (control solenoide)
String inputString = ""; // Buffer para datos entrantes
bool stringComplete = false; // Flag: cadena completa recibida
void setup() {
Serial.begin(115200);
inputString.reserve(200);
pinMode(9, OUTPUT); // Pin control solenoide
}
void loop() {
if (stringComplete) {
if (inputString == "your_password") { // Cambia "your_password" por tu clave
digitalWrite(9, HIGH); // Activa solenoide
delay(300); // Mantiene 300 ms
digitalWrite(9, LOW); // Desactiva
Serial.println(inputString);
inputString = "";
stringComplete = false;
}
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n') {
stringComplete = true;
}
}
}
Preparar Arduino IDE para ESP8266
- Archivo → Preferencias → en "URLs adicionales de gestor de tarjetas" añade:
https://arduino.esp8266.com/stable/package_esp8266com_index.json - Herramientas → Placa → Gestor de tarjetas → busca "esp8266" → instala.
- En Herramientas → Placa selecciona Generic ESP8266 Module.
- Conecta el ESP8266 vía conversor USB-TTL, selecciona el puerto correcto.
Código para ESP8266 (servidor web + WiFi)
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
// Credenciales WiFi - CAMBIAR POR LAS TUYAS
const char* ssid = "YourSSID";
const char* password = "YourPASSWORD";
ESP8266WebServer server(80);
char htmlResponse[3000];
void handleRoot() {
snprintf(htmlResponse, 3000,
"<!DOCTYPE html>\n"
"<html lang=\"en\">\n"
"<head>\n"
"<style>\n"
"body {background-color: rgb(160, 0, 53);}\n"
"h3 {color: white; text-align:center;}\n"
"p {color: white; text-align:center;}\n"
"div {color: white; text-align:center;}\n"
"input {text-align:center;}\n"
"</style>\n"
"<meta charset=\"utf-8\">\n"
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n"
"</head>\n"
"<body>\n"
"<h3><center>Electropeak Smart Security Door</center></h3>\n"
"<p><center>Please type your ID</center></p>\n"
"<div>ID: <input type='text' name='pass_word' id='pass_word' align='center' size=10 autofocus></div>\n"
"<div><br><button id=\"save_button\">Log In</button></div>\n"
"<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js\"></script>\n"
"<script>\n"
"var pass;\n"
"$('#save_button').click(function(e){\n"
" e.preventDefault();\n"
" pass = $('#pass_word').val();\n"
" $.get('/save?pass=' + pass, function(data){\n"
" console.log(data);\n"
" });\n"
"});\n"
"</script>\n"
"</body>\n"
"</html>");
server.send(200, "text/html", htmlResponse);
}
void handleSave() {
if (server.arg("pass") != "") {
Serial.println(server.arg("pass")); // Envía contraseña al Arduino por serie
}
}
void setup() {
Serial.begin(115200);
delay(10);
// Conexión WiFi
Serial.println();
Serial.print("Conectando a ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi conectado");
Serial.print("Dirección IP: ");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.on("/save", handleSave);
server.begin();
Serial.println("Servidor HTTP iniciado");
}
void loop() {
server.handleClient();
}
Prueba y código QR
- Sube el código al ESP8266.
- Abre el Monitor Serie del Arduino IDE (115200 baudios) y anota la IP local que muestra (ej:
192.168.1.45). - Escribe esa IP en el navegador de tu móvil (conectado a la misma WiFi). Verás la página de login.
- Introduce la contraseña correcta ("your_password" en el código Arduino) → el solenoide se activará.
Generar código QR
Usa un generador online (ej: qr-code-generator.com), pega la IP y crea el QR. Imprímelo y pégalo junto a la puerta.
Para abrir: conéctate a la WiFi, escanea el QR, introduce tu ID.
Próximos pasos / Mejoras
- Diseñar una interfaz web más profesional.
- Añadir niveles de permiso o acceso basado en horarios.
- Implementar registro de accesos (log).
Puedes leer este y otros tutoriales en la web oficial de ElectroPeak.
Proceso de manufactura
- Por Dentro de las Cámaras Acorazadas Bancarias: Historia, Diseño y Futuro de la Seguridad
- Construye un Robot Raspberry Pi Controlado por Wi‑Fi con Python – Guía Paso a Paso
- Crea un Impresionante Sistema Ambilight para Monitor con Arduino
- Crea un Cerrojo RFID Seguro con Arduino – Guía Paso a Paso
- Persianas Inteligentes: Control Automático de Luz con Arduino y Energía Solar
- Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
- Monitor de Frecuencia Cardíaca IoT en Tiempo Real con Arduino y MAX30100
- Construye un tarro inteligente IoT con ESP8266, Arduino y sensor ultrasónico: Monitorización en tiempo real
- Servidor Web Arduino Uno WiFi: Controla un LED desde el Navegador
- Brazo Robótico Inteligente Controlado por Arduino: Tutorial DIY Fácil
- Cerradura Inteligente WiFi con Arduino y ESP8266: Desbloqueo desde el Móvil