Kodu grad na Arduinov: povezava, vezja, institucija

Mnogi ljudje resno razmišljajo o namestitvi kodne ključavnice na svoja vrata, ki jo je mogoče odpreti brez ključa. Seveda lahko kupite že pripravljeno ključavnico in jo namestite, vendar bodo stroški v tem primeru precej visoki. In če govorite o zanesljivosti, potem lahko najdete možnosti in boljše. V tem članku vam bomo povedali o kodni ključavnici na Ardouinih in se pogovorili o tem, kako jo povezati.

Kodovaya grad na Arduinovu: načelo dela

Dejstvo je, da je načelo njegovega delovanja precej preprosto, na zunanji strani vrat je tipkovnica, s katero se vnese geslo. Na zunanji strani vrat je še ena konstrukcija ključavnice. Če morate zapustiti sobo, morate pritisniti "+", vnesti geslo za vnos. Vrata se zaprejo za pomoč nemščine, kar zagotavlja zanesljivost zapiranja.

Kaj je potrebno za montažo

Zbiranje takega gradu je problematično, ker morate najti vse sestavne dele, ki se ne prodajajo vedno v rednih trgovinah. Zato za standardno kompilacijo potrebujemo:

  • Snop žice za glavo grede, 30 kosov bo več kot dovolj.
  • Nato morate kupiti dva vtiča in vtičnice RJ45.
  • L293D.
  • Sprožilec osrednjega gradu. Lahko se uporablja z VAZ - optimalno za ceno in funkcionalnost.
  • Giron - lahkovzeti iz starega okna, tukaj ni težav.
  • Še vedno potrebujemo 12-voltno vozlišče D-LINK.
  • Daljinski upravljalnik iz varnostnega alarma, ki ga najdete v vsaki trgovini z elektroniko.
  • Arduino protoshield + maketa.
  • Arduino UNO.
  • Tudi brez vijaka. Velik bi moral biti, da se pri izbiri ne bi zmotilo, glejte spodnjo fotografijo.
  • Praviloma boste za nakup vseh teh podatkov morali plačati 40-50 dolarjev. Znesek je majhen, vendar je odvisno od vas, da napnete ali namestite delovni model. Če želite namestiti in povezati drug z drugim, boste morali porabiti več ur, pod pogojem, da naredite vse pravilno.

    Programiranje kodne ključavnice

    Priporočamo, da uporabite kodo na uradni strani razvijalca, izgleda tako:

    #include & lt; Geslo.h & gt;

    #include & lt; Keypad.h & gt;

  • Geslo za geslo = Geslo («0000»);
  • constbyte ROWS = 4;
  • constbyte COLS = 3;
  • charkeys [ROWS] [COLS] = {
  • {
  • „1“, „2“, „3“}
  • ,
  • {
  • „4“, „5“, „6“}
  • ,
  • {
  • „7“, „8“, „9“}
  • ,
  • {
  • „*“, „0“, „#“}
  • };
  • byte rowPins [ROWS] = {
  • 3, 4, 5, 6;
  • bajt colPins [COLS] = {
  • 7, 8, 9};
  • Tipkovnica s tipkovnico = tipkovnica (makeKeymap (ključi), vrstice, colPins, ROWS, COLS);
  • bajt zaprt = 0;
  • bajt Gerkon = 2;
  • bajt LedRed = 12;
  • bajt LedGreen = 13;
  • bajt MotorPin1 = 0;
  • bajt MotorPin2 = 1;
  • bajt MotorPinGo = 11;
  • boolean programMode =false ;
  • intspeakerPin = 10;
  • voidsetup () {
  • PinMode (MotorPin1, OUTPUT);
  • PinMode (MotorPin2, OUTPUT);
  • PinMode (LedRed, IZHOD);
  • PinMode (LedGreen, IZHOD);
  • PinMode (zvočnikPin, IZHOD);
  • PinMode (Gerkon, INPUT);
  • digitalni zapis (Gerkon, HIGH);
  • digitalWrite (LedRed, LOW);
  • digitalWrite (LedGreen, LOW);
  • digitalWrite (MotorPin1, LOW);
  • digitalWrite (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, LOW);
  • addEventListener.(tipkovnicaEvent);
  • setDebounceTime
  • ;
  • startupSound ();
  • }
  • voidloop () {
  • char key = getKey ();
  • če (Closed == 1) {
  • digitalni zapis (LedRed, HIGH);
  • digitalWrite (LedGreen, LOW);
  • }
  • Drugo {
  • digitalWrite (LedRed, LOW);
  • digitalni zapis (LedGreen, HIGH);
  • ]
  • voidkeypadEvent (tipka KeypadEvent) [
  • stikalo (getState ()) {
  • primer PRESSED:
  • stikalo (ključ) {
  • primer '#':
  • guessPassword ();
  • digitalWrite (LedRed, LOW);
  • zlom ;
  • primer '*':
  • CloseBolt ();
  • digitalWrite (LedRed, LOW);
  • digitalWrite (LedGreen, LOW);
  • prekinitev ;
  • privzeto:
  • if (key! = NO_KEY) {
  • }
  • append (key);
  • digitalWrite (LedRed, HIGH);
  • analogni zapis (zvočnikPin, 128);
  • break ;
  • }
  • zlom ;
  • primer:
  • stikalo (ključ) {
  • privzeto:
  • digitalWrite (LedRed, LOW);
  • analogni zapis (zvočnikPin, 0);
  • zlom ;
  • }
  • zlom ;
  • }
  • }
  • voidguessPassword () {
  • če (oceni ()) {
  • če (Zaprto == 1){
  • digitalWrite (LedGreen, HIGH);
  • OpenBolt ();
  • digitalWrite (LedGreen, LOW);
  • ponastavitev ();
  • }
  • }
  • else {
  • digitalWrite (LedGreen, LOW);
  • ponastavitev ();
  • errorSound ();
  • }
  • }
  • voidstartupSound ()
  • {
  • int note = (1/33)* 500000;
  • za (int _ = 0; _ <100000 /note; _ ++) {
  • zakasnitev mikrosekund (opomba);
  • digitalWrite (zvočnikPin, HIGH);
  • zakasnitev mikrosekund (opomba);
  • digitalWrite (zvočnikPin, LOW);
  • }
  • opomba = (1/25) * 500000;
  • za (int _ = 0; _ <100000 /note; _ ++) {
  • zakasnitev mikrosekund (opomba);
  • digitalWrite (zvočnikPin, HIGH);
  • zakasnitev mikrosekund (opomba);
  • digitalWrite (zvočnikPin, LOW);
  • }
  • opomba = (1/26) * 500000;
  • za (int _ = 0; _ <100000 /note; _ ++) {
  • zakasnitev mikrosekund (opomba);
  • digitalWrite (zvočnikPin, HIGH);
  • zakasnitev mikrosekund (opomba);
  • digitalWrite (zvočnikPin, LOW);
  • ​​
  • }
  • }
  • voiderrorSound ()
  • = 2000;
  • za (int vez = 0; vez <2; vez ++) {
  • za (int _ = 0; _ <30; _ ++) {
  • delayMicrosecondsn);
  • digitalWrite (zvočnikPin, HIGH);
  • zakasnitev mikrosekund (n);
  • digitalWrite (zvočnikPin, LOW);
  • }
  • zamuda
  • ;
  • }
  • }
  • voidopenSound ()
  • {
  • int n = 300;
  • za (int vez = 0; vez <3; vez ++) {
  • za (int _ = 0; _ <100; _ ++) {
  • delayMicrosecondsn);
  • digitalWrite (zvočnikPin, HIGH);
  • zakasnitev mikrosekund (n);
  • digitalWrite (zvočnikPin, LOW);
  • }
  • zakasnitev
  • ;
  • }
  • }
  • voidOpenBolt ()
  • {
  • če (Zaprto == 1) {
  • digitalWrite (MotorPin1, LOW);
  • digitalni zapis (MotorPin2, HIGH);
  • digitalWrite (MotorPinGo, HIGH);
  • zamuda

    ;

  • digitalWrite (MotorPin1, LOW);

  • digitalni zapis (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, LOW);
  • Zaprta = 0;
  • openSound ();
  • }
  • }
  • voidCloseBolt ()
  • {
  • če (Zaprto == 0) {
  • closeSound1 ();
  • do
  • zamuda
    ;
  • } medtem ko (digitalRead (Gerkon) == 1);
  • zakasnitev (3000);//počakajte 3 sekunde
  • digitalWrite (MotorPin1, HIGH);
  • digitalWrite (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, HIGH);
  • zakasnitev

    ;

  • digitalni zapis (MotorPin1, LOW);
  • digitalWrite (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, LOW);
  • Zaprta = 1;
  • closeSound2 ();
  • }
  • }
  • voidcloseSound1 ()
  • {
  • int n = 200;
  • za (int vez = 0; vez <2; vez ++) {
  • za (int _ = 0; _ <100; _ ++) {
  • zakasnitev mikroskopov (n);
  • digitalWrite (zvočnikPin, HIGH);
  • zakasnitev mikrosekund (n);
  • digitalWrite (zvočnikPin, LOW);
  • }
  • zamuda
  • ;
  • }
  • }
  • voidcloseSound2 ()
  • {
  • int = 450;
  • za (int _ = 0; _ <110; _ ++) {
  • zakasnitev mikrosekund (n);
  • digitalWrite (zvočnikPin, HIGH);
  • zakasnitev mikrosekund (n);
  • digitalWrite (zvočnikPin, LOW);
  • }
  • }
  • Postopek zbiranja: fotografija in video

    Najprej vam pokažemo nekaj fotografij o tem, kako jih zbrati in namestiti.

    To izgleda kot kodna ključavnica v povezavi z aktuatorjem.

    Priključite napajalnik.

    Špagoleta, ki pokriva vse naše modele.

    Kako priključiti kodno ključavnico Arduino: video

    Preberite tudi: kako skriti žice iz računalnika.