Arduino kombinationslås med to-niveaus autentificering. Arduino kombinationslås

Fremskridtet står ikke stille, og "Smartlåse" dukker i stigende grad op på dørene til lejligheder, garager og huse.

En lignende lås åbnes, når du trykker på en knap på en smartphone. Heldigvis er smartphones og tablets allerede kommet ind i vores hverdag. I nogle tilfælde forbinder "smartlåse" til " cloud-tjenester"som et google drive og åbne eksternt. Derudover gør denne mulighed det muligt at give adgang til at åbne døren for andre mennesker.

I dette projekt vil der blive implementeret en gør-det-selv-version af smartlåsen på Arduino, som kan fjernstyres fra hvor som helst på jorden.

Derudover tilføjede projektet muligheden for at åbne låsen efter fingeraftryksgenkendelse. Til dette vil en fingeraftrykssensor blive integreret. Begge døråbningsmuligheder vil blive drevet af Adafruit IO-platformen.

En lås som denne kan være et godt første skridt i dit Smart Home-projekt.

Opsætning af fingeraftrykssensor

For at arbejde med fingeraftrykssensoren er der et fremragende bibliotek til Arduino, der gør processen med at opsætte sensoren meget nemmere. Dette projekt bruger Arduino Uno. Et Adafruit CC3000-kort bruges til at oprette forbindelse til internettet.

Lad os starte med at tilslutte strømmen:

  • Tilslut 5V-pinden fra Arduino-kortet til den røde strømskinne;
  • GND-stiften fra Arduino forbindes til den blå skinne på det loddefrie printkort.

Lad os gå videre til at tilslutte fingeraftrykssensoren:

  • Tilslut strømmen først. For at gøre dette er den røde ledning forbundet til +5 V-skinnen, og den sorte ledning til GND-skinnen;
  • Sensorens hvide ledning forbindes til pin 4 på Arduino.
  • Den grønne ledning går til ben 3 på mikrocontrolleren.

Lad os nu tage fat på CC3000-modulet:

  • IRQ-pinden fra CC3000-kortet er forbundet til pin 2 på Arduino.
  • VBAT - til pin 5.
  • CS - til pin 10.
  • Derefter skal du forbinde SPI-benene til Arduino: MOSI, MISO og CLK - til henholdsvis ben 11, 12 og 13.

Til sidst skal du sørge for strøm: Vin til Arduino 5V (rød skinne på dit printkort), og GND til GND (blå skinne på breadboard).

Et foto af det færdigmonterede projekt er vist nedenfor:

Før du udvikler en skitse, der uploader data til Adafruit IO, skal du overføre dine fingeraftryksdata til sensoren. Ellers vil han ikke genkende dig i fremtiden ;). Vi anbefaler at kalibrere fingeraftrykssensoren ved hjælp af Arduino separat. Hvis du arbejder med denne sensor for første gang, anbefaler vi, at du gør dig bekendt med kalibreringsprocessen og detaljerede instruktioner til at arbejde med fingeraftrykssensoren.

Hvis du ikke allerede har gjort det, så opret en konto hos Adafruit IO.

Efter det kan vi gå til næste fase udvikling af en "smart lock" på Arduino: nemlig udviklingen af ​​en skitse, der vil overføre data til Adafruit IO. Da programmet er ret omfangsrigt, vil vi i artiklen fremhæve og kun overveje dets hoveddele, og derefter vil vi give et link til GitHub, hvor du kan downloade hele skitsen.

Skitsen begynder med at indlæse alle de nødvendige biblioteker:

#omfatte

#omfatte

#omfatte

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#omfatte

#omfatte >

Derefter skal du rette skitsen lidt ved at indsætte parametrene for dit WiFi-netværk og angive SSID og adgangskode (adgangskode):

#define WLAN_SECURITY WLAN_SEC_WPA2>

Derudover skal du indtaste dit navn og AIO-nøgle (nøgle) for at logge ind på din Adafruit IO-konto:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key">

Følgende linjer er ansvarlige for interaktion og behandling af data fra fingeraftrykssensoren. Hvis sensoren var aktiveret (fingeraftryk matchet), vil der være "1":

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/ feeds / fingeraftryk";

Adafruit_MQTT_Publish fingerprint = Adafruit_MQTT_Publish (& mqtt, FINGERPRINT_FEED);

Derudover skal vi oprette en instans af SoftwareSerial-objektet til vores sensor:

SoftwareSerial mySerial (3, 4);

Derefter kan vi oprette et objekt til vores sensor:

Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial);

Inde i skitsen angiver vi, hvilket fingerID der skal aktivere låsen i fremtiden. Dette eksempel bruger 0, som svarer til ID'et for det første fingeraftryk, der bruges af sensoren:

int fingerID = 0;

Derefter initialiserer vi tælleren og forsinker vores projekt. Som udgangspunkt ønsker vi, at låsen fungerer automatisk efter åbning. I dette eksempel bruges en forsinkelse på 10 sekunder, men du kan justere denne værdi, så den passer til dine behov:

int aktiveringstæller = 0;

int lastActivation = 0;

int aktiveringstid = 10 * 1000;

I hoveddelen af ​​opsætningsfunktionen () initialiserer vi fingeraftrykssensoren og forbinder CC3000-chippen til dit WiFi-netværk.

Forbind til Adafruit IO i hoveddelen af ​​loop ()-funktionen. Følgende linje er ansvarlig for dette:

Efter at have oprettet forbindelse til Adafruit IO-platformen, tjekker vi det sidste fingeraftryk. Hvis det matcher, og låsen ikke er aktiveret, sender vi "1" til behandling i Adafruit IO:

if (fingerprintID == fingerID && lockState == falsk) (

Serial.println (F ("Adgang givet!"));

lockState = sand;

Serial.println (F ("Failed"));

Serial.println (F ("OK!"));

lastActivation = millis ();

Hvis låsen er aktiveret i loop ()-funktionen, og vi har nået forsinkelsesværdien angivet ovenfor, sender vi "0":

if ((activationCounter - lastActivation> activationTime) && lockState == true) (

lockState = falsk;

if (! fingerprint.publish (state)) (

Serial.println (F ("Failed"));

Serial.println (F ("OK!"));

Du kan downloade den seneste version af koden på GitHub.

Det er tid til at teste vores projekt! Glem ikke at downloade og installere alle de nødvendige Arduino-biblioteker!

Sørg for at foretage alle de nødvendige ændringer af skitsen og upload den til din Arduino. Åbn derefter vinduet med den serielle skærm.

Når Arduino forbinder til WiFi-netværk, blinker fingeraftrykssensoren rødt. Placer din finger på sensoren. Det serielle skærmvindue skal vise ID-nummeret. Hvis det matcher, vises meddelelsen "OK!". Det betyder, at dataene er blevet sendt til Adafruit IO-serverne.

Diagram og skitse for yderligere konfiguration af låsen ved hjælp af eksemplet med en LED

Lad os nu beskæftige os med den del af projektet, der er direkte ansvarlig for at styre dørlås... At oprette forbindelse til trådløst netværk og aktivering/deaktivering af låsen, skal du bruge et ekstra Adafruit ESP8266-modul (ESP8266-modulet behøver ikke at være fra Adafruit). Ved at bruge eksemplet nedenfor kan du forstå, hvor nemt det er at udveksle data mellem to platforme (Arduino og ESP8266) ved hjælp af Adafruit IO.

I dette afsnit vil vi ikke arbejde direkte med låsen. I stedet vil vi blot forbinde LED'en til stiften, som låsen skal tilsluttes senere. Dette vil gøre det muligt at teste vores kode uden at gå dybt ind i låsens design.

Kredsløbet er ret simpelt: Installer først ESP8266 på brødbrættet. Installer derefter LED'en. Glem ikke, at LED'ens lange (positive) ben er forbundet gennem en modstand. Det andet ben af ​​modstanden forbindes til ben 5 på ESP8266-modulet. Den anden (katode) af LED'en er forbundet til GND-stiften på ESP8266.

Fuldt ud samlet kredsløb vist på billedet nedenfor.


Lad os nu tage et kig på den skitse, vi skal bruge til dette projekt. Igen er koden ret stor og kompleks, så vi vil kun dække hoveddelene af den:

Vi starter med at forbinde de nødvendige biblioteker:

#omfatte

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

Konfiguration af WiFi-parametre:

#define WLAN_SSID "dit_wifi_ssid"

#define WLAN_PASS "dit_wifi_adgangskode"

#define WLAN_SECURITY WLAN_SEC_WPA2

Vi konfigurerer også Adafruit IO-parametrene. Det samme som i forrige afsnit:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_username"

#define AIO_KEY "adafruit_io_key"

Vi angiver, hvilken pin vi tilsluttede LED'en (i fremtiden vil det være vores lås eller relæ):

int relayPin = 5;

Interaktion med fingeraftrykssensoren er den samme som i forrige afsnit:

const char LOCK_FEED PROGMEM = AIO_USERNAME "/ feeds / lock";

Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe (& mqtt, LOCK_FEED);

I hoveddelen af ​​opsætningsfunktionen () angiver vi, at den pin, som LED'en er forbundet til, skal fungere i OUTPUT-tilstand:

pinMode (relayPin, OUTPUT);

Inden for løkken (), kontrollerer vi først, om vi er forbundet til Adafruit IO:

Derefter tjekker vi, hvilket signal der modtages. Hvis "1" sendes, aktiverer vi den kontakt, som vi tidligere erklærede, som vores LED er forbundet til. Hvis vi modtager "0", overfører vi kontakten til tilstanden "lav":

Adafruit_MQTT_Subscribe * abonnement;

while ((abonnement = mqtt.readSubscription (1000))) (

if (abonnement == & lås) (

Serial.print (F ("Got:"));

Serial.println ((char *) lock.lastread);

// Gem kommandoen til strengdata

String kommando = String ((char *) lock.lastread);

if (kommando == "0") (

digitalWrite (relayPin, LOW);

if (kommando == "1") (

digitalWrite (relayPin, HIGH);

Finde nyeste version skitser du kan på GitHub.

Det er tid til at teste vores projekt. Glem ikke at downloade alle de nødvendige biblioteker til din Arduino og kontrollere, om du har lavet de korrekte ændringer af skitsen.

En simpel USB-FTDI-konverter kan bruges til at programmere ESP8266-chippen.

Upload skitsen til Arduino og åbn vinduet med den serielle skærm. På dette tidspunkt har vi lige tjekket, om vi var i stand til at oprette forbindelse til Adafruit IO: vi vil overveje den tilgængelige funktionalitet yderligere.

Test af projektet

Lad os nu begynde at teste! Gå til brugermenuen på din Adafruit IO under menuen Feeds. Tjek, om kanalerne for fingeraftrykket og låsen er blevet oprettet (på print-skærmen nedenfor er disse fingeraftryk og låselinjer):


Hvis de ikke er der, bliver du nødt til at oprette det manuelt.

Nu skal vi sikre udvekslingen af ​​data mellem fingeraftryks- og låsekanalerne. Låsekanalen skal indstilles til "1", når fingeraftrykskanalen er indstillet til "1" og omvendt.

For at gøre dette bruger vi et meget kraftfuldt Adafruit IO-værktøj: triggere. Triggere er i bund og grund betingelser, som du kan anvende på konfigurerede kanaler. Det vil sige, at de kan bruges til at forbinde to kanaler.

Opret en ny reaktiv trigger fra Triggers-sektionen i Adafruit IO. Dette giver mulighed for at udveksle data mellem fingeraftrykssensoren og låsekanaler:


Sådan skal det se ud, når begge triggere er konfigureret:

Alt! Nu kan vi virkelig teste vores projekt! Vi sætter fingeren på sensoren og ser, hvordan Arduino begyndte at blinke med den LED, der svarer til dataoverførslen. Derefter skulle LED'en på ESP8266-modulet begynde at blinke. Det betyder, at han begyndte at modtage data gennem MQTT. LED'en på printkortet bør også tænde på dette tidspunkt.

Efter den forsinkelse, du har angivet i skitsen (standard er 10 sekunder), slukker LED'en. Tillykke! Du kan styre LED'en med dit fingeraftryk fra hvor som helst i verden!

Opsætning af elektronisk lås

Vi kom til den sidste del af projektet: direkte tilslutning og styring af den elektroniske lås ved hjælp af en Arduino og en fingeraftrykssensor. Projektet er ikke let, du kan bruge alle kilderne i den form, som de er præsenteret ovenfor, men i stedet for LED skal du tilslutte et relæ.

For at tilslutte låsen direkte skal du bruge yderligere komponenter: en 12 V strømforsyning, et strømstik, en transistor (i dette eksempel IRLB8721PbF MOSFET bruges, men en anden, for eksempel en bipolær transistor TIP102, kan bruges. Hvis du bruger en bipolær transistor, skal du tilføje en modstand.

Vist nedenfor elektriske kredsløb tilslutning af alle komponenter til ESP8266-modulet:


Bemærk, at hvis du bruger en MOSFET-transistor, behøver du ikke en modstand mellem ben 5 på ESP8266 og transistoren.

Det færdigmonterede projekt er vist på billedet nedenfor:


Forsyn ESP8266-modulet ved hjælp af FTDI-modulet, og tilslut 12V-strømforsyningen til stikket. Hvis du brugte de ovenfor anbefalede tilslutningsstifter, skal du ikke ændre noget i skitsen.

Nu kan du sætte fingeren på sensoren: Låsen skulle virke og reagere på dit fingeraftryk. Videoen nedenfor viser projektet med en automatisk "smart" lås i aktion:

Videreudvikling af "Smart Lock"-projektet

I vores projekt har vi udgivet fjernbetjening dørlås ved hjælp af dit fingeraftryk.

Du er velkommen til at eksperimentere, ændre skitsen og seletøjet. For eksempel kan du udskifte en elektronisk dørlås med et relæ for at styre strømmen af ​​din 3D-printer, manipulator eller quadcopter ...

Du kan udvikle din " smart hus For eksempel fjernaktivere kunstvandingssystemet på Arduino eller tænde lyset i rummet ... Og glem ikke, at du samtidigt kan aktivere et næsten ubegrænset antal enheder ved hjælp af Adafruit IO.

Efterlad dine kommentarer, spørgsmål og del personlig erfaring under. Nye ideer og projekter fødes ofte i diskussionen!

Det skete bare sådan, at vi besluttede at installere en kombinationslås på vores dør på arbejdet, fordi vi hele tiden løber ind - vi løber ud af kontoret, hvor døren skal være lukket konstant i beboernes fravær. Nøgler er ofte glemt indeni. Generelt besluttede vi, at kombinationslåsen er en fremragende løsning.

Efter at have rodet gennem kinesiske loppemarkeder og ebay fandt jeg ikke noget billigt og mere eller mindre seriøst og besluttede at lave det selv. Jeg vil med det samme tage forbehold for, at Arduino-platformen blev valgt for dens enkelhed, da der overhovedet ikke var nogen erfaring med at kommunikere med mikrocontrollere.

Ide

På døren med uden for døren skal have et tastatur, hvorpå adgangskoden indtastes, resten af ​​strukturen er fastgjort på indersiden. En reed-kontakt bruges til at kontrollere den fuldstændige lukning af døren. Når en person forlader kontoret, trykker en person på "*" på tastaturet, og uden at vente på, at døren lukker tættere på, fortsætter han sit arbejde, når døren er helt lukket, lukkes reed-kontakten, og låsen lukkes. Døren åbnes ved at indtaste en 4-cifret adgangskode og trykke på "#".

Komponenter

Arduino UNO = $ 18
Arduino protoskjold + brødbræt = $ 6
L293D = $ 1
30 stk flettet trådbundt = $ 4
2 RJ45-stik = $ 4
2 RJ45-stik = $ 0,5
aktuator centrallås= 250 RUB
Reed switch = revet fri af det gamle vindue.
Metallås i kæmpe størrelse = gratis
Gammelt D-LINK nav lavet af 1,5 mm jern = fri
En strømforsyning fra samme D-LINK hub til 12 og 5v = er også gratis
En flok skruer og møtrikker til at fastgøre alle disse ting til kroppen = 100 rubler.
Kontrolpanel fra tyverialarm= gratis.

I alt:$ 33,5 og 350 rubler.

Ikke så lidt, siger du, og du vil helt sikkert have ret, men du skal betale for fornøjelsen! Og det er altid rart at samle noget med egne hænder. Derudover kan designet reduceres meget, hvis du bruger en bar MC uden en Arduino.

Forberedelse til montage

Jeg vil gerne sige et par ord om købet af et nøgleelement i aktuatordesignet. I en lokal autoforretning blev jeg tilbudt to typer aktuatorer: "med to ledninger og med fem." Ifølge ekspedienten var de nøjagtig ens, og forskellen i antallet af ledninger betød absolut ingenting. Men som det viste sig senere, er dette ikke tilfældet! Jeg valgte en enhed med to ledninger, den blev drevet af 12V. 5-lederdesignet inkluderer endestopkontakter til at styre armens bevægelse. Jeg indså, at jeg først købte den forkerte, da jeg adskilte den, og det var for sent at skifte den. Håndtagets vandring var for kort til at bevæge låsen normalt, derfor var det nødvendigt at ændre den lidt, nemlig at fjerne to gummiskiver, der forkortede aktuatorarmens vandring. For at gøre dette skulle kroppen skæres sammen almindelig hacksav fordi den anden vaskemaskine var inde. Det blå elektriske tape hjalp os som altid i fremtiden, når vi skulle samle det tilbage.
Til styring af aktuatorens motor blev der brugt L293D motordriveren, som kan modstå en spidsbelastning på op til 1200 mA, da vi stoppede aktuatorens motor, steg spidsbelastningen til kun 600 mA.
Fra kontrolpanelet fra tyverialarmen blev kontakter fra tastatur, højttaler og to lysdioder fjernet. Fjernbetjeningen og hovedenheden skulle være forbundet ved hjælp af parsnoede og RJ45-stik.

Programmering.

Så jeg har ikke haft nogen erfaring med Arduino-programmering indtil nu. Jeg brugte andres udviklinger og artikler fra arduino.cc-siden. Hvem bekymrer sig om denne grimme kode :)

Foto og video



Arduino og aktuator


Strømforsyning


Tastatur


Espagnolet (forbundet til aktuatoren med en metaleger, og hvorpå der bæres en varmekrympning for skønhedens skyld)

Video af enhedens driftproces:

I denne artikel vil jeg vise dig, hvordan du laver en kombinationslås fra en arduino. Til dette har vi brug for røde og grønne lysdioder, en buzzer, en arduino nano, et LCD-display med en I2C-konverter, et servodrev og et 4x4 matrix-tastatur. Når den er tændt, vil displayet skrive "Indtast kode."

den røde LED tændes,

og den grønne slukker, servoen er indstillet til 0 °. Når du indtaster tal, lyser * på displayet.

Hvis koden er indtastet forkert, vil displayet skrive "Indtast kod." Hvis koden er korrekt, lyder et bip, servoen vil rotere 180°, displayet vil skrive "Åbn".

den grønne LED tændes,

og den røde slukker. Efter 3 sekunder vil servoen vende tilbage til udgangspositionen, den røde LED vil tænde og den grønne LED vil slukke, displayet vil skrive "Luk".

så vil displayet skrive "Indtast kode.". Nu om ordningen. Først forbinder vi arduinoen med ledninger til brødbræt(strømkontakter).

Derefter forbinder vi matrixtastaturet til kontakterne D9 - D2.

Så servoen. Vi forbinder den til pin 10.

Rød LED til pin 11.

Grøn - til pin 12.

Buzzer - til pin 13.

Upload nu skitsen.

#omfatte #omfatte #omfatte #omfatte iarduino_KB KB (9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd (0x27, 16, 2); Servo servo; int pass = (3, 6, 1, 8); int i; int r = 11; int g = 12; void opsætning () (KB.begin (KB1); pinMode (r, OUTPUT); pinMode (g, OUTPUT); lcd.init (); lcd.backlight (); digitalWrite (g, LOW); digitalWrite (r, HIGH ); servo.attach (10); servo.write (0); lcd.setCursor (0, 0);) void loop () (lcd.clear (); lcd.print ("Indtast kode."); while ( ! KB.check (KEY_DOWN)) (forsinkelse (1);) in = KB.getNum; lcd.clear (); lcd.setCursor (0, 0); lcd.print ("*"); mens (! KB. check (KEY_DOWN)) (forsinkelse (1);) in = KB.getNum; lcd.print ("*"); mens (! KB.check (KEY_DOWN)) (forsinkelse (1);) in = KB.getNum; lcd.print ("*"); while (! KB.check (KEY_DOWN)) (forsinkelse (1);) in = KB.getNum; lcd.print ("*"); if (in == pass) (hvis (i == bestået) (hvis (i == bestået) (hvis (i == bestået) (lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Åben."); tone ( 13, 400, 750); servo.write (180); digitalWrite (r, LOW); digitalWrite (g, HIGH); delay (3000); lcd.clear (); lcd.setCursor (0, 0); lcd. print ("Luk."); tone (13, 300, 700); servo.write (0); digitalWrite (g, LOW); digitalWrite (r, HIGH); dela y (1000); )))))

Det er alt. Nyd kombinationslåsen!

Liste over radioelementer

Betegnelse En type Pålydende værdi Antal BemærkScoreMin notesbog
E1 Arduino bord

Arduino Nano 3.0

1 5B Ind i notesblok
E8, E9 Modstand

220 ohm

2 SMD Ind i notesblok
E6 Lysdiode

AL102G

1 Rød Ind i notesblok
E7 Lysdiode

AL307G

1 Grøn Ind i notesblok
E3 LCD displayMed I2C interface1 Grøn baggrundsbelysning Ind i notesblok
E5 ServoSG901 180 grader Ind i notesblok
E2 Summer5B1 Bu Ind i notesblok
E4 Tastatur4X41 Matrix Ind i notesblok
Ikke Breadboard640 point1 Ingen lodning

I denne lektion lærer vi, hvordan man gør enkelt system, som låser låsen op ved hjælp af en elektronisk nøgle (Tag).

I fremtiden kan du ændre og udvide funktionaliteten. Tilføj for eksempel funktionen "tilføj nye nøgler og fjern dem fra hukommelsen". I det grundlæggende tilfælde skal du overveje et simpelt eksempel, når en unik nøgleidentifikator er forudindstillet i programkoden.

I denne tutorial skal vi bruge:

For at implementere projektet skal vi installere bibliotekerne:

2) Nu skal du tilslutte en Buzzer, som giver et signal, hvis nøglen udløses og låsen åbner, og et andet signal, når låsen er lukket.

Vi forbinder summeren i følgende rækkefølge:

Arduino Summer
5V VCC
GND GND
pind 5 IO

3) Servoen vil blive brugt som en oplåsningsmekanisme. En hvilken som helst servo kan vælges, afhængigt af de dimensioner og kræfter, som du krævede, som servoen skaber. Servoen har 3 stifter:

Mere tydeligt kan du se, hvordan vi koblede alle modulerne på billedet nedenfor:

Nu, hvis alt er forbundet, så kan du fortsætte til programmering.

Skitse:

#omfatte #omfatte #omfatte // "RFID" bibliotek. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); usigneret lang uidDec, uidDecTemp; // for at gemme etiketnummeret i decimalformat Servo servo; void opsætning () (Serial.begin (9600); Serial.println ("Venter på kort ..."); SPI.begin (); // initialisering SPI / Init SPI bus.mfrc522.PCD_Init (); // initialisering MFRC522 / Init MFRC522 card.servo.attach (6); servo.write (0); // sæt servoen til lukket) void loop () (// Find en ny etiket, hvis (! Mfrc522.PICC_IsNewCardPresent ()) (return) ; ) // Vælg en etiket, hvis (! Mfrc522.PICC_ReadCardSerial ()) (return;) uidDec = 0; // Issue serienummer etiketter. for (byte i = 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

Lad os se nærmere på skitsen:

For at finde ud af kortets UID (Tags), skal du skrive denne skitse til arduino, samle kredsløbet beskrevet ovenfor og åbne konsollen (Seriel portovervågning). Når du bringer mærket til RFID'en, vil et nummer blive vist i konsollen

Det resulterende UID skal indtastes i følgende linje:

If (uidDec == 3763966293) // Sammenlign Uid af etiketten, hvis den er lig med den givne, åbner servoen ventilen.

Hvert kort har en unik identifikator og gentager sig ikke. Når du således medbringer kortet, hvis identifikator du har indstillet i programmet, åbner systemet adgang ved hjælp af et servodrev.

Video:

Værten for youtube-kanalen "AlexGyver" blev bedt om at lave en elektronisk lås med sine egne hænder. Velkommen til cyklussen af ​​videoer om elektroniske låse på arduino. V generel oversigt mesteren vil forklare ideen.

Der er flere muligheder for at oprette et system elektronisk lås... Oftest bruges de til at låse døre og skuffer, skabe. Og også til oprettelse af gemmesteder og hemmelige pengeskabe. Derfor skal du lave en mock-up, der er praktisk at arbejde med, og du kan tydeligt og detaljeret vise systemets opbygning indefra og udefra. Derfor besluttede jeg at lave en ramme med en dør. Dette vil kræve firkantet bjælke 30 x 30. Krydsfiner 10mm. Dørhængsler... I starten ville jeg lave en krydsfinerkasse, men jeg huskede, at alt i rummet var fyldt med reservedele. Der er ingen steder at sætte sådan en kasse. Derfor vil der blive lavet et layout. Hvis nogen vil sætte sig selv en elektronisk lås, kan du nemt gentage alt, når du ser på layoutet.

Alt hvad du behøver til et slot kan findes i denne kinesiske butik.

Målet er at udvikle så meget som muligt effektive ordninger og firmware til elektroniske låse. Du vil være i stand til at bruge disse resultater til at installere disse systemer på dine døre, skuffer, skabe og gemmesteder.

Døren er klar. Nu skal du finde ud af, hvordan du åbner og lukker elektronisk. Til disse formål er en kraftig magnetlås fra aliexpress egnet (link til butikken ovenfor). Hvis du tilfører spænding til terminalerne, åbnes den. Spolens modstand er næsten 12 ohm, hvilket betyder, at ved en spænding på 12 volt vil spolen forbruge omkring 1 ampere. Vil klare sådan en opgave og lithium batteri og et step-up modul. Vi justerer til den passende spænding. Selvom lidt mere er muligt. Låsen er fastgjort til inde dørene er på afstand, så de ikke griber i kanten og kan smækkes. Låsen skal være et modstykke i formen metalkasse... Det er ubelejligt og forkert at bruge det uden. Vi bliver nødt til at sætte et skridt, i det mindste for at skabe udseendet af normalt arbejde.

I tomgangstilstand åbner låsen normalt, det vil sige, hvis der er et håndtag på døren, giv en impuls, åbn døren ved håndtaget. Men hvis du springer det op, er denne metode ikke længere egnet. Boost-konverteren kan ikke klare belastningen. For at åbne den fjederbelastede dør skal du bruge et større batteri og en kraftigere konverter. Enten strømforsyningen og hammeren på systemets autonomi. V kinesiske butikker have pokker store størrelser... De er velegnede til kasser. Strøm kan leveres ved hjælp af et relæ eller en transistor-mosfet, eller en strømafbryder på den samme transistor. En mere interessant og billigere mulighed er et servodrev forbundet til en forbindelsesstang med ethvert låseelement - en lås eller en mere seriøs ventil. Han kan også have brug for et stykke ståleger, der fungerer som en plejlstang. Et sådant system behøver ikke meget strøm. Men hun tager mere plads og mere vanskelig kontrollogik.

Der er to typer servoer. Lille, svag og kraftfuld, som du trygt kan skubbe ned i huller i seriøse metalstifter. Begge viste muligheder virker på både døre og skuffer... Du bliver nødt til at pille ved kassen og lave et hul i glidevæggen.

Anden del