- Luettelo komponenteista
- Piirikaavio Arduino-näppäimistön oven lukolle
- Arduino-koodi digitaalisen näppäimistön oven lukolle
- Arduino-näppäimistön ovilukon kokoaminen ja testaus
Usein meidän on suojattava huone kodeissamme tai toimistossamme (ehkä salaisen osaston laboratoriossa), jotta kukaan ei pääse huoneeseen ilman lupaa ja varmistaa suojan tärkeiden lisävarusteidemme ja omaisuutemme varkauksilta tai katoamiselta. Nykyään on olemassa niin monenlaisia turvajärjestelmiä, mutta kulissien takana todentamista varten kaikki välittävät sormenjäljet, verkkokalvoskannerin, iiriskannerin, kasvotunnuksen, kieliskannerin, RFID-lukijan, salasanan, PIN-koodin, kuviot jne. edullinen on käyttää salasanaa tai PIN-pohjaista järjestelmää. Joten tässä projektissa olen rakentanut Arduino-näppäimistön ovilukon, joka voidaan asentaa mihin tahansa olemassa olevaan oveen suojaamaan ne digitaalisella salasanalla. Aikaisemmin olemme rakentaneet myös muita mielenkiintoisia ovilukkoja, jotka on lueteltu alla.
- Arduino RFID-oven lukko
- Arduino-solenoidilukko
- Digitaalinen Raspberry Pi -koodilukko
- 555 Ajastin elektroninen oven lukko
Ennen salasanan ovien lukitusprojektin rakentamista meidän on ensin kerättävä tarvittavat komponentit ja jatkettava sitten vaiheittaista rakentamisprosessia.
Luettelo komponenteista
- Arduino Uno / Pro / Mini tai mukautettu kortti Atmega 328p-mikrokontrollerilla
- 16 x 2 LCD (nestekidenäyttö)
- 4 x 3 tai 4 x 4 matriisinäppäimistö Arduinolle
- Servo moottori
- 3D-painettu ovenkaappi / räätälöity ovikaappi
- Lisäkomponentit 1 ampeerin 5 voltin matkapuhelimen virtalähteelle
- 4 '' / 6 '' muovilaatikot, hyppyjohdot, mutteripultit, muovikotelo jne.
Piirikaavio Arduino-näppäimistön oven lukolle
Arduino-pohjaisen digitaalisen näppäimistön oven lukitusprojektin täydellinen kytkentäkaavio on esitetty alla.
Ensinnäkin aloitamme tämän projektin aivoista, joka on Arduino UNO -lauta. Arduino-kortti on kytketty LCD-näyttöön ja servomoottoriin. Servomoottoria käytetään oven salvan työntämiseen (lukitsemiseen) tai vetämiseen (avaamiseen). Arduinon viestin näyttämiseen vaaditaan 16 x 2 nestekidenäyttö, 16 x 2 tarkoittaa, että siinä on 16 sarakemäärää ja 2 riviriviä. Jos olet täysin uusi 16x2 LCD -näyttömoduuleista, voit tutustua tähän Arduino LCD Interfacing -opetusohjelmaan.
Täällä käytän 5v Towerpro SG90- servomoottoria räätälöityjen ovikaappien valmistamiseen. Se on perustason servomoottori ja toimii hyvin Arduinon kanssa ilman ajopiiriä tai ulkoista moduulia. Tämän servomoottorin kustannukset ovat myös hyvin pienet, joten sinulla on varaa ostaa se helposti. Voit myös tarkistaa tämän Arduino-servomoottorin ohjauksen opetusohjelman saadaksesi lisätietoja servomoottorista ja sen toiminnasta. Liitä servomoottori Arduino Digital -tapilla D9 ja 5 voltin virtalähteellä. Tässä servomoottorissa on yhteensä 3 tulojohtoa (GND, + 5V & SIGNAL LINE).
Tässä projektissa olen käyttänyt 4 x 4 matriisinäppäimistöä (mutta 4 x 4 näppäimistön osaa ei ole saatavana fritzingissä tämän graafisen esityksen tekemiseksi), mutta älä huoli, koska 4 x 3 matriisinäppäimistö toimii hyvin myös koodaukseni kanssa. Tarvitsemme näppäimistön salasanan syöttämistä varten ja lukitsemme räätälöidyn ovikaapin manuaalisesti. Se koostuu 16 näppäimestä (pehmeä kytkin) 4 näppäimestä rivillä (R1, R2, R3, R4) ja 4 näppäimestä sarakkeissa (C1, C2, C3, C4), kun näppäintä painetaan, se muodostaa yhteyden vastaavien rivien väliin ja sarakkeet. Alla oleva taulukko näyttää, kuinka Arduino liitetään näppäimistöön.
Näppäimistö | Arduino |
Tappi 1 (rivi 1) | Digitaalinen tappi 1 |
Tappi 2 (rivi 2) | Digitaalinen tappi 2 |
Tappi 3 (rivi 3) | Digitaalinen tappi 3 |
Tappi 4 (rivi 4) | Digitaalinen tappi 4 |
Tappi 5 (sarakkeet 5) | Digitaalinen tappi 5 |
Tappi 6 (sarakkeet 6) | Digitaalinen tappi 6 |
Tappi 7 (sarakkeet 7) | Digitaalinen tappi 7 |
Arduino-koodi digitaalisen näppäimistön oven lukolle
Arduino-oven lukituskoodi löytyy tämän sivun alaosasta. Voit ladata koodin suoraan, mutta on suositeltavaa lukea seuraavat kappaleet ymmärtääksesi koodin toiminnan. Lisäksi on tärkeää varmistaa, että olet lisännyt seuraavan näppäimistökirjaston Arduino IDE -laitteeseesi koodin onnistuneeksi kääntämiseksi. Voit tehdä tämän avaamalla alla olevan linkin ja lataamalla ZIP-tiedoston. Siirry sitten Arduino IDE -laitteessasi kohtaan Luonnos -> Sisällytä kirjasto -> Add.ZIP-kirjasto ja etsi juuri lataamasi tiedosto.
- Arduino-näppäimistökirjasto
Kun olet lisännyt kaikki otsikko- ja kirjastotiedostot, määritä kaikki nastat LCD-näytölle, määritä salasanan pituus ja aseta servon alkuasentoon 0. Sen jälkeen ota "char" -tietotyyppi ilmoittaaksesi numeron, johon sitä voidaan pitää, mukaan lukien tyhjä merkki.
//#sisältää
Tällä koodilla (char Master = "123456";) - ilmoitan Char Master -kohdassa oven lukon salasanan, määritän sitten näppäimistön rivien ja sarakkeiden määrän sekä ilmoitan keyMaps ja muodostan yhteyden riveihin ja sarakkeita. Alusta tyhjät asetukset -kohdassa servosignaalinapa D9, servotila suljettu ja tulosta projektin / laitteen / yrityksen nimi 3 sekunnin viiveellä laitteen käynnistyksen nestekidenäytössä.
void setup () {myservo.attach (9); ServoSulje (); lcd.begin (16, 2); lcd.print ("Arduino-ovi"); lcd.setCursor (0, 1); lcd.print ("- Katso projekti -"); viive (3000); lcd.clear (); }
Loop-toiminnon alla on yksinkertainen if-else-ehto. Tilan mukaan (se lukittuu automaattisesti), tulosta "Ovi on lähellä" 3 sekunnin viiveellä ja servo pyörii kiinni-asentoon, oven tiedot lasketaan yhdeksi, muuten oven kaappi pysyy auki ja datan määrä 0, servo auki kiertää asentoon 0 asteesta 180 asteeseen ja sen sulkemiseen menee 180: stä 0. Servo-avaus- ja servosulku-toiminnot näkyvät alla.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// siirtyy 0 asteen ja 180 asteen välillä // 1 asteen askelin myservo.write (pos); // käske servoa menemään asentoon muuttujassa 'pos' delay (15); // odottaa 15 ms, kunnes servo saavuttaa sijainnin}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// menee 180 asteen ja 0 asteen välillä myservo.write (pos); // käske servoa menemään asentoon muuttujassa 'pos' delay (15); // odottaa 15 ms, kunnes servo saavuttaa sijainnin}}
Kirjoita servon sijainti 15 sekunnin viiveellä servoasennon saavuttamiseksi. Tulosta tyhjät auki -toiminnon alla nestekidenäytölle “Anna salasana”. Ehdossa määritetään, että syötetyn salasanan on oltava sama kuin mukautetun avaimen, tässä rungon tiedoissa lasketaan ja tallennetaan hiili tietoryhmään, inkrementoitu ja syötetty salasana tulostetaan LCD-näytölle, jos datan pituus (avaimen lukumäärä) ja syöttösalasana vastaavat Data Masteria (jos ennalta määritetyt avaimet ovat läsnä). Kun toiminto-LCD-näyttö on tyhjä, servo-asema, tulosta nestekidenäytölle ”Ovi on auki” ja datalaskuri nollataan.
Jos syöttöavain ei ole sama kuin Data Master, LCD-näytöllä selkeän tulostuksen LCD-näytöllä “Väärä salasana“ ilmoitetaan yhden sekunnin viiveellä ja se pysyy lukitusasennossaan, kun datalaskuri asettaa 1 ja jatkaa tätä prosessia.
if (data_luku == Salasanan pituus - 1) // jos taulukkoindeksi on yhtä suuri kuin odotettujen merkkien määrä, vertaa tietoja pääluokkaan {if (! strcmp (Data, Master)) // yhtä suuri kuin (strcmp (Data, Master) == 0) {lcd.selvä (); ServoOpen (); lcd.print ("Ovi on auki"); ovi = 0; } else {lcd.clear (); lcd.print ("Väärä salasana"); viive (1000); ovi = 1; } Puhdas data(); }
Arduino-näppäimistön ovilukon kokoaminen ja testaus
Asenna nyt kaikki 4 tuuman / 6 tuuman muovilaatikkoon ja käynnistä se mobiililaturilla, aseta kaikki mukavasti koteloon. Ihannetapauksessa olisin voinut käyttää 3D-tulostusta lukkoni kokoamiseen, mutta tiedostojen suunnittelun jälkeen huomasin, että 3D-tulostus on erittäin kallista, joten korjasin vain servon ensin, kytkin sitten normaalin liukukotelon servoani metallilevyllä ja peitin se lasikuidulla, vaikka se toimii hyvin, on vähemmän turvallinen.
Jos haluat lisää turvallisuutta, sinun on tulostettava 3D-oven lukitusmalli, joka toimii sisäisesti tämän servon kanssa. Voit ladata tarvittavat STL-tiedostot alla olevasta linkistä ja tulostaa ne 3D-muodossa, jos sinulla on pääsy 3D-tulostimeen.
Lataa STL-tiedostot 3D-tulostusta varten
Suunnittelutiedostot näkyvät myös alla olevassa kuvassa.
Projektin alussa, kun käynnistämme sen ensimmäisen kerran, meidän on annettava projektin nimi (voit näyttää myös yrityksen nimen), jotta se näyttää fiksulta ja ylelliseltä kuin kaupallinen laite (kuten voit nähdä alla oleva kuva).
Kanssa 3 sekunnin viive, nopeasti lukita oven ja suoraan tarkistaa näytössä tilan oven lukko, kuten on esitetty kuvan alla.
Kun lukitset oven manuaalisesti painamalla “#” -näppäintä, se osoittaa ensin, että ovi on kiinni 1 sekunnin ajan, ja sitten se näyttää Enter Password. Toisaalta, kun ovi avataan avaamalla oikea salasana, se osoittaa, että ovi on auki.
Jos ovi pysyy auki-tilassa, se näkyy - Ovi on auki niin kauan kuin lukitset oven manuaalisesti koodauksen mukaan. Olen antanut koodin ja voit mukauttaa asetuksia muuttamalla koodinäyttöparametriä tarpeen mukaan. Voit myös tarkistaa tämän sivun alaosassa linkitetyn videon käytön.