“L’instrument de mesure est dans le tiroir (verrouillé) de mon collègue, mais il est malade aujourd’hui – donc nous n’y avons pas accès ” ou “Je vous apporterai demain la clé de la deuxième pièce de votre location de vacances” sont deux phrases qui ont lancé le projet présenté ici. Dans notre quotidien, les clés simples, qu’il s’agisse d’une boîte aux lettres, d’un tiroir ou d’une porte de chambre, sont largement utilisées. Même à long terme, ces serrures ne seront pas remplacées par des systèmes de verrouillage électronique de haute qualité (que ce soit pour des raisons de coût ou d’effort). Mais que se passe-t-il si la clé n’est en fait pas disponible parce qu’un collègue est absent au travail ? Comment puis-je donner une surface supplémentaire à un vacancier en location si je suis moi-même en villégiature ?
Le projet
Une solution simple peut être réalisée en construisant une boîte à clés avec une capacité IdO. Ce système peut être alors utilisé par une personne via Internet, de sorte que, par exemple, les collègues puissent donner accès à un tiroir verrouillé via Internet, ou qu’un locataire de la maison de vacances puisse avoir accès à une autre pièce sur demande. La base est un boîtier dans lequel s’insèrent à la fois les clés et l’électronique. Dans le scénario présenté ici, une boîte de rangement a été utilisée. Dans cette boîte, on construit un système électronique basé sur le système D1 Mini avec interface W-LAN ESP8266 intégrée. Sur l’interface, une transmission innovante basée sur des matériaux intelligents (alliages à mémoire de forme) est utilisée comme ouvre-boîte. Enfin, la programmation d’une simple commande via Internet est expliquée.

Profil du projet
Convient pour : Utilisateurs avancés
Temps nécessaire : environ 2 heures
Coûts : environ €36
Ces matériaux du panier Reichelt sont nécessaires.
De plus, une boîte verrouillable, idéalement avec une charnière.
Préparations
Nous nous familiarisons d’abord brièvement avec les composants :
Ce petit microcontrôleur monocarte est très généreusement équipé pour sa taille : il possède 11 ports numériques (tous avec interruptions), une entrée analogique (max. 3,3 V) et un module W-LAN ESP8266 intégré. Le microcontrôleur D1 peut être connectée sur l’ordinateur avec un câble USB. Cela nécessite les pilotes appropriés et le logiciel Arduino IDE.
J’ai trouvé ici mes pilotes pour Windows 10, ainsi que pour MAC OSX :
https://github.com/himalayanelixir/Arduino_USB_Drivers
Vous pouvez obtenir gratuitement l’IDE Arduino ici :
Software Link : https://www.arduino.cc/en/main/software
Le microcontrôleur monocarte D1 peut être complétée avec toute une variété de circuit. Dans notre exemple, nous prenons soit un relais bouclier D1 approprié, soit un relais qui peut être commuté avec une tension de bobine de 3,3 V. Le relais est utilisé pour commuter les lecteurs qui ont un besoin différent ou plus élevé en courant que ce que les broches de sortie numérique du microcontrôleur D1 fournissent.
L’ouverture mécanique est réalisée par un actionneur à mémoire de forme (transmission en NiTinol). Le petit ONE-easy 5N peut découpler même des mécanismes un peu encombrants avec une force d’ouverture de plus de 500 g. Ainsi, une serrure fabriquée soi-même peut être déverrouillée. Le disque dur n’a que 6 mm d’épaisseur, laissant ainsi suffisamment d’espace pour les clés.

Les bases technologiques sur la méthode de travail que j’ai trouvé en allemand chez le fabricant :
La mise en œuvre
Le schéma suivant représente le circuit électronique :

Deux piles sont utilisées pour le système – une pile de 3,6 V pour l’électronique et donc aussi pour l’interface W-LAN, et une pile pour l’activation respective de l’actionneur de déverrouillage.
La tension de la batterie de 3,6 V est mesurée par le microcontrôleur D1 et transmise au propriétaire via Internet. Il est important de surveiller la tension d’alimentation, car l’électronique embarqué en est gourmand.
Selon la fiche technique du fabricant, la pile de 9 V fournit 600 mAh, ce qui suffit pour environ 200 déclenchements de l’actionneur. A l’avenir, il est possible d’ajouter un compteur, qui indique combien de fois la pile 9 V a déjà été utilisée.
Le relais peut être connecté au port numérique 1 du microcontrôleur D1. La carte de relais est conçue de manière à ce que le relais puisse être commandé via le port 1. Lorsque le relais est activé (c’est-à-dire CM avec NO), le circuit de la pile 9 V est fermé par le déclencheur. Le temps d’activation est important ici, car il détermine la course de l’actionneur. Dans l’exemple, un temps de 1500 ms est suffisant.
Si un bloc d’alimentation doit être branché, ou si vous souhaitez travailler uniquement avec la pile 9 V, un module spécial pour la tension d’alimentation du microcontrôleur D1 peut également être installé.
L’assemblage
Tout d’abord, trouvez un emplacement approprié pour le dispositif de déverrouillage dans la boîte à clés. Dans cet exemple, le loquet en plastique a été limé de manière à ne plus pouvoir s’engager dans le loquet via une cale. Au lieu de cela, un trou a été percé dans le vivaneau en plastique. Sur les intercalaires de la boîte de rangement, on a limé afin de faire de la place pour monter l’actionneur de déverrouillage. Il a été inséré de telle manière qu’il dépasse par le trou du piège à ressort à l’état hors tension. L’actionneur de déverrouillage doit également être réglé. Sur son côté de traction, il y avait à l’origine un fil M4, qui a été limé pour former une cale. Ainsi, lorsque le bouton-pression en plastique est mis en place, il pousse d’abord le curseur de verrouillage sur le côté (voir schéma). Lorsque l’orifice du clapet en plastique est à fleur de l’axe linéaire de l’actionneur de déverrouillage, le curseur revient à sa position initiale et le couvercle est relié au couvercle. Les composants électroniques sont soudés ensemble selon le schéma du circuit et montés dans les compartiments sur le côté.

Le logiciel
La description énumère le code avec les explications essentielles.
Pour mettre en œuvre le logiciel, le microcontrôleur D1 doit être installé dans l’IDE Arduino. Pour ce faire, ajoutez d’abord la ligne suivante dans les préférences de l’EDI Arduino sous “URLs supplémentaires de l’administrateur du forum” : http://arduino.esp8266.com/stable/package_esp8266com_index.json
Ensuite, vous pouvez aller dans Outils>Cartes>Gestionnaire de cartes avec le mot-clé ESP8266 pour installer automatiquement le paquet approprié pour les cartes compatibles ESP. Ensuite, le “LOLIN(WEMOS) D1 R2 & mini” est disponible dans la sélection du tableau à utiliser. Les paramètres suivants ont été utilisés pour l’exemple présenté ici :

Maintenant, le code de programme réel :
Il faut d’abord ajouter la bibliothèque ESP8266. En outre, le W-LAN à utiliser doit être défini et le mot de passe entré. Il en va de même pour le port utilisé (80 par défaut).
#include <ESP8266WiFi.h>
const char* ssid = "NAME W-LAN-NETZ";
const char* password = "IHR W-LAN-NETZ PASSWORT";
WiFiServer server(80);
IPAddress ip(10, 0, 0, 99);
IPAddress gateway(10, 0, 0, 1);
IPAddress subnet(255, 255, 255, 0);
int Mess = 0;
int Status = 0;
Vous pouvez également attribuer des adresses IP fixes (si elles sont libres) : Vous pouvez saisir ici les paramètres connus de la technologie des réseaux tels que l’IP, la passerelle et le sous-réseau. La variable Value est utilisée pour mesurer la tension d’alimentation de l’électronique. La variable Status est utilisée plus tard pour la programmation de la page web. Ensuite, les définitions suivantes sont mises en œuvre dans la configuration du vide () :
void setup() {
pinMode(D1, OUTPUT);
pinMode(A0, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(D1, LOW);
digitalWrite(LED_BUILTIN, LOW);
Serial.begin(9600);
delay(10);
Serial.print("Aufbau der Verbindung zu : ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status () != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(" ");
Serial.println("mit ");
Serial.print(ssid);
Serial.print(" verbunden");
server.begin();
Serial.println(" ");
Serial.println("Server gestartet");
Serial.println(" ");
Serial.print("Adresse: http://");
Serial.print(WiFi.localIP());
Serial.println("/");
for (int z=0; z<5; z++)
{
digitalWrite(LED_BUILTIN, LOW);
delay(300);
digitalWrite(LED_BUILTIN, HIGH);
delay(300);
}
}
D1 est défini à la sortie numérique et A0 à l’entrée analogique. La LED intégrée dans le microcontrôleur D1 est définie comme sortie. En même temps, les sorties numériques sont réglées sur LOW au début.
Pour le débogage via l’interface USB, nous activons l’interface série à 9600 Baud. Avec WiFi.begin, notre microocontrôleur D1 se connecte au réseau W-LAN et sort le statut via l’interface série (commandes WiFi.status). Une fois la connexion effectuée, nous démarrons le fonctionnement du serveur de notre microcontrôleur D1 avec server.begin(). Si tout s’est bien passé, nous avons laissé la LED intégrée clignoter sur la boucle.
La boucle de vide () est mise en œuvre comme suit :
void loop()
{
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(D1, LOW);
Status = 0;
WiFiClient client = server.available();
if (!client)
{
return;
}
Serial.println("Neuer Client verbunden");
while (!client.available())
{
delay(1);
}
delay(1);
String request = client.readStringUntil('r');
Serial.println(request);
client.flush();
if (request.indexOf("OFFNEN") != -1)
{
for (int z=0; z<3; z++)
{
digitalWrite(D1, HIGH);
digitalWrite(LED_BUILTIN, HIGH);
delay(250);
digitalWrite(LED_BUILTIN, LOW);
delay(250);
Status = 1;
}
}
if (request.indexOf("MESSUNG") !=-1)
{
digitalWrite(D1, LOW);
Status = 2;
Mess = analogRead(A0);
}
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println ("");
client.println ("<! DOCTYPE HTML>");
client.println ("<html>");
client.print("Schluesselbox");
client.println("<br><br><br>");
client.print("STATUS: ");
if (Status == 1)
{
client.print("OFFEN");
}
if (Status == 2)
{
client.print("Batteriemessung");
client.print("<br>");
client.print(Mess);
client.print(" 1024 = Voll");
}
else
{
client.print("GESCHLOSSEN");
}
client.println("<br>");
client.println ("<br><br><br>");
client.println ("<a href="/OFFNEN"> OEFFNEN DER SCHLUESSELBOX </a><br><br><br>");
client.println ("<a href="/MESSUNG"> SPANNUNG DER ELEKTRONIK MESSEN </a><br><br><br>");
client.println ("</html>");
delay(1);
Serial.println ("client disconnected");
Serial.println ("");
}
Dans la boucle vide du programme principal (), notre serveur vérifie maintenant si un client, c’est-à-dire un utilisateur, s’est connecté. Si tel est le cas, une information correspondante est envoyée via l’interface (“New client connected”). Ensuite, nous commençons la recherche de ce que le client souhaite en définissant une chaîne “request” comme entrée via Internet.
Dans les cas suivants, il est logique de savoir si des boucles sont effectuées :
Si la demande est “OPEN”, alors le port numérique 1 (donc le relais avec actionneur FG) et la LED intégrée sont activés. La variable “Statut” est fixée à 1. Pour rendre le tout un peu plus agréable, l’exécution en boucle for peut être effectuée 3 fois comme dans le code indiqué. Vous pouvez ensuite allumer l’actionneur pendant 1,5 s et laisser la LED clignoter rapidement pendant ce temps.
Si la requête “MEASUREMENT” est demandée, la valeur entière (entre 0 et 1023) est lue au port A0. La valeur actuelle de la charge de la batterie est ainsi stockée dans la variable “Value”.
La page Internet est maintenant programmée sur notre serveur. Pour l’essentiel, toutes les informations sont saisies via les commandes “Client.print”, similaire à la commande Serial.print. Celui qui maitrise encore le HTML est aidé dur à ce stade. Pour faire simple, vous devez faire ce qui suit :
Les définitions du HTML peuvent être adoptées ; elles sont universelles.
Ensuite, nous commençons avec la simple page HTML et nous écrivons “Key safe box” comme titre. Le caractère
correspond au saut de ligne dans le langage HTML.
Premièrement, nous laissons l’état de notre système nous être montré via l’Internet en utilisant deux clauses conditionnelles if différentes. Si les deux clauses ne s’appliquent pas, le statut = fermé est affiché.
Plus bas sur la page web, deux liens sont programmés. Avec “<a href=”, ils sont définis comme indiqué dans le code. Nous appelons un lien ’Open the key safe box’ et l’autre lien ‚Measure the voltage of the electronics‘. Le lien mène à la variable de chaînes Request, qui est interrogée au début de la boucle vide ().”>
Le test du système
Une fois que tout est programmé et assemblé, vous pouvez compiler et télécharger le logiciel via Arduino IDE avec l’interface USB connectée. Ensuite, vous pouvez observer le processus de connexion au réseau W-LAN dans le moniteur série. Si vous n’avez pas décidé d’attribuer une adresse IP fixe, le moniteur série l’affichera, si la connexion a réussi.
Ensuite, vous pouvez entrer l’adresse IP dans le navigateur. Une page web simple apparaît, où vous pouvez lire l’état de la boîte à clés et la tension de la batterie de 3,6 V. Ici, vous pouvez convertir et afficher la valeur entière en volts ou en pourcentage. Si vous cliquez sur le lien ‚Open the key safe box‘, le relais est activé pendant 1,5 s et notre actionneur de déverrouillage libère la connexion. Vous pouvez alors soulever le couvercle et atteindre les clés.
