Serrure connectée WiFi avec Arduino et ESP8266 – Déverrouillage par smartphone
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino UNO R3 | 1 |
| Module ESP8266 (ESP-01) avec antenne PCB | 1 |
| Transistor Darlington haute puissance | 1 |
| Serrure à solénoïde (lock-style) | 1 |
Applications et services en ligne
- Arduino IDE
À propos du projet
Ce tutoriel et d'autres projets sont disponibles sur le site officiel d'ElectroPeak.
Vous apprendrez à créer une serrure intelligente pilotée par Arduino, déverrouillable depuis votre téléphone portable. À la fin :
- Génération d'un QR code spécifique.
- Création d'une page de connexion hébergée par l'ESP8266.
- Déverrouillage d'une porte via smartphone.
Sécuriser les portes avec une serrure intelligente
La domotique moderne permet d'améliorer la sécurité domicile/bureau à moindre coût. Ce projet utilise une approche sans clavier ni mécanique complexe : un QR code collé sur la porte dirige les utilisateurs autorisés vers une page web locale où ils saisissent leur mot de passe. Si le code est correct, le solénoïde actionne la serrure.

Schéma de câblage

Code
Deux programmes sont nécessaires :
- ESP8266 : Héberge un serveur web (page de login) et transmet le mot de passe saisi à l'Arduino via le port série.
- Arduino : Reçoit le mot de passe et active le solénoïde si celui-ci correspond.
Utilisez l'Arduino IDE pour compiler et téléverser les deux codes. Pour l'ESP8266, ajoutez l'URL du gestionnaire de cartes : https://arduino.esp8266.com/stable/package_esp8266com_index.json dans Fichier > Préférences, puis installez le paquet « Generic ESP8266 Module » via Outils > Board > Board Manager.
Code Arduino (récepteur)
String inputString = "";
bool stringComplete = false;
void setup() {
Serial.begin(115200);
inputString.reserve(200);
pinMode(9, OUTPUT);
}
void loop() {
if (stringComplete) {
if (inputString == "votre_mot_de_passe") {
digitalWrite(9, HIGH);
delay(300);
digitalWrite(9, LOW);
}
inputString = "";
stringComplete = false;
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n') stringComplete = true;
}
}
Code ESP8266 (serveur web)
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "VotreSSID";
const char* password = "VotreMOTDEPASSE";
ESP8266WebServer server(80);
char htmlResponse[3000];
void handleRoot() {
snprintf(htmlResponse, 3000,
"<!DOCTYPE html><html><head>"
"<style>body{background-color:rgb(160,0,53);}h3,p,div{color:white;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>Electropeak Smart Security Door</h3>"
"<p>Veuillez saisir votre ID</p>"
"<div>ID: <input type='text' name='pass_word' id='pass_word' size=10 autofocus></div>"
"<div><br><button id='save_button'>Se connecter</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); });"
"</script>"
"</body></html>");
server.send(200, "text/html", htmlResponse);
}
void handleSave() {
if (server.arg("pass") != "") {
Serial.println(server.arg("pass"));
}
}
void setup() {
Serial.begin(115200);
delay(10);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
Serial.println("\nWiFi connecté");
Serial.println("Adresse IP : ");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.on("/save", handleSave);
server.begin();
Serial.println("Serveur HTTP démarré");
}
void loop() {
server.handleClient();
}
Après téléversement, ouvrez le moniteur série pour obtenir l'adresse IP de l'ESP8266. Saisissez-la dans un navigateur pour accéder à la page de login. Entrez le bon mot de passe pour déclencher le solénoïde.

Générer le QR code
Utilisez un générateur en ligne (ex: qr-code-generator.com), collez l'IP locale (ex: https://192.168.1.42) et générez le QR code. Imprimez-le et collez-le près de la porte.

Pour déverrouiller : connectez-vous au même WiFi, scannez le QR code, saisissez le mot de passe.

Prochaines étapes
- Améliorer l'interface utilisateur (UI) de la page de login.
- Ajouter des niveaux de permission ou des accès basés sur le temps.
Retrouvez ce tutoriel et d'autres sur le site ElectroPeak.
Processus de fabrication
- À l'intérieur des coffres-forts bancaires : histoire, conception et avenir de la sécurité
- Construire un robot Raspberry Pi piloté Wi-Fi avec Python – Guide pas à pas
- Créer un système Ambilight spectaculaire pour moniteur avec Arduino
- Créer un verrou RFID sécurisé avec Arduino – Guide étape par étape
- Stores intelligents : contrôle automatisé de la lumière avec Arduino et énergie solaire
- Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
- Moniteur de Fréquence Cardiaque IoT en Temps Réel avec Arduino et MAX30100
- Bocal Intelligent IoT avec ESP8266, Arduino et Capteur Ultrasonique – Surveillance Temps Réel
- Serrure connectée WiFi avec Arduino et ESP8266 – Déverrouillage par smartphone