- Összetevők listája
- Áramvázlat az Arduino kezelő ajtózárhoz
- Arduino kód a digitális kezelő ajtózárhoz
- Arduino Kezelő DoorLock összeállítás és tesztelés
Gyakran meg kell biztosítanunk egy szobát otthonunkban vagy irodánkban (esetleg egy titkos ügynök laboratóriumában), hogy senki ne férhessen be a szobánkba engedélyünk nélkül, és biztosítson védelmet fontos tartozékaink és eszközeink ellopása vagy elvesztése ellen. Olyan sok biztonsági rendszer létezik ma, de a színfalak mögött, a hitelesítés érdekében mind az ujjlenyomatot, a retina szkennert, az írisz szkennert, az arc azonosítót, a nyelv szkennert, az RFID olvasót, a jelszót, a PIN kódot, a mintákat stb. Közvetítik. az alacsony költségű jelszó vagy PIN-alapú rendszer használata. Tehát ebben a projektben felépítettem egy Arduino kezelői ajtózárat, amely bármelyik meglévő ajtóhoz felszerelhető, hogy digitális jelszóval rögzítse őket. Korábban más érdekes ajtózárakat is építettünk, amelyeket az alábbiakban sorolunk fel.
- Arduino RFID ajtózár
- Arduino mágnesszelepes ajtózár
- Raspberry Pi digitális kódzár
- 555 Időzítő elektronikus ajtózár
A jelszóval ellátott ajtózár projekt megépítése előtt először össze kell gyűjtenünk a szükséges alkatrészeket, majd folytatnunk kell a lépéseket lépésről lépésre.
Összetevők listája
- Arduino Uno / Pro / Mini vagy Custom kártya az Atmega 328p mikrovezérlő használatával
- 16 x 2 LCD (folyadékkristályos kijelző)
- 4 x 3 vagy 4 x 4 mátrixos kezelő az Arduino számára
- Szervómotor
- 3D nyomtatott ajtószekrény / testreszabott ajtószekrény
- Kiegészítő alkatrészek 1 Amp 5 voltos mobil töltő áramellátásához
- 4 "/ 6" műanyag dobozok, jumper huzalok, anyacsavarok, műanyag burkolat stb.
Áramvázlat az Arduino kezelő ajtózárhoz
Az Arduino alapú digitális billentyűzet Ajtózár projektünk teljes kapcsolási rajza az alábbiakban látható.
Először is ennek a projektnek az agyából indulunk ki, amely az Arduino UNO fórum. Az Arduino tábla LCD-hez és szervomotorhoz van csatlakoztatva. A szervomotort az ajtó reteszének tolására (reteszelésére) vagy meghúzására (kinyitására) használják. Az Arduino üzenetének megjelenítéséhez 16 x 2 LCD szükséges, 16 x 2 azt jelenti, hogy 16 oszlop és 2 sor sor van. Ha Ön teljesen új a 16x2-es LCD-kijelző modulokhoz, akkor ellenőrizze ezt az Arduino LCD-interfész oktatóanyagot, hogy többet tudjon meg róla.
Itt egy 5 V-os Towerpro SG90 szervomotort használok a személyre szabott ajtós szekrényünk elkészítéséhez. Ez egy alapszintű szervomotor, és tökéletesen működik az Arduino-val, vezetési áramkör vagy külső modul nélkül. Emellett ennek a szervomotornak a költsége is nagyon alacsony, így könnyen megengedheti magának, hogy megvásárolja. Megtekintheti ezt az Arduino szervomotor vezérlés oktatóanyagot is, hogy többet tudjon meg a szervomotorról és annak működéséről. Csatlakoztassa a szervomotort az Arduino Digital D9 tűhöz és egy 5 voltos tápegységhez. Ennek a szervomotornak összesen 3 bemeneti vonala van (GND, + 5V és SIGNAL LINE).
Ebben a projektben egy 4 x 4 mátrixos billentyűzetet használtam (de a 4 x 4 kezelő rész nem áll rendelkezésre fritingben ennek a grafikus ábrázolásnak a készítéséhez), de ne aggódjon, mivel a 4 x 3 mátrix kezelő is jól működik a kódolásommal. Szükségünk van egy billentyűzetre a jelszó megadásához, és manuálisan zárhatjuk testreszabott ajtós szekrényünket. 16 gombból (soft switch) áll, 4 gomb a sorokban (R1, R2, R3, R4) és 4 gomb az oszlopokból (C1, C2, C3, C4), amikor egy gombot megnyomnak, kapcsolatot létesít a megfelelő sorok között és oszlopok. Az alábbi táblázat bemutatja az Arduino és a Kezelő összekapcsolásának módját.
Kezelő | Arduino |
1. tű (1. sor) | Digital Pin1 |
2. tű (2. sor) | Digital Pin 2 |
3. tű (3. sor) | Digitális tű 3 |
4. tű (4. sor) | Digitális tű 4 |
5. tű (5. oszlop) | 5. digitális tű |
6. tű (6. oszlop) | Digitális tű 6 |
7. tű (7. oszlop) | Digitális tű 7 |
Arduino kód a digitális kezelő ajtózárhoz
A teljes Arduino ajtózár kód az oldal alján található. Közvetlenül feltöltheti a kódot, de a kód működésének megértése érdekében ajánlott elolvasni az alábbi bekezdéseket. Fontos továbbá ellenőrizni, hogy a következő billentyűzet könyvtárat adta-e az Arduino IDE-hez a kód sikeres fordításához. Ehhez nyissa meg az alábbi linket, és töltse le a ZIP fájlt. Ezután az Arduino IDE-n keresse meg a Sketch -> Include Library -> Add.ZIP Library elemet, és keresse meg az imént letöltött fájlt.
- Arduino Kezelő Könyvtár
Az összes fejléc- és könyvtárfájl beillesztése után rendelje hozzá az összes tűt az LCD-hez, határozza meg a jelszó hosszát, és állítsa a szervo kezdeti helyzetét 0 értékre. Ezt követően vegye be a "char" adattípust a számot tartalmazó szám deklarálásához, beleértve null karakter.
// # tartalmazza
Ezzel a kóddarabbal (char Master = "123456";) - a Char Master alatt kijelentem az ajtózár jelszavát, majd hozzárendelem a sorok és oszlopok számát a billentyűzeten, valamint deklarálom a KeyMaps-t és összekapcsolódom sorokkal és oszlopok. Az érvénytelen beállítás alatt inicializálja a D9 szervo jelcsapot, a szervo állapota zárva van, és 3 másodperces késleltetéssel nyomtassa ki a projekt / eszköz / vállalat nevét az eszköz elindításának LCD-idejére.
void setup () {myservo.attach (9); ServoClose (); lcdbegin (16, 2); lcd.print ("Arduino ajtó"); lcd.setCursor (0, 1); lcd.print ("- Look projekt -"); késés (3000); lcd.clear (); }
A ciklusfüggvény alatt ott van az egyszerű if-else feltétel. Az állapotnak megfelelően (automatikusan záródik) nyomtassa ki az „Ajtó bezárva” nyomtatást 3 másodperces késleltetéssel, és a szervo elfordul záró helyzetbe, az ajtó adatai 1-nek számítanak, különben az ajtó szekrény nyitva marad és az adatok száma 0, a nyitott szervo 0 állásba forog foktól 180 fokig, bezárásához pedig 180-ról 0. A szervo nyitás és a szervo bezárás funkciók az alábbiakban láthatók.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// 0 fokról 180 fokra // megy 1 fokos lépésekben myservo.write (pos); // utasítsa a szervót, hogy menjen a változó 'pos' késleltetésbe (15); // 15 ms-ot vár, amíg a szervo eléri a pozíciót}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// 180 fokról 0 fokra megy myservo.write (pos); // utasítsa a szervót, hogy álljon a változó 'pos' késleltetésben (15); // 15 ms-ot vár, amíg a szervo eléri a pozíciót}}
Írja meg a szervo helyzetét 15 másodperces késéssel, hogy elérje a szervó helyzetét. A void open funkció alatt nyomtasson az „Enter Password” LCD-re, majd a feltétel megadja, hogy a beírt jelszónak meg kell egyeznie az egyedi kulccsal, ezen a törzsadaton belül az adatok meg vannak számlálva és eltárolják a char-t az adattömbben, növekszik és a bemeneti jelszó LCD-re nyomtatva az adathossz (a kulcs száma) és a beviteli jelszó megegyezik a Data Master-rel (ahol az előre definiált kulcsok vannak). Ezután törölje az LCD-t, szervo-meghajtóként az LCD-t „Az ajtó nyitva van”, és az adatszámláló nullázódik.
Ha a beviteli kulcs nem egyezik a Data Master programmal, akkor az LCD kijelzőn a „Hibás jelszó” nyomtatással 1 másodperc késéssel kell értesíteni, és az 1-es adatszámlálókra állítva zárolási helyzetben marad, és ezt a folyamatot egy hurokban folytatja.
if (data_count == Password_Lenght - 1) // ha a tömbindex megegyezik a várható karakterek számával, hasonlítsa össze az adatokat a masterrel {if (! strcmp (Data, Master)) // egyenlő (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Az ajtó nyitva van"); ajtó = 0; } else {lcd.clear (); lcd.print ("Hibás jelszó"); késés (1000); ajtó = 1; } adatok törlése(); }
Arduino Kezelő DoorLock összeállítás és tesztelés
Most helyezzen el mindent egy 4 hüvelykes / 6 hüvelykes műanyag dobozon, és töltse be egy mobil töltővel, mindent szépen sorba rendezzen a ház segítségével. Ideális esetben a 3D nyomtatást felhasználhattam volna a záram összeállításához, de a fájljaim megtervezése után megállapítottam, hogy a 3D nyomtatás nagyon költséges, ezért először csak a szervót rögzítettem, majd a normál csúszka szekrényt fémlemez segítségével csatlakoztattam a szervómhoz és letakartam üvegszállal, bár jól működik, kevésbé biztonságos.
Ha nagyobb biztonságra vágyik, ki kell nyomtatnia egy 3D ajtózár modellt, amely belsőleg működik ezzel a szervóval. Letöltheti a szükséges STL fájlokat az alábbi hivatkozásból, és 3D-ben kinyomtathatja őket, ha rendelkezik 3D nyomtatóval.
Töltse le az STL fájlokat a 3D nyomtatáshoz
A tervfájlok az alábbi képen is láthatók.
A projekt elején, abban az pillanatban, amikor először bekapcsoljuk, meg kell adnunk a projekt nevét (megjelenítheti a cég nevét is), így intelligensnek és exkluzívnak tűnik, mint egy kereskedelmi eszköz (amint láthatja az alábbi kép).
A 3 másodperces késleltetést, gyorsan zár az ajtót, és közvetlenül ellenőrizze a kijelzőn az állapota a zár, mint a képen látható alább.
Amikor kézzel zárja be az ajtót a „#” gomb megnyomásával, először az Ajtó zárva van 1 másodpercig üzenet, majd az Enter Password (Jelszó megadása) felirat jelenik meg. Másrészt, ha az ajtót a megfelelő jelszó megadásával oldják fel, akkor az ajtó nyitva van.
Ha az ajtó nyitva marad, akkor megjelenik - Az ajtó nyitva van, amíg kézzel rögzíti az ajtót a kódolásnak megfelelően. Megadtam a kódot, és testreszabhatja a beállításokat a kódmegjelenítési paraméter szükség szerinti megváltoztatásával. Az oldal alján linkelt videóval végzett teljes munkát is ellenőrizheti.