Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Porte intelligente avec déverrouillage facial

Composants et fournitures

Module WiFi Bolt IoT Bolt
× 1
Arduino UNO
× 1
Sonnerie
× 1
Planche à pain sans soudure pleine grandeur
× 1
Interrupteur à bouton-poussoir SparkFun 12mm
× 2
LED 5 mm :Rouge
× 1
LED 5 mm :Vert
× 1
Résistance 10k ohm
× 2
Résistance 330 ohm
× 2
Câbles de raccordement (générique)
× 1

Outils et machines nécessaires

Pistolet à colle chaude (générique)

Applications et services en ligne

Bolt IoT Bolt Cloud
Microsoft Windows 10
Microsoft Visual Studio
Arduino IDE
Face++

À propos de ce projet

Bienvenue, copain curieux ! Nous vivons à une époque révolutionnée par Internet où il est maintenant plus facile que jamais d'expérimenter et d'innover nous-mêmes pour proposer des idées brillantes qui peuvent avoir un impact positif sur des millions de personnes dans le monde.

Vous avez toujours voulu ajouter un peu de sécurité supplémentaire à votre étagère, tiroirs, armoires ou portes à la maison ? En matière d'innovation utilisant Internet, parmi les milliers de plates-formes et d'outils à notre disposition, un couple qui se démarque sont Arduino et Bolt IoT . Dans ce projet, nous allons modifier une étagère standard pour avoir un système de sécurité qui se déverrouille à l'aide de la Vérification faciale. Nous allons créer une application Windows Forms en C# qui peut stocker, vérifier et déverrouiller les visages de confiance. Il utilise l'API FacePlusPlus pour la vérification faciale et l'API Cloud IoT Bolt pour communiquer avec le module WiFi Bolt et Arduino. Nous allons interfacer le module WiFi Bolt avec un Arduino Uno , qui contrôlera un servomoteur pour verrouiller/déverrouiller la porte.

Excité? Commençons.

Contexte

J'ai réalisé ce projet dans le cadre de l'Innovate Challenge and IoT Training, animé par Internshala Trainings. Leur formation a aidé à comprendre les bases de la gestion des services API, de la programmation orientée objet et, surtout, de l'utilisation du module WiFi Bolt. Un synopsis du projet Capstone réalisé dans le cadre de cette formation peut être trouvé ici. Beaucoup de ces concepts se sont avérés utiles au cours du développement de ce projet. Alors un grand bravo à l'équipe Internshala pour avoir rendu cela possible.

Étape 1 : Construire le logiciel

Nous allons créer une application Windows Forms à l'aide de Visual Studio. Cette application fonctionne sur une machine Windows et sera responsable de la gestion des visages autorisés, de la vérification d'un visage à l'aide de l'API FacePlusPlus et de la communication avec le module WiFi Bolt. Nous utiliserons C# pour coder.

Lancez Visual Studio et créez un nouveau projet d'application Windows Forms. Si vous êtes complètement nouveau dans Visual Studio, je vous recommande d'apprendre les bases du développement d'applications Windows Forms à l'aide de Visual Studio. Ceci et ceci sont de bonnes ressources pour commencer.

Dans ce didacticiel, je n'expliquerai que le code à l'aide d'extraits du projet qui effectuent des fonctions principales et importantes. Il sera fastidieux et inutile de parcourir tout le code car la plupart sont explicites et bien documentés.

Notre projet Visual Studio utilise 3 bibliothèques à des fins diverses. Ce sont :

  • Aforge .NET :Un framework .NET populaire utilisé pour le traitement d'images sous Windows. Nous l'utilisons pour capturer des images à partir d'une webcam.
  • API Bolt IoT .NET :Une bibliothèque cliente non officielle que j'ai écrite en C#, pour communiquer l'API Bolt Cloud.
  • Newtonsoft JSON :Un framework JSON hautes performances populaire pour .NET. Utilisé pour analyser les réponses de l'API dans notre projet.

REMARQUE :Pour plus de clarté sur les utilisations des différentes méthodes dans les API ci-dessus, veuillez vous référer à leurs documentations respectives ici, ici et ici.

Mise en route

Avant de se lancer dans le codage, nous devons configurer quelques éléments.

1. Informations d'identification de l'API Bolt Cloud

Si vous ne l'avez pas déjà fait, rendez-vous sur cloud.boltiot.com et créez un compte. Une fois connecté, associez votre module WiFi au Bolt Cloud. Pour cela, téléchargez l'application Bolt IoT Setup sur votre téléphone mobile. Suivez les instructions données dans l'application pour lier votre appareil à votre compte. Cela implique de coupler le Bolt avec le réseau WiFi local. Une fois lié avec succès, votre tableau de bord affichera votre appareil. Vous pouvez maintenant obtenir votre ID d'appareil et et Clé API depuis le tableau de bord.

2. Informations d'identification de l'API FacePlusPlus

Un autre service API sur lequel nous comptons dans ce projet est l'API FacePlusPlus . C'est une plate-forme gratuite qui propose différents types de services de reconnaissance d'images. Nous l'utilisons pour l'identification faciale. Créez un compte et accédez à la console FacePlusPlus. Accédez à la Clé API sous Applications et cliquez sur +Obtenir la clé API . Notez la nouvelle clé API générée et Secret API .

Vous devriez maintenant avoir les éléments suivants prêts :

chaîne privée en lecture seule BOLT_DEVICE_ID ="BOLTXXXXXX";chaîne privée en lecture seule BOLT_API_KEY ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ; chaîne privée en lecture seule FPP_API_KEY ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ; chaîne privée en lecture seule FPP_API_SECRET ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ; 

Nous créons une nouvelle instance globale de la classe Bolt appelée myBolt , à travers lequel nous ferons toutes les communications futures avec le module WiFi :

myBolt =new Bolt(BOLT_API_KEY, BOLT_DEVICE_ID); 

Cela dit, voyons maintenant comment notre application exécute certaines des fonctions principales.

1. Verrouiller/Déverrouiller la porte

Nous avons conçu le circuit de telle sorte que lorsque la broche numérique 0 est HIGH , la porte est censée être verrouillée et lorsque la broche numérique 3 est HIGH , la porte est censée être déverrouillée. Cela sera plus clair plus tard lorsque nous discuterons des schémas de circuit.

Pour le verrouillage, nous utilisons le DigitalMultiWrite méthode de la bibliothèque pour écrire HIGH valeur à D0 et valeur LOW à D3. Cela signalera à l'Arduino de verrouiller la porte. De même pour le déverrouillage, nous écrirons LOW valeur à D0 et HIGH valeur à D3. Cela signalera à l'Arduino de déverrouiller la porte. Nous discuterons du code Arduino et de la conception de circuits plus tard dans ce didacticiel.

Code qui effectue le verrouillage :

Tâche asynchrone privée LockDoor(){ MultiPinConfig multiPinConfig =new MultiPinConfig(); MultiPinConfig.AddPinState(DigitalPins.D0, DigitalStates.High); //Verrouiller le signal multiPinConfig.AddPinState(DigitalPins.D3, DigitalStates.Low); //Unlock Signal wait myBolt.DigitalMultiWrite(multiPinConfig); multiPinConfig =nouveau MultiPinConfig(); multiPinConfig.AddPinState(DigitalPins.D0, DigitalStates.Low); //Verrouiller le signal multiPinConfig.AddPinState(DigitalPins.D3, DigitalStates.Low); //Unlock Signal wait myBolt.DigitalMultiWrite(multiPinConfig);} 

Code qui effectue le déverrouillage :

Tâche asynchrone privée UnlockDoor(){ MultiPinConfig multiPinConfig =new MultiPinConfig(); multiPinConfig.AddPinState(DigitalPins.D0, DigitalStates.Low); //Verrouiller le signal multiPinConfig.AddPinState(DigitalPins.D3, DigitalStates.High); //Unlock Signal wait myBolt.DigitalMultiWrite(multiPinConfig); multiPinConfig =nouveau MultiPinConfig(); multiPinConfig.AddPinState(DigitalPins.D0, DigitalStates.Low); //Verrouiller le signal multiPinConfig.AddPinState(DigitalPins.D3, DigitalStates.Low); //Unlock Signal wait myBolt.DigitalMultiWrite(multiPinConfig);} 

2. Ajouter/supprimer des visages de confiance

Les données d'image du visage de confiance sont codées dans une chaîne Base64 et sont stockées localement dans la machine. Une liste des noms correspondants de chaque visage est également stockée. Dans notre programme, pour ajouter un visage, nous vérifions d'abord s'il y a un visage disponible dans le cadre courant. Nous le faisons en utilisant l'API Detect de FacePlusPlus. Il renvoie une réponse JSON qui contiendra les caractéristiques du visage détecté. Si aucun visage n'est détecté, la réponse sera simplement [] . Une fois qu'un visage est détecté, nous enregistrons la chaîne encodée en base64 de l'image et le nom correspondant. Voici une vidéo de démonstration sur l'ajout d'un visage de confiance.

Supprimer un visage est assez simple. Appuyez sur le bouton Supprimer pour supprimer les données d'image et le nom de la liste enregistrée.

Code qui ajoute et enregistre les informations du visage :

//Conversion de l'image en chaîne base64 et ajout à la liste. ImageDataList.Add(ImageToBase64((Image)PreviewBox.Image.Clone()));//Ajout du nom du visage à la listNameList.Add(FaceNameTextBox.Text.Trim()); // Enregistre les données de l'image du visage sous forme de chaîne codée de base, avec son nomProperties.Settings.Default.Base64ImageData =ImageDataList;Properties.Settings.Default.FaceNames =NameList;Properties.Settings.Default.Save(); 

Code qui supprime une information de visage :

//Suppression des informations de visage à la position spécifiée dans la listeNomList.RemoveAt(e.RowIndex);ImageDataList.RemoveAt(e.RowIndex); //Enregistrement de la liste après suppression d'un faceProperties.Settings.Default.FaceNames =NameList;Properties.Settings.Default.Base64ImageData =ImageDataList;Properties.Settings.Default.Save(); 

Consultez le code dans le projet ci-joint où le processus est expliqué sous forme de commentaires dans chaque ligne pour avoir une idée claire.

3. Vérification du visage

Nous vérifions si un visage est approuvé ou non en utilisant l'API de comparaison dans FacePlusPlus. Au cours de ce processus, nous parcourons linéairement chaque visage de la liste enregistrée et le comparons à l'image capturée. Si l'API renvoie une confiance de plus de 80 %, nous ouvrirons la porte.

Le code qui effectue cette comparaison ressemble à ceci :

client WebClient =new WebClient(); byte[] réponse =client.UploadValues("https://api-us.faceplusplus.com/facepp/v3/compare", new NameValueCollection(){ { "api_key", FPP_API_KEY }, { "api_secret", FPP_API_SECRET }, { "image_base64_1", face1Base64}, { "image_base64_2", face2Base64} });}); string confidence =JObject.Parse(System.Text.Encoding.UTF8.GetString(response))["confidence"].ToString(); 

WebClient.UploadValues La méthode envoie la demande à l'API FacePlusPlus avec les données faciales encodées en base64 de deux visages à comparer et nos informations d'identification API. La réponse est analysée à l'aide de Newtonsoft JSON bibliothèque et confiance la valeur est obtenue. Lisez la documentation de l'API Comparer pour bien comprendre les arguments.

4. Le fil d'écoute de Bell

Nous prévoyons de fournir un bouton-poussoir physique, quelque chose comme un bouton de sonnerie d'appel, afin que l'utilisateur puisse appuyer tout en regardant la caméra pour déverrouiller la porte. Pour rendre cela possible, nous devons créer un nouveau fil de discussion dédié qui écoute en permanence l'événement d'appui sur le bouton de la cloche.

Plus loin dans ce didacticiel, nous verrons comment le bouton-poussoir est utilisé et comment il rendra la broche D4 du module WiFi Bolt HIGH lorsque le bouton est enfoncé. Pour l'instant, nous allons simplement supposer ce qui précède. Donc, dans ce fil, nous DigitalRead en continu la valeur de la broche D4. Si c'est ÉLEVÉ , nous prendrons cela comme un événement de sonnerie et procéderons à la capture et à la vérification du visage.

Voici le code qui s'exécutera en continu sur le fil d'écoute de la cloche :

while (ListenForBell){ Response R =wait myBolt.DigitalRead(DigitalPins.D4) ; if (R.Value =="1") { RingBell_Click(null, null); Thread.Sommeil(2000); } Thread.Sleep(2000);} 

Nous nous arrêtons et attendons 2 secondes entre chaque itération. Sinon, il épuisera rapidement le quota d'utilisation de l'API Bolt Cloud.

Étape 2 :Construire le projet Visual Studio

Télécharger l'intégralité du projet ici . Ouvrez le Facebolt Doorlock.sln fichier dans Visual Studio. Une fois la solution chargée, ouvrez Form1.cs fichier et mettez à jour le code avec vos informations d'identification API. Appuyez sur le bouton de lecture vert nommé « Démarrer » pour créer et exécuter le programme.

Le programme vous permet de sélectionner parmi les appareils photo connectés au système et de voir un flux en direct de la caméra. Vous pouvez ajouter/supprimer un visage de confiance. Commencez la surveillance du visage. Une fois que le programme a vérifié la connectivité de votre Bolt Device, vous pouvez sonner ou verrouiller la porte directement depuis le programme.

Ce n'est pas grave si vous êtes maintenant confus sur le fonctionnement de la vérification faciale, du verrouillage et du déverrouillage dans le programme. Cela deviendra plus clair une fois que nous verrons la conception schématique du circuit et le code Arduino. Je vais également décomposer le flux des événements de chaque opération à la fin.

Étape 3 :Conception de circuits et code Arduino

Dans notre circuit, nous avons l'intention de mettre en œuvre les fonctionnalités suivantes :

  • Indication LED rouge et verte pour les états de porte verrouillée et déverrouillée, respectivement.
  • Un bouton-poussoir agissant comme un commutateur de sonnerie d'appel. Lorsque vous appuyez dessus, notre application WinForms doit vérifier le visage et ouvrir la porte une fois l'authentification du visage réussie.
  • Un autre bouton poussoir pour verrouiller la porte.
  • Un buzzer qui émet un bip en cas de sonnerie et de verrouillage de porte.

La connexion du circuit de notre projet est illustrée ci-dessous :

Si vous ne l'avez pas déjà fait, téléchargez l'IDE Arduino à partir d'ici et connectez votre Arduino au système. Assurez-vous d'avoir défini le bon modèle Arduino et le bon port dans les paramètres IDE avant de télécharger le code.

Code Arduino :

#include  #define ServoPin 4#define LockSignalPin 2#define UnLockSignalPin 3#define BellButtonPin 5#define LockButtonPin 8#define RingBellSignalPin 6#define BuzzerPin 7#define GreenLedPin 9#define RedLin monServo ; void setup() { pinMode(LockSignalPin, INPUT); pinMode(UnLockSignalPin, INPUT); pinMode(BellButtonPin, INPUT); pinMode(LockButtonPin, INPUT); pinMode (BuzzerPin, SORTIE); pinMode(RedLedPin, SORTIE); pinMode(GreenLedPin, SORTIE); pinMode(RingBellSignalPin, SORTIE); digitalWrite(RedLedPin, LOW); digitalWrite (GreenLedPin, LOW); digitalWrite(RingBellSignalPin, LOW); monServo.attach(ServoPin); Serial.begin(9600);} void loop() { int lockButton, lock, unlock, bell; char snum[5]; lock =digitalRead (LockSignalPin); unlock =digitalRead (UnLockSignalPin); // Vérifie si le signal de verrouillage de Bolt est HAUT if(lock ==HIGH) { // Tourne le moteur en position verrouillée myServo.write(120); // Définir les indications LED digitalWrite(GreenLedPin, LOW); digitalWrite(RedLedPin, HAUT); // Son de verrouillage du buzz digitalWrite(BuzzerPin, HIGH); retard(1000); digitalWrite (BuzzerPin, LOW); retard(1000); } // Vérifie si le signal de déverrouillage de Bolt est HAUT else if(unlock ==HAUT) { // Tourne le moteur en position déverrouillée myServo.write(0); // Définir les indications LED digitalWrite(GreenLedPin, HIGH); digitalWrite(RedLedPin, LOW); retard (2000); } bell =digitalRead(BellButtonPin); if(bell ==HIGH) // L'utilisateur a appuyé sur la sonnerie de la sonnerie betton { // Signal Bolt que le bouton de sonnerie a été enfoncé digitalWrite(RingBellSignalPin, HIGH); // Un modèle de son de cloche d'appel ! digitalWrite (BuzzerPin, HAUT); retard (100); digitalWrite (BuzzerPin, LOW); retard(20); digitalWrite (BuzzerPin, HAUT); retard (200); digitalWrite (BuzzerPin, LOW); retard (100); digitalWrite (BuzzerPin, HAUT); retard (100); digitalWrite (BuzzerPin, LOW); retard(20); digitalWrite (BuzzerPin, HAUT); retard (200); digitalWrite (BuzzerPin, LOW); retard(1500); // Désactiver le signal digitalWrite(RingBellSignalPin, LOW); } lockButton =digitalRead(LockButtonPin); if(lockButton ==HIGH) // L'utilisateur a appuyé sur lock betton { // Tourner le moteur en position verrouillée myServo.write(120); // Définir les indications LED digitalWrite(GreenLedPin, LOW); digitalWrite(RedLedPin, HAUT); // Son de verrouillage du buzz digitalWrite(BuzzerPin, HIGH); retard(1000); digitalWrite (BuzzerPin, LOW); }} 

Flux d'événements

Maintenant que nous avons à la fois l'application WinForm et la conception Arduino prêtes, plongeons-nous dans le code et explorons le flux de contrôle de chaque opération.

1. Anneau Appuyez sur le bouton

2. Verrou Appuyez sur le bouton

Les deux opérations ci-dessus peuvent également être exécutées directement à partir de l'application Windows Forms.

Ici, on peut observer que le Module WiFi Bolt sert d'interface sans fil importante entre l'application Windows Forms et l'Arduino. L'utilisation de l'API Bolt Cloud nous permet d'étendre notre projet et de créer des applications sur d'autres plateformes comme Android et de déverrouiller la porte à l'aide de nos téléphones ! Cette flexibilité est la puissance de l'IoT et de la plate-forme Bolt.

Maintenant que nous avons terminé la partie conception du logiciel, allons de l'avant et construisons un mécanisme de porte verrouillable.

Étape 4 : Construire le matériel

J'ai une étagère à chaussures qui traîne donc dans ce projet, je vais l'utiliser pour une démonstration de serrure. Vous pouvez utiliser une étagère ou une porte ou une armoire ou tout ce qui a un mécanisme de verrouillage piratable. C'est vraiment à vous de décider.

Nous devons construire un mécanisme de couplage qui relie notre servomoteur à la serrure. Pour cela, mon idée est d'utiliser un goulot coupé d'une bouteille et le bouchon d'une autre bouteille. Fixez le goulot de la bouteille au servomoteur et le capuchon à la serrure. Nous allons ensuite les coupler à l'aide d'un fil de nylon. Cela entraînera l'action de verrouillage/déverrouillage chaque fois que le moteur tourne.

Le goulot de bouteille requis avec un trou percé sur son bouchon ressemble à celui illustré ci-dessous. Nous allons l'attacher à l'arbre de verrouillage de l'étagère à chaussures.

Un autre bouchon de bouteille doit être fixé au servomoteur. Nous utilisons des fils de cuivre pour connecter le capuchon à l'arbre de rotation du moteur.

Maintenant, nous devons coupler ces deux. Pour cela, nous utilisons du fil de nylon. Faites une boucle en utilisant le fil de la longueur requise et attachez le fil aux deux capuchons.

Une fois couplés, ils peuvent provoquer une action rotative mutuelle :

Maintenant que notre mécanisme de rotation est prêt, il est temps de pirater la serrure et d'y fixer notre goulot de bouteille. Nous avions percé un trou dedans, il nous suffit donc de dévisser l'arbre de verrouillage du rack, de placer le goulot de la bouteille au-dessus et de revisser le verrou.

Il ne reste plus qu'à fixer le servomoteur au porte-chaussures. Nous utiliserons un pistolet à colle chaude pour sceller le moteur sur la crémaillère.

Après avoir ajusté la longueur du fil et l'avoir suffisamment serré, nous avons notre installation finale prête. Comme on le voit ci-dessous, le servomoteur peut correctement verrouiller et déverrouiller la porte !

Vous n'avez pas nécessairement besoin d'utiliser la méthode de couplage col de la bouteille - filetage. Utilisez la méthode la plus appropriée et la plus pratique avec votre système de verrouillage.

Heureusement, j'avais une petite ouverture au bon endroit dans le rack. cela m'a permis de retirer facilement les connexions du servomoteur. Après un petit travail de décoration et d'étiquetage, notre dernier meuble à chaussures intelligent est maintenant prêt à l'action.

Nous sommes tous prêts maintenant. Tout ce qu'il reste à faire est de démarrer le circuit, d'ajouter un visage de confiance sur l'application WinForms et de profiter de la sécurité du verrouillage du visage sur nos portes. Vous aurez besoin d'alimenter à la fois l'Arduino et le module WiFi Bolt. J'utilise une banque d'alimentation de 10 000 mAh pour les alimenter tous les deux. La WebCam que j'utilise est une Microsoft LifeCam VX-800. C'est vieux mais toujours meilleur que l'appareil photo de l'ordinateur portable. Regardez la vidéo de démonstration. Il montre le fonctionnement de notre projet en détail.

La démonstration vidéo

Regardez notre projet en action (excuses pour la qualité de la vidéo) :

Conclusion

Huff... c'était assez long. Ce projet est le fruit de la formation IoT d'Internshala, propulsée par Bolt IoT. Bien que ce projet soit assez simple, il nous montre le potentiel de l'Internet des objets et comment il peut faciliter la vie quotidienne des gens.

Quoi qu'il en soit.. Ce fut une grande expérience d'apprentissage pour moi. J'espère que vous apprécierez de le construire et je suis impatient de voir les nouvelles innovations que vous proposerez. Je termine en exprimant mes sincères remerciements à l'équipe de formation d'Internshala et de Bolt IoT pour avoir rendu cette entreprise possible.

Et c'est terminé !

Code

  • BoltDoorLock.ino
  • Application WinForms - Projet Visual Studio (Facebolt Doorlock).zip
BoltDoorLock.inoC/C++
Code Arduino.
#include #define ServoPin 4#define LockSignalPin 2#define UnLockSignalPin 3#define BellButtonPin 5#define LockButtonPin 8#define RingBellSignalPin 6#define BuzzerPin 7#define GreenLedLedPin 9#define;void setup() { pinMode(LockSignalPin, INPUT); pinMode(UnLockSignalPin, INPUT); pinMode(BellButtonPin, INPUT); pinMode(LockButtonPin, INPUT); pinMode (BuzzerPin, SORTIE); pinMode(RedLedPin, SORTIE); pinMode(GreenLedPin, SORTIE); pinMode(RingBellSignalPin, SORTIE); digitalWrite(RedLedPin, LOW); digitalWrite (GreenLedPin, LOW); digitalWrite(RingBellSignalPin, LOW); monServo.attach(ServoPin); Serial.begin(9600);}void loop() { int lockButton, lock, unlock, bell ; char snum[5]; lock =digitalRead (LockSignalPin); unlock =digitalRead (UnLockSignalPin); // Vérifie si le signal de verrouillage de Bolt est HAUT if(lock ==HIGH) { // Tourne le moteur en position verrouillée myServo.write(120); // Définir les indications LED digitalWrite(GreenLedPin, LOW); digitalWrite(RedLedPin, HAUT); // Son de verrouillage du buzz digitalWrite(BuzzerPin, HIGH); retard(1000); digitalWrite (BuzzerPin, LOW); retard(1000); } // Vérifie si le signal de déverrouillage de Bolt est HAUT else if(unlock ==HAUT) { // Tourne le moteur en position déverrouillée myServo.write(0); // Définir les indications LED digitalWrite(GreenLedPin, HIGH); digitalWrite(RedLedPin, LOW); retard (2000); } bell =digitalRead(BellButtonPin); if(bell ==HIGH) // L'utilisateur a appuyé sur la sonnerie de la sonnerie betton { // Signal Bolt que le bouton de sonnerie a été enfoncé digitalWrite(RingBellSignalPin, HIGH); // Un modèle de son de cloche d'appel ! digitalWrite (BuzzerPin, HAUT); retard (100); digitalWrite (BuzzerPin, LOW); retard(20); digitalWrite (BuzzerPin, HAUT); retard (200); digitalWrite (BuzzerPin, LOW); retard (100); digitalWrite (BuzzerPin, HAUT); retard (100); digitalWrite (BuzzerPin, LOW); retard(20); digitalWrite (BuzzerPin, HAUT); retard (200); digitalWrite (BuzzerPin, LOW); retard(1500); // Désactiver le signal digitalWrite(RingBellSignalPin, LOW); } lockButton =digitalRead(LockButtonPin); if(lockButton ==HIGH) // L'utilisateur a appuyé sur lock betton { // Tourner le moteur en position verrouillée myServo.write(120); // Définir les indications LED digitalWrite(GreenLedPin, LOW); digitalWrite(RedLedPin, HAUT); // Son de verrouillage du buzz digitalWrite(BuzzerPin, HIGH); retard(1000); digitalWrite (BuzzerPin, LOW); }}
Application WinForms - Projet Visual Studio (Facebolt Doorlock).zipC#
* Extrayez le fichier zip et ouvrez le fichier .sln dans Visual Studio.
* Modifiez le code avec vos identifiants API.
* Exécutez le projet.
* Ajoutez un visage de confiance.
* Enfin, lancez la surveillance faciale.
Aucun aperçu (téléchargement uniquement).
API Cloud Bolt IoT – Bibliothèque cliente
Il s'agit d'une bibliothèque cliente non officielle que j'ai écrite pour communiquer avec l'API Bolt Cloud. Cette bibliothèque est utilisée dans notre application WinForms pour communiquer avec le module WiFi Bolt.https://github.com/diozz/Bolt-IoT-API-.NET

Schémas

Schéma du circuit Fritzing facebolt_doorlock_2RfOtkPW2i.fzz

Processus de fabrication

  1. Contrôleur Smart Home 433MHz avec Sensorflare et RaspberryPi
  2. Créer une porte de bureau à verrouillage automatique avec capteur de proximité pour smartphone
  3. Pan/Tilt Face Tracking avec le raspberry pi
  4. Barman intelligent
  5. Serrage des joints avec des outils dynamométriques
  6. Soyez intelligent avec votre dollar IoT
  7. Rester en sécurité avec les appareils intelligents et l'IoT
  8. Smart Procurement Balances AI avec HI
  9. Serrure de porte intelligente utilisant la page de connexion WiFi par Arduino et ESP8266