Verrouillage de code Arduino avec carte SD. Verrouillage automatique "intelligent" et Arduino. Développement ultérieur du projet "Château intelligent"

C'est donc arrivé que nous avons décidé d'installer une serrure de code sur votre porte au travail, car nous courons constamment - nous sommes à court de bureau, la porte qui devrait être fermée constamment en l'absence d'habitants. Les clés se tournent souvent pour être oubliés à l'intérieur. En général, ils ont décidé que la serrure du code était une excellente sortie.

Je suis fouillé sur les marchés chinois des puces et eBay, je n'ai rien trouvé moins cher et plus ou moins sérieux et j'ai décidé de me faire mes propres mains. Je ferai immédiatement une réservation que la plate-forme Arduino a été choisie pour sa simplicité, car l'expérience de la communication avec les microcontrôleurs n'était pas du tout.

Idée

Sur la porte avec l'extérieur de la porte, il devrait y avoir un clavier sur lequel le mot de passe est entré, le reste de la conception est fixé à l'intérieur. Pour contrôler la fermeture complète de la porte est utilisée par GERON. Sortir de l'armoire, une personne appuie sur le clavier "*" et sans attendre tant que la porte fermer la fermeture de ses affaires lorsque la porte est complètement fermée, le géron ferme et la serrure sera fermée. La porte s'ouvre en entrant le mot de passe du chiffre 4x et en cliquant sur "#".

Accessoires

Arduino Uno \u003d 18 $
Arduino Protoshield + pain de pain \u003d 6 $
L293d \u003d 1 $
Punch de fils 30 pcs pour Braddatrad \u003d 4 $
2 sockets RJ45 \u003d 4 $
2 bouchons rj45 \u003d 0,5 $
Actionneur de verrouillage central \u003d 250 roubles.
Geron \u003d gel libre de l'ancienne fenêtre.
Tailles géantes en métal coudre \u003d gratuit
Cas d'un vieux hub d-link d'un million et demi de fer \u003d libre
Alimentation du même concentrateur D-Link pour 12 et 5V \u003d également gratuitement
Bouquet de vis et de godets pour fixer tout ce bien au logement \u003d 100 roubles.
Panneau de commande OT alarme de sécurité \u003d gratuit.

LE TOTAL: 33,5 $ et 350 roubles.

Pas si peu, vous allez dire, et vous aurez certainement raison, mais pour le plaisir que vous devez payer! Et vous êtes toujours agréable de collecter quelque chose. Avant que la conception puisse être ralentie, si vous utilisez un MK nu sans arduino.

Préparation à l'assemblage

Je veux dire quelques mots sur l'achat d'un élément clé de la conception de l'actionneur. Dans l'automobile locale, on m'a offert les actionneurs de deux types: "avec deux fils et cinq". Selon la vendeuse, ils étaient absolument identiques et la différence dans le nombre de fils ne signifiait absolument rien. Cependant, comme il s'est avéré plus tard, ce n'est pas le cas! J'ai choisi un appareil avec deux fils, il a été nourri de 12V. Dans la conception avec cinq fils, les interrupteurs de fin de course sont installés, ce qui vous permet de contrôler le mouvement du levier. J'ai réalisé que je ne l'ai pas acheté que lorsque je l'ai désassemblé et je le change tard. Le cours du levier s'est avéré trop court pour pousser la bande normalement, il était donc nécessaire de le modifier un peu, à savoir, de retirer deux rondelles en caoutchouc raccourcissant le levier d'actionneur. Pour cela, le corps a dû couper le long de la haccade habituelle, car la deuxième rondelle était à l'intérieur. Tape bleue nous, comme toujours nous a toujours aidés à l'avenir lors de l'assemblage.
Pour contrôler le moteur du moteur, les moteurs L293D ont été utilisés, ce qui résiste à la charge maximale de 1200 mA, lors de l'arrêt du moteur de l'actionneur, la charge de crête cultivée jusqu'à 600 mA.
Les commandes du clavier, de la dynamique et de deux voyants ont été supprimées du panneau de commande d'alarme de contrôle. La console et le dispositif principal devaient être connectés à l'aide d'une paire torsadée et de connecteurs RJ45

Programmation.

Ainsi, comme l'expérience de la programmation d'Arduino, je n'ai pas eu jusqu'à présent. J'ai profité des travaux d'autres personnes et des articles du site Arduino.cc. Qui est intéressé, peut regarder ce code laid :)

Photo et vidéo



Arduino et actionneur


Source de courant


Clavier


Coudale (reliée à l'actionneur avec une aiguille en métal et sur laquelle la chaleur diminue pour la beauté)

Vidéo fonctionnement de l'appareil:

Les progrès ne sont pas debout et "châteaux intelligents" apparaissent de plus en plus sur les portes des appartements, des garages et des maisons.

Une serrure similaire s'ouvre lorsque vous appuyez sur le bouton sur le smartphone. Heureusement, les smartphones et les tablettes ont déjà entré notre utilisation. Dans certains cas, les «verrous intelligents» sont connectés à «Cloud Services» comme un disque Google et ouvert à distance. De plus, cette option permet de donner accès à l'ouverture de la porte à d'autres personnes.

Ce projet sera mis en œuvre par la version de bricolage de la serrure intelligente sur Arduino, qui peut être gérée à distance à partir de n'importe quel point du sol.

De plus, le projet a ajouté la possibilité d'ouvrir la serrure après l'identification de l'empreinte digitale. Pour ce faire, le capteur d'empreintes digitales sera intégré. Les deux options pour l'ouverture des portes fonctionneront sur la base de la plate-forme ADAFRUIT IO.

Un château similaire peut être une excellente première étape du projet de votre maison intelligente.

Réglage du capteur d'empreinte digitale

Pour travailler avec le capteur d'empreintes digitales, il existe une excellente bibliothèque pour Arduino, ce qui facilite grandement le processus de réglage du capteur. Arduino Uno est utilisé dans ce projet. Adafruit CC3000 est utilisé pour se connecter à Internet.

Commençons à connecter le pouvoir:

  • Connectez le contact 5V de la carte Arduino au rail rouge;
  • Le contact GND avec Arduino se connecte à un rail bleu sur une carte de circuit imprimé incontournable.

Allez à la connexion du capteur d'empreinte digitale:

  • Connectez d'abord le pouvoir. Pour ce faire, le fil rouge est connecté au rail +5 V et au noir - avec le rail GND;
  • Le fil de capteur blanc se connecte à 4 à Arduino.
  • Le fil vert va au contact 3 sur un microcontrôleur.

Maintenant, nous allons traiter avec le module CC3000:

  • Contact IRQ des cartes CC3000 Connectez-vous à la broche 2 sur Arduino.
  • VBAT - pour contacter 5.
  • CS - au contact 10.
  • Après cela, vous devez connecter des contacts SPI à Arduino: Mosi, Miso et CLK aux contacts 11, 12 et 13, respectivement.

Eh bien, à la fin, il est nécessaire de fournir des repas: VIN - ARDUINO 5V (rail rouge sur votre tableau de montage) et GND à GND (rail bleu sur la laïcs).

La photo du projet entièrement assemblé est indiquée ci-dessous:

Avant de développer un croquis, qui chargeront des données sur Adafruit IO, vous devez transférer des données sur votre capteur d'empreintes digitales. Sinon, à l'avenir, il ne vous reconnaît pas;). Nous vous recommandons de calibrer le capteur d'empreintes digitales en utilisant Arduino séparément. Si vous travaillez avec ce capteur pour la première fois, nous vous recommandons de lire le processus d'étalonnage et des instructions détaillées pour travailler avec le capteur d'empreintes digitales.

Si vous n'avez pas encore fait cela, vous commencerez un compte sur Adafruit IO.

Après cela, nous pouvons procéder à la prochaine étape du développement d'une "serrure intelligente" sur Arduino: à savoir le développement de la croquis, qui transmettra les données sur l'ADAFRUIT IO. Étant donné que le programme est assez volumineux, dans l'article, nous soulignons et ne considérons que ses principales pièces, puis donnons un lien vers GitHub, où vous pouvez télécharger un croquis complet.

Skatch commence à charger toutes les bibliothèques nécessaires:

#Inclure.

#Inclure.

#Inclure.

#Include "adafruit_mqtt.h"

#Include "adafruit_mqtt_cc3000.h"

#Inclure.

#Inclure. >

Après cela, vous devez corriger correctement le croquis, insérer les paramètres de votre réseau WiFi, spécifiant SSID et mot de passe (mot de passe):

#Define wlan_security wlan_sec_wpa2\u003e

De plus, vous devez entrer le nom et la touche AIO (touche) pour entrer votre compte Adafruti IO:

#Define AIO_SERVERPORT 1883.

#Define AIO_USERNAME "Adafruitic"

#Define AIO_KEY "ADAFRUIT_IO_KEY"\u003e

Les lignes suivantes sont responsables de l'interaction et du traitement des données à partir du capteur d'empreintes digitales. Si le capteur a été activé (l'impression du coïncident) sera "1":

cons-Char Fingerprint_feed Progmem \u003d AIO_USERNAME "/ FEEDS / Empreinte digitales";

Adafruit_mqttt_publish digitalprint \u003d adafruit_mqttt_publish (& mqtt, digitalprint_feed);

De plus, vous devez créer une instance de l'objet logiciel pour notre capteur:

Mystère logiciel myserial (3, 4);

Après cela, nous pouvons créer un objet pour notre capteur:

Adafruit_fingerprint doigt \u003d adafruit_fingerprint (& myserial);

Dans le croquis, nous spécifions quelgerid doit activer la serrure à l'avenir. Cet exemple utilise 0 correspondant au premier ID d'empreinte digitale, qui est utilisé par le capteur:

intgeridide \u003d 0;

Après cela, initialiser le compteur et le retard (retard) dans notre projet. En substance, nous voulons que la serrure fonctionne automatiquement après l'ouverture. Cet exemple utilise un délai de 10 secondes, mais vous pouvez ajuster cette valeur pour vos propres besoins:

iNT ActivationCounter \u003d 0;

int saleveractivation \u003d 0;

int activationtime \u003d 10 * 1000;

Dans le corps de la fonction Setup (), nous initialisons le capteur d'empreintes digitales et assurez-vous que la connexion de la puce CC3000 sur votre réseau WiFi.

Dans le corps de la fonction de boucle () Connectez-vous à Adafruit Io. La ligne suivante en est responsable:

Après la connexion à la plate-forme ADAFRUIT IO, vérifiez la dernière empreinte digitale. S'il coïncide et que le verrou n'est pas activé, nous envoyons "1" pour le traitement à Adafruit Io:

if (digitalprintid \u003d\u003d doigtier && serrure \u003d\u003d faux) (

Série.println (F ("Accès accordé!"));

lockstate \u003d true;

Série.println (f ("échec"));

Série.println (f ("OK!"));

lastAllivation \u003d millis ();

Si, dans la fonction de boucle (), la serrure est activée et nous avons atteint la valeur de retard, qui a été indiquée ci-dessus, envoyant "0":

si ((ActivationCounter - LastAndictivation\u003e Activationtime) && Lockstate \u003d\u003d True) (

lockstate \u003d False;

si (! digitalprint.Publish (State)) (

Série.println (f ("échec"));

Série.println (f ("OK!"));

Vous pouvez télécharger la dernière version du code sur Github.

Il est temps de tester notre projet! N'oubliez pas de télécharger et d'installer toutes les bibliothèques nécessaires pour Arduino!

Assurez-vous que vous avez apporté toutes les modifications nécessaires à l'esquisse et téléchargez-la sur votre Arduino. Après cela, ouvrez la fenêtre Serial Monitor.

Lorsque Arduino se connecte au réseau WiFi, le capteur d'empreintes digitales clignotera en rouge. Légende ton doigt sur le capteur. La fenêtre Serial Monitor doit apparaître le numéro d'identification. S'il coïncide, le message apparaîtra, "OK!". Cela signifie que les données ont été envoyées aux serveurs ADAFRUIT IO.

Schéma et croquis pour un réglage de verrouillage supplémentaire sur l'exemple de la LED

Nous allons maintenant traiter de la part du projet qui est directement responsable de la gestion du verrou de la porte. Pour vous connecter au réseau sans fil et activez / désactivez le verrouillage, vous aurez besoin d'un module ADAFRUTI ESP8266 en option (le module ESP8266 ne doit pas être à partir d'Adafruit). Sur l'exemple, que nous allons considérer ci-dessous, vous pourrez évaluer la facilité d'assurer l'échange de données entre deux plates-formes (Arduino et ESP8266) à l'aide de Adafruit IO.

Dans cette section, nous ne travaillerons pas directement avec la serrure. Au lieu de cela, nous connectons simplement le voyant au contact, où la serrure sera connectée ci-après. Cela donnera la possibilité de tester notre code, sans approfondir dans les caractéristiques de la conception du château.

Le schéma est assez simple: d'abord définir l'ESP8266 sur la carte de pain. Après cela, réglez le voyant. N'oubliez pas que la jambe longue (positive) de la LED est connectée via la résistance. Le second pied de résistance est connecté au contact 5 sur le module ESP8266. La seconde (cathode) de la LED est connectée à la broche GND sur ESP8266.

Pleinement schéma collecté Montré sur la photo ci-dessous.


Maintenant, trouvons-le avec un croquis qui utilise pour ce projet. Encore une fois, le code est assez volumineux et compliqué, nous ne considérerons donc que ses principales parties:

Nous commençons avec la connexion des bibliothèques nécessaires:

#Inclure.

#Include "adafruit_mqtt.h"

#Include "adafruit_mqttt_client.h"

Configurer WiFi:

#Define wlan_ssid "your_wifi_sssid"

#Define wlan_pass "your_wifi_pall"

#Define wlan_security wlan_sec_wpa2.

Configurez également les paramètres d'Adafruit IO. Tout comme dans la section précédente:

#Define AIO_SERVER "io.adafruit.com"

#Define AIO_SERVERPORT 1883.

#Define AIO_USERNAME "ADAFRUIT_IO_" UTILISATEUR "

#Define AIO_KEY "ADAFRUIT_IO_KEY"

Nous indiquons à quel pin nous avons connecté le voyant (à l'avenir ce sera notre serrure ou notre relais):

int relaypin \u003d 5;

Interaction avec le capteur d'empreintes digitales, comme dans la section précédente:

const charcre_feed progmem \u003d ao_username "/ flux / serrure";

Adafruit_mqttt_subscribe verrou \u003d adafruit_mqtt_subscribe (& MQTT, LOCK_FEED);

Dans le corps de la fonction Setup (), nous spécifions que la broche à laquelle la DEL est connectée doit fonctionner en mode de sortie:

pinmode (relaispin, sortie);

Dans le cycle de boucle (), vérifiez d'abord si nous nous sommes connectés à Adafruit Io:

Après cela, vérifiez quel signal vient. Si "1" est transmis, activez le contact que nous avons annoncé plus tôt auquel notre DEL est connectée. Si nous avons eu "0", nous traduisons le contact vers l'état "bas":

Adafruit_mqttt_subscribe * Abonnement;

tandis que ((abonnement \u003d mqtt.readsubscription (1000))) (

si (abonnement \u003d\u003d & verrou) (

Série.Print (F ("GOT:"));

Série.println ((char *) Lock.lastread);

// Enregistrez la commande sur les données de type de données

Commande string \u003d chaîne (char *) serrure.lastread);

si (commande \u003d\u003d "0") (

denadewrite (relaispin, faible);

si (commande \u003d\u003d "1") (

denawrite (relaispin, élevé);

Trouver dernière version Esquisse que vous pouvez sur GitHUB.

Il est temps de tester notre projet. N'oubliez pas de télécharger toutes les bibliothèques nécessaires pour votre Arduino et vérifiez si vous avez apporté des modifications à la croquis.

Pour programmer la puce ESP8266, vous pouvez utiliser un simple convertisseur USB-FTDI.

Chargez le skatch sur Arduino et ouvrez la fenêtre Serial Monitor. À ce stade, nous avons simplement vérifié si vous souhaitez vous connecter à Adafruti IO: fonctionnalité abordable, nous allons examiner plus loin.

Projet de test

Maintenant, passez à tester! Accédez à votre menu utilisateur Adafruit IO, dans le menu FEEDS. Vérifiez, créé ou pas de canaux pour l'empreinte digitale et le verrouillage (sur l'écran d'impression ci-dessous, il s'agit de l'empreinte digitale et de la serrure):


S'il n'y a pas de non, vous devez créer manuellement.

Nous devons maintenant fournir un échange de données entre l'empreinte digitale et les canaux de verrouillage. Le canal de verrouillage doit rendre la valeur "1" lorsque le canal d'empreintes digitales prend la valeur "1" et vice versa.

Pour ce faire, utilisez un outil très puissant Adafruit Io: déclencheurs. Les déclencheurs sont des conditions d'essence que vous pouvez appliquer sur les canaux configurés. C'est-à-dire qu'ils peuvent être utilisés pour interrelation de deux canaux.

Créez un nouveau déclencheur réactif de la section des déclencheurs de Adafruit IO. Cela permettra d'échanger des données entre les canaux du capteur d'empreintes digitales et le château:


Voici comment il devrait ressembler lorsque les deux déclencheurs sont personnalisés:

Tout! Maintenant, nous pouvons vraiment tester notre projet! Appliquez votre doigt sur le capteur et voyez que Arduino a commencé à cliquer sur le voyant, ce qui correspond à la transmission de données. Après cela, la LED clignote sur le module ESP8266. Cela signifie qu'il a commencé à recevoir des données via MQTT. Le voyant sur la carte de circuit imprimé à ce stade devrait également s'allumer.

Après le retard, que vous avez installé dans la croquis (par défaut, cette valeur est de 10 secondes), la DEL s'éteint. Toutes nos félicitations! Vous pouvez contrôler le voyant avec une empreinte digitale, être à tout moment dans le monde!

Personnaliser le château électronique

Nous sommes arrivés à la dernière partie du projet: la connexion directe et le contrôle de la serrure électronique utilisant Arduino et le capteur d'empreintes digitales. Le projet n'est pas facile, vous pouvez utiliser toutes les sources sous la forme dans lesquelles elles sont définies plus élevées, mais au lieu de la DEL pour connecter le relais.

Pour connecter directement la serrure, vous aurez besoin de composants supplémentaires: Alimentation à 12 V, prise pour l'alimentation électrique, transistor (dans cet exemple, utilisez le mosfet IRLB8721PBF utilisé, mais vous pouvez également utiliser un autre, par exemple, le transistor bipolaire TIP102. Si vous Utilisez un transistor bipolaire, vous aurez besoin d'ajouter une résistance.

Ci-dessous est montré circuit électrique Connexion de tous les composants au module ESP8266:


Veuillez noter que si vous utilisez le transistor MOSFET, vous n'aurez pas besoin d'une résistance entre la broche 5 du module ESP8266 et le transistor.

Le projet entièrement assemblé est indiqué sur la photo ci-dessous:


Vague un module ESP8266 à l'aide du module FTDI et connectez l'alimentation de 12 V à la prise. Si vous avez utilisé les broches recommandées pour vous connecter, vous n'avez rien à changer dans le croquis.

Maintenant, vous pouvez vous appuyer sur votre doigt sur le capteur: le verrou doit fonctionner, répondre à votre empreinte digitale. La vidéo ci-dessous montre le projet d'un «château intelligent» automatique en action:

Développement ultérieur du projet "Château intelligent"

Dans notre projet, libérez la télécommande du verrou de la porte à l'aide d'une empreinte digitale.

Vous pouvez expérimenter en toute sécurité, modifier le croquis et la crainte. Par exemple, vous pouvez remplacer le verrouillage électronique de la porte sur le relais pour gérer votre imprimante 3D, votre manipulateur ou votre quadcoptère ...

Vous pouvez développer votre " maison intelligente"Par exemple, activez à distance le système d'irrigation sur Arduino ou incluez la lumière dans la pièce ... N'oubliez pas que vous pouvez activer simultanément le nombre presque illimité d'appareils utilisant Adafruit Io.

Laissez vos commentaires, questions et partager expérience personnelle au dessous de. Les nouvelles idées et projets sont souvent nés dans la discussion!

L'autre jour, j'ai examiné le film "New Spiderman" et en une étape, Pierber Parker s'ouvre et ferme la porte de son ordinateur portable. Dès que je l'ai vu, j'ai immédiatement compris que j'ai besoin d'une telle serrure électronique sur la porte d'entrée.

Portant un peu, j'ai rassemblé un modèle valide d'un château intelligent. Dans cet article, je vais vous dire comment j'ai collecté elle.

Étape 1: Liste des matériaux





Pour assembler la serrure électronique sur Arduino, vous aurez besoin des matériaux suivants:

Électronique:

  • Adaptateur mural 5V

Composants:

  • 6 vis pour la spinlet
  • papier carton
  • fils

Instruments:

  • fer à souder
  • pistolet adhésif
  • percer
  • percer
  • perceuse pour trou de guidage
  • couteau de papeterie
  • ordinateur avec irdio IDE

Étape 2: Comment fonctionne le château

L'idée est que je peux ouvrir ou fermer la porte sans clé, et même sans venir à elle. Mais ce n'est que l'idée principale, car vous pouvez toujours ajouter un capteur de détonation afin qu'il réagit à un coup spécial ou que vous puissiez ajouter un système de reconnaissance vocale!

Le levier de servo connecté au bordereau le fermera (0 °) et ouvert (60 °) à l'aide des commandes obtenues via le module Bluetooth.

Étape 3: Schéma d'installation du fil


Connectons d'abord le servo au conseil d'administration d'Arduino (je tiens à noter que, bien que j'ai utilisé les frais Arduino Nano, dans le conseil de l'ONU, l'emplacement des conclusions est exactement le même).

  • servomoteuse de fil marron, connectez-le au sol sur Arduino
  • fil rouge - Plus, connectez-le au connecteur 5B sur Arduino
  • fil orange - Sortie de la source du servo, connectez-la à la 9e conclusion sur Arduino

Je vous conseille de vérifier le fonctionnement du servo avant de poursuivre l'Assemblée. Pour ce faire, dans le programme Arduino IDE dans les exemples, choisissez le balayage. Assurez-vous que le servo fonctionne, nous pouvons connecter un module Bluetooth. Vous devez connecter la sortie RX du module Bluetooth avec l'Arduino TX Sortie Arduino et TX Sortie du module avec RX Sortie Arduino. Mais ne le faites pas encore! Lorsque ces connexions sont soudées, vous ne pourrez plus télécharger aucun code sur Arduino, vous permettez donc de télécharger tous vos codes et uniquement après ces connexions de soudure.

Voici le schéma du module et des composés de microcontrôleur:

  • Module RX - TX Arduino Boards
  • Module TX - Boards Rx
  • Module VCC (Sortie positive) - 3.3V Arduino Boards
  • Sol à la terre avec le sol (sol sol)

Si l'explication vous semble incompréhensible, suivez le schéma des connexions de fil.

Étape 4: Test

Maintenant que nous avons toutes les parties actionnées, assurez-vous que le servo peut déplacer le scorelé. Avant de monter sur la porte, j'ai rassemblé un échantillon d'essai pour vous assurer que le servo est assez puissant. Au début, il me semblait que mon servo était faible et j'ai ajouté une goutte d'huile dans une écarlate, après cela, il a tout fonctionné bien. Il est très important que le mécanisme glisse bien, sinon vous risquez d'être enfermé dans votre chambre.

Étape 5: Cas pour les électrocomposants



J'ai décidé de mettre le contrôleur que dans le cas et le module Bluetooth, et le servo est laissé à l'extérieur. Pour ce faire, sur un morceau de carton, nous fournissons le circuit de circuit Arduino Nano et ajoutons 1 cm d'espace autour du périmètre et découpé. Après cela, nous avons également coupé cinq autres côtés du corps. Dans la paroi avant, il sera nécessaire de couper le trou de trou pour le cordon d'alimentation du contrôleur.

Tailles latérales du boîtier:

  • Fond - 7,5х4 cm
  • Couverture - 7,5x4 cm
  • La gauche paroi latérale - 7.5x4 cm
  • Mur de côté droit - 7.5x4 cm
  • Mur avant - 4x4 cm (avec une fente pour cordon d'alimentation)
  • Mur arrière - 4x4 cm

Étape 6: Annexe

Pour contrôler le contrôleur, vous avez besoin d'un gadget sur Android ou Windows avec un Bluetooth intégré. Je n'avais pas l'occasion de vérifier le fonctionnement de l'application sur les appareils Apple, vous avez peut-être besoin de certains pilotes.

Je suis sûr que certains d'entre vous ont la possibilité de vérifier. Pour Android, téléchargez Bluetooth Terminal Application, téléchargez Teraterm pour Windows. Ensuite, vous devez connecter le module au smartphone, le nom doit être linvor, mot de passe - 0000 ou 1234. Une fois que l'appariement est défini, ouvrez l'application installée, entrez l'option et sélectionnez "Installation de la connexion (dangerose)". Maintenant, votre smartphone est le moniteur d'interface série Arduino, c'est-à-dire que vous pouvez échanger des données avec le contrôleur.

Si vous entrez 0, la porte se ferme et sur l'écran du smartphone, il y aura un message "La porte est fermée".
Si vous entrez 1, vous verrez comment la porte s'ouvre et sur l'écran, il y aura un message "La porte est ouverte".
Sous Windows, le processus est identique, sauf que vous devez installer l'application Teraterm.

Étape 7: Intim du score


D'abord, vous devez connecter un servo-service SPITER. Pour ce faire, coupez les bouchons des trous de montage du boîtier d'entraînement. Si nous mettons le servomoteur, les trous de montage doivent être fermés avec un brisant. Ensuite, vous devez mettre le levier de servo dans la fente de spinoulet, où il y avait une poignée de spinlet. Vérifiez comment la serrure va dans le cas. Si tout va bien, fixez le levier de servo avec de la colle.

Vous devez maintenant percer dans les trous de guidage de la porte pour les vis. Pour ce faire, attachez des scores à la porte et au crayon, marquez sur la porte du trou de la porte sous les vis. Percez dans les endroits observés du trou sous les vis à une profondeur d'environ 2,5 cm. Appliquez le point de vue et fixez-le avec des vis. Vérifiez à nouveau l'opération Servo.

Étape 8: Nutrition


Pour compléter le périphérique, vous aurez besoin d'une source d'alimentation, d'un cordon et d'une fiche mini-usb pour vous connecter à Arduino.
Connectez la sortie d'alimentation de la source d'alimentation avec la sortie de la Terre du mini-port USB, connectez le fil rouge avec le fil rouge du mini-port USB, puis étiez le fil de la serrure à la boucle de la porte et étirez-la. De cela à la sortie.

Étape 9: Code

#include servo myservo; int pos \u003d 0; l'état Int; Int Flag \u003d 0; SETUP () (MYSERVO.ATTACH (9); SERIAL.BEGIN (9600); MYSERVO.WRITE (60); Délai (1000);) LOOP VOID () (Si (Serial.Anvailable ()\u003e 0) Série.Read (); drapeau \u003d 0;) // Si l'état est "0", le moteur CC s'éteindra si (état \u003d\u003d "0") (myservo.write (8); Délai (1000); Série. Println ("porte verrouillé");) sinon si (état \u003d\u003d "1") (myservo.write (55); retard (1000); Serial.println ("Porte déverrouillé");)););

Étape 10: Château complet sur la base d'Arduino

Profitez de votre château avec télécommande et n'oubliez pas de "par hasard" de verrouiller des amis dans la pièce.

Ce projet est modulaire, c'est-à-dire Vous pouvez connecter / désactiver différents éléments et obtenir des fonctionnalités différentes. Les images ci-dessus indiquent l'option avec une fonctionnalité complète, à savoir:

  • Mécanisme de verrouillage. Utilisé pour ouvrir et fermer la porte. Ce projet traite de l'utilisation de trois mécanismes différents:
    • Servo. Il y a grand, il y a petit. Très compact et couplé de casage sévère - une excellente option
    • Porte de voiture de voiture de château électrique. Chose grande et puissante, mais mange juste des courants folles
    • Pike solénoïde. Une bonne optionparce qu'il se claquer

    Dans les paramètres du micrologiciel, vous pouvez sélectionner l'un des trois types (réglage type de verrouillage)

  • Bouton à l'intérieur. Il sert à ouvrir et à fermer la porte de l'intérieur. Peut être placé sur la poignée de la porte (de la paume ou du côté des doigts), sur la porte elle-même, ou sur la confiture
  • Bouton à l'extérieur. Il sert à fermer la porte, ainsi qu'à un réveil de l'économie d'énergie. Peut être placé sur la poignée de la porte (de la paume ou du côté des doigts), sur la porte elle-même, ou sur la confiture
  • Le contexte sur la fermeture de la porte. Utilisé pour fermer automatiquement la serrure lors de la fermeture de la porte. Ils peuvent être:
    • Bouton d'horloge
    • Capteur de salle + aimant sur la porte elle-même
    • Gercon + aimant sur la porte elle-même
  • Secret bouton de réinitialisation d'accès. Utilisé pour réinitialiser le mot de passe / entrer dans un nouveau mot de passe / mémorisation d'une nouvelle clé / combinaison, etc. Peut être caché quelque part dans le cas
  • Diode électro-luminescente Pour indiquer le travail. LED RVB, Couleurs rouges et vertes utilisées (lorsque mélangé est jaune):
    • Gorite Green - Le château est ouvert. Gorbons de ne pas oublier de fermer la porte
    • Le jaune brûle - le système s'est réveillé et attend la saisie du mot de passe
    • Rouge clignotant - batterie Sat Down

L'un de ces éléments peut être exclu du système:

  • Nous enlevons la confusion. Dans le micrologiciel dans les paramètres, éteignez également (réglage tail_button.). Maintenant, pour fermer la serrure, vous devez appuyer sur le bouton.
  • Nous retirons le bouton extérieur. Dans le micrologiciel dans les paramètres, éteignez également (réglage wake_button.). Maintenant, le système n'a pas besoin de se réveiller, il se réveille elle-même (la consommation d'énergie est légèrement plus grande). Et aussi, nous n'avons maintenant pas de bouton pour fermer sur la porte d'entrée et vous avez besoin d'une confusion. Soit château - tickold
  • Nous retirons le bouton intérieur. Cette option convient aux armoires et coffres-forts. Vous n'avez pas besoin de changer quoi que ce soit dans les paramètres
  • Nous enlevons le voyant. Vous n'avez pas besoin de changer quoi que ce soit dans les paramètres
  • Le bouton de réinitialisation d'accès peut être disparu après la première utilisation ou réécrire le code pour lui-même.
  • La porte est fermée, en cliquant à l'extérieur - Réveillez-vous, attendez l'étiquette d'entrée / RFID de mot de passe / clé électronique / empreinte digitale
  • La porte est fermée, le système s'est réveillé en attendant le mot de passe. Le temps peut être configuré (réglage temps de sommeil.)
  • La porte est fermée, le mot de passe est entré / étiquette / clé, etc. - Ouvert
  • La porte est fermée, pressée à l'intérieur - ouvert
  • La porte est ouverte, clique sur l'extérieur - Fermer
  • La porte est ouverte, pressée à l'intérieur - fermer
  • La porte est ouverte, pressée - fermer

La serrure fournit une opération de batterie en mode d'économie d'énergie faible (Activer Désactiver: Configuration sleep_enable), nommément:

  • Se réveiller toutes les quelques secondes, suivez l'événement (option facultative, s'il n'y a pas de bouton à l'extérieur. Vous pouvez activer dans le réglage. wake_button.)
  • Toutes les quelques minutes pour surveiller la tension Akum (réglage ON / OFF batterie_monitor)
  • Si l'akum est déchargé (la tension est réglée dans le réglage bat_low.):
    • porte ouverte (facultatif, peut être configuré dans le micrologiciel open_bat_low.)
    • interdire d'autres ouvertures et fermer
    • lorsque vous cliquez sur les boutons pour clignoter une LED rouge
    • arrêtez de regarder l'événement (c'est-à-dire mot de passe / étiquette, etc.)

Lorsque le système ne dort pas, appuyez sur la touche Mot de passe (bouton caché). Trouver B. mode de changement de mot de passe:
Nous entrons un mot de passe à partir de chiffres ( Maximum 10 chiffres !!!)

  • Cliquer sur * Le mot de passe est enregistré en mémoire et le système sort du changement de mot de passe.
  • Lorsque vous cliquez sur le mot de passe, vous pouvez réinitialiser (vous pouvez entrer à nouveau)
  • Si vous n'appuyez sur rien de 10 secondes, laissez automatiquement le mode de changement de mot de passe, le mot de passe restera vieux.

Lorsque le système ne dort pas (je me suis réveillé, les boutons ou la sommeil sont désactivés), cliquez sur * pour entrer le mode de saisie du mot de passe.
Si le système dort et se réveille périodiquement pour vérifier l'événement, puis appuyez sur * et maintenez enfoncé jusqu'à ce que le voyant rouge s'allume.
Mode de saisie de mot de passe:

  • Le traitement par mot de passe est effectué de manière à ce que le mot de passe correct ne soit compté que lorsqu'il est défini sur la séquence correcte des nombres, c'est-à-dire si le mot de passe est 345, alors tous les numéros peuvent être entrés jusqu'à ce que la séquence 345 apparaisse, c'est-à-dire 30984570345 ouvrira la serrure, car elle finit vers 345.
  • Si le mot de passe est entré correctement, la porte s'ouvrira
  • Si vous n'appuyez sur rien, après 10 secondes, le système reviendra sur le mode habituel (devoir).
  • Si vous cliquez sur #, sortez immédiatement du mode de saisie de mot de passe
  • Si vous appuyez sur le bouton Secret Mot de passe de mot de passe dans le mode de saisie de mot de passe, vous en sortirez.

Arduino est meilleur système Copier n'importe quel équipement. La plupart des idées ne seraient pas en mesure de devenir réalité sans elle. Pendant longtemps, il y a une telle pensée: créer un code de code spécial sur Arduino. Pour l'ouvrir, il est nécessaire de brancher une clé spécifique. Dans ce cas, la serrure ne doit pas être ouverte, même si vous connaissez le bouton souhaité. Pour l'ouvrir, il est nécessaire de résister à certains intervalles en utilisant la mémoire musculaire. Un tel criminel ne sera pas en mesure de s'engager. Mais c'est toute la théorie.

Pour le collecter, vous devez profiter du dispositif spécial des impulsions rectangulaires, ainsi que de plusieurs mètres et tas. Mais le périphérique fini aurait grand dimensions Et il ne pouvait pas être utilisé. En règle générale, de telles pensées ne se reposent pas. La première étape de l'incarnation du rêve était la création d'un programme sous Arduino. C'est elle qui servira de verrouillage de code. Pour l'ouvrir, vous devrez appuyer sur Pas une touche, mais quelques-uns, et le faire en même temps. Schéma fini On dirait:

La qualité de l'image n'est pas la meilleure, mais la connexion est effectuée sur le sol, D3, D5, D7, D9 et D11.

Le code est présenté ci-dessous:

Const int ina \u003d 3; Const int inb \u003d 5; Const int inc \u003d 9; Const int Ledpin \u003d 13; int i \u003d 1000; Octet a \u003d 0; Octet b \u003d 0; Octet c \u003d 0; Octet d \u003d 0; non signé longtemps \u003d 0; // N'oubliez pas tout ce qui prend la valeur de Millis () non signé long Temp \u003d 0; // store dans un octet long byte non signé \u003d (0, 0, 0, 0, 0, 0, 0, 0); // codes réellement octet-cléb \u003d (1, 1, 1, 1, 0, 1, 0, 0); Byte keyc \u003d (1, 0, 1, 0, 1, 1, 1, 0); Octet k \u003d 0; SETUPH VOID () (Pinmode (INA, INPUT_Pullup); // 3 entrées connectées aux touches PINMODE (INB, INPUT_Pullup); Pinmode (Inc, Input_Pullup); Pinmode (LEDPIN, SORTIE); // LED intégrée du 13 Pinmode de pin (7, sortie); Pinmode (11, sortie); denawrite (7, faible); // Remplacer la Terre DigitalWrite (11, faible); Temps \u003d millis (); // Besoin de temps de référence) Void Blinktwice ( ) (// double voyant numérique de clignotant (LEDPIN, HIGH); retard (100); denawrite (LEDPIN, faible); délai (100); DIGITEWRITE (LEDPIN, HIGH); Délai d'écriture numérique (LEDPIN, LOW); Délai (200);) boucle vide () (si (k \u003d\u003d 0) (blinktwice (); // invitations entrez le code) Si (k \u003d\u003d 8) (DIGITEWRITE (LEDPIN, HIGH); Délai (3000); K \u003d 0;) A \u003d digitalRead (INA); // Les niveaux de signal sont lus à partir des boutons - appuyé sur / non enfoncé B \u003d digitallead (Inb); c \u003d digitalread (inc); retard (100); // Suivant si - Protection Contre les faux positifs, vous ne pouvez pas utiliser si ((((digitallead (ina) \u003d\u003d a) && (digitalRead (INB) \u003d\u003d b) && (digitalRead (Inc) \u003d\u003d c)) (si (a \u003d\u003d keya [k] ) (Si (b \u003d\u003d keyb [k]) (si (c \u003d\u003d keyc [k]) (K ++; ))))) si (k \u003d\u003d 1) (si (d \u003d\u003d 0) (temps \u003d millis (); D ++;)) Temp \u003d millis (); Temp \u003d Temp - Time; if (Temp\u003e 10000) (k \u003d 0; d \u003d 0; temps \u003d millis ();))

Afin de ne pas avoir de questions supplémentaires sur le code, certains moments devraient être expliqués. La fonction de configuration est utilisée pour attribuer des ports. La fonction suivante est entrée_Pullup, nécessaire pour augmenter la tension du pin par 5 V. Ceci est effectué à l'aide d'une résistance. En raison de cela, divers circuits courts ne se produiront pas. Pour plus de commodité, il est recommandé d'utiliser la fonctionnalité Blinktwice. En général, lors de la création de divers programmes, vous devez essayer d'autres fonctions.

Après avoir attribué les fonctions, le signal est lu dans les ports. Si vous appuyez sur le bouton, cela sera noté par un numéro 1, et si non - 2. Suivant, il existe une analyse de toutes les valeurs. Par exemple, une telle combinaison est apparue 0,1.1. Cela signifie que la première clé est enfoncée et les deux autres ne sont pas. Si toutes les valeurs sont exécutées correctement, la condition 8 est également vraie. Ceci est mis en évidence par la LED amplitée sur le panneau avant. Ensuite, vous devez entrer un code spécifique qui servira à ouvrir la porte.

Les derniers éléments de code sont utilisés pour déposer les valeurs du compteur. Cette fonction est effectuée si après la dernière frappe, plus de 10 secondes ont passé. Sans ce code, il était possible de tout passer options possiblesBien qu'il y en ait beaucoup assez. Après avoir créé cet appareil, il est nécessaire de le tester. Encore

mob_info.