Tartalomjegyzék:
- Kellékek
- 1. lépés: Doboz építése
- 2. lépés: Csatlakozás
- 3. lépés: Könyvtárak letöltése
- 4. lépés: Az ujjlenyomat -érzékelő és az RFID -kártya -érzékelő beállítása
- 5. lépés: A KÓD
- 6. lépés: Fejezze be
Videó: Arduino High Tech Safe: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Ez az én arduino high -tech széfem. A fiók feloldásához be kell olvasnia az ujját, be kell olvasnia a kártyáját, majd be kell írnia egy 4 számjegyű jelszót. Ez a projekt nem ajánlott kezdőknek, mert nagyon fejlett. A kód hosszú, de megosztom ezt a projektben. Az ára körülbelül 75 dollár, ha ugyanazt a széfet építi, mint én. Ez a projekt is 1-3 napig tarthat. Szóval, kezdjük!
Kellékek
Az enyémhez hasonló széf építéséhez szüksége lesz:
Arduino (Uno ajánlott, mert nincsenek lépéseim az arduino mega vagy nano számára. De továbbra is használhatja őket)
kenyeretábla
szervo-
jumper vezetékek
joystick
20*4 (16*4 -et használhat, de módosítania kell a kódot)
ujjlenyomat -leolvasó
mfrc522 RFID kártyaolvasó
egy vödör legót
1. lépés: Doboz építése
Először szüksége lesz egy dobozra az elektronika behelyezéséhez. Használhat legót, 3D nyomtatott dobozt vagy akár kartont! (Bár ez nehezebb lehet) Ne felejtsen el lyukakat tenni a fiók és az elektronika számára. Ha az RFID kártyaolvasót használja, akkor nem kell lyukat tenni, ha a falak vékonyak. A kártyák továbbra is működnek, de be kell zárnia a kulcstartókat, hogy az RFID kártyaolvasó el tudja olvasni őket. Hagyjon helyet az arduino -nak és a vezetékeknek is. MEGJEGYZÉS: Amikor elkészíti a fiókot, hagyjon lyukat benne, hogy a szervó el tudja fordítani és reteszelje a fiókot.
2. lépés: Csatlakozás
Ez a lépés bonyolult lehet, mert a vezetékeket a megfelelő helyre kell csatlakoztatni, különben az elektronika nem fog működni. Nincs kapcsolási rajzom, de elmondom, hogy mindegyik megy. A huzalozás csak az arduino uno számára készült. Ha arduino mega -t vagy nano -t használ, meg kell keresnie a vezetékeket. Ha nem használja az összes elektronikát, akkor csak hagyja ki ezt a kábelezést.
Ujjlenyomat -szkenner: zöld huzal: D2 fehér huzal: D3 fekete huzal: GND piros huzal: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Switch = D4
RFID kártyaolvasó: 3.3V = 3.3V első = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
LCD képernyő: 5V = 5V GND = GND sda = A4 sck = A5
Szervo: piros vezeték: 5V Barna vezeték: GND sárga vezeték: D6
MEGJEGYZÉS: NE CSATLAKOZTASSA RFID KÁRTYA SZKENNERÉT 5 V -ÉRT. HA megteszed, megtörik !!!
Lehet, hogy vajon miért mondtam, hogy csatlakoztassa a joystick tápellátását 3,3 V -ra, amikor az oldalán 5V feliratot ír. Ennek oka az, hogy a szervónak, a képernyőnek és az ujjlenyomat -leolvasónak 5 V -ra van szüksége. Ha ehhez hozzáadja a joystickot, előfordulhat, hogy az elektronika nem működik, mert mindennek 5V -ra van szüksége. A joystick továbbra is működik 3.3V -al. Csak a maximális érték nem 1023, hanem ~ 670 lesz.
3. lépés: Könyvtárak letöltése
Ebben a projektben 6 könyvtárra lesz szüksége az összes elektronika használatához. 1 a szervó, 1 az ujjlenyomat -érzékelő, 2 az RFID kártyaolvasó és 2 a képernyő. A joystickhoz nincs szükség könyvtárra. Nos, mi az a könyvtár? Ez alapvetően egy fájl, amely sok kódot tartalmaz, és amelyet egyszerű parancsokkal használhat a projektben. A könyvtárak beszerzéséhez el kell mennie a GitHub nevű helyre. Ha tudja, hogyan kell letölteni és kicsomagolni a könyvtárakat, akkor a letöltésekhez kattintson az alábbi linkekre. Ha nem tudja, hogyan, keresse fel az utasításomat, amely a könyvtár letöltésének módjáról szól a 3. lépésben:
vagy keressen egy youtube videót arról, hogyan lehet letölteni egy arduino könyvtárat a GitHub -ról
LINKEK LIRÁRIAKHOZ:
Servo
ujjlenyomat-érzékelő:
spi
rfid kártya érzékelő
képernyőkönyvtár 1
képernyőkönyvtár 2
4. lépés: Az ujjlenyomat -érzékelő és az RFID -kártya -érzékelő beállítása
Ez a lépés az ujjlenyomat -érzékelő és az RFID -kártya -érzékelő beállításáról szól. Hacsak nem használta már ujjlenyomat -érzékelőjét, akkor meg kell mutatnia, hogyan néz ki az ujjlenyomat, hogy el tudja menteni a memóriájában. Még ha korábban is használta, valószínűleg meg kell tennie ezt a lépést. Röviden elmondom, hogyan kell ezt megtenni, de ha nincs értelme, akkor ugorjon ugyanahhoz az oktatható linkhez az utolsó lépésben. Nagyon jól megy rajta. Alapvető csak nyitott arduino ide. Nyissa meg a fájlt> példák> adafruit ujjlenyomat -érzékelő> regisztráljon. Töltse fel a kódot az arduino -ba, nyissa meg a soros monitort, és kövesse az utasításokat. Amikor azt mondja, hogy adjon meg egy számot. Írja be az 1#számot.
Most az rfid kártya esetében ez a lépés nagyon egyszerű. Nyílt arduino ide. Lépjen a fájlba> példák> mfrc522> olvassa el a személyes adatokat. Töltse fel az arduino -ba, és nyissa meg a soros monitort. Olvassa be a használni kívánt kártyát vagy kulcstartót, amelyet az érzékelőhöz kapott. Akkor ad némi információt. Keresse meg a kártya azonosítóját, ez 4 db 2 számjegyből áll. Valahogy így: AB 45 2Y 45, de a kódod más lesz. Írd le ezt egy papírra. Később újra szüksége lesz rá. Ennyi erre a lépésre.
5. lépés: A KÓD
A legtöbb ember számára ez lesz a legnehezebb lépés, de nagyon egyszerű. Először másolja ki és illessze be a kódot az arduino ide -ba alulról. Másodszor, szerkessze azt a 2 szakaszt, ahol a KÓD SZERKESZTÉSE felirat szerepel. 1 rész a kártyaolvasó, 1 a joystick. Ezeket a lépéseket nem lehet kihagyni. Ha elkészült, töltse fel a kódot az arduino -ba!
#include #include ujjlenyomat.h>
#befoglalni
#befoglalni
#befoglalni
#befoglalni
LiquidCrystal_I2C LCD (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Adafruit_Ujjlenyomat ujja = Adafruit_Ujjlenyomat (& mySerial);
Szervo szervó;
char d1;
char d2;
char d3;
char d4;
void setup () {
servo.attach (6);
servo.write (170);
lcd. kezdet (20, 4);
Sorozat.kezdet (9600);
while (! Sorozat);
SPI.begin ();
mfrc522. PCD_Init ();
késleltetés (4);
mfrc522. PCD_DumpVersionToSerial ();
késleltetés (100);
Serial.println ("\ n / nAdafruit ujjfelismerő teszt");
ujj.kezdet (57600);
késleltetés (5);
if (finger.verifyPassword ()) {
Serial.println ("Minden rendszer működik");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Kérjük, olvassa be az ujját");
} más {
Serial.println ("HIBA: Az ujjlenyomat -érzékelő nem található!");
lcd.setCursor (0, 0);
lcd.print ("HIBA: Ujjlenyomat");
lcd.setCursor (1, 1);
lcd.print ("az érzékelő nem található!");
míg (1) {késleltetés (1); }
}
finger.getTemplateCount ();
Serial.print ("Az érzékelő tartalmazza"); Soros.nyomat (ujj.templateCount); Serial.println ("sablonok"); Serial.println ("Várakozás az érvényes ujjra …"); }
void (* resetFunc) (void) = 0;
void loop () {
getFingerprintIDez ();
késleltetés (50);
}
uint8_t getFingerprintID () {
uint8_t p = ujj.getImage ();
kapcsoló (p) {
FINGERPRINT_OK eset:
Serial.println ("Kép készítve");
szünet;
FINGERPRINT_NOFINGER eset:
Serial.println ("Nincs ujj észlelve");
visszatérés p;
FINGERPRINT_PACKETRECIEVEERR eset:
Serial.println ("Kommunikációs hiba");
visszatérés p;
FINGERPRINT_IMAGEFAIL eset:
Serial.println ("Képalkotási hiba");
visszatérés p;
alapértelmezett:
Serial.println ("Ismeretlen hiba");
visszatérés p;
}
p = ujj.kép2Tz ();
kapcsoló (p) {
FINGERPRINT_OK eset:
Serial.println ("Kép konvertálva");
szünet;
FINGERPRINT_IMAGEMESS eset:
Serial.println ("A kép túl rendetlen");
visszatérés p;
FINGERPRINT_PACKETRECIEVEERR eset:
Serial.println ("Kommunikációs hiba");
visszatérés p;
FINGERPRINT_FEATUREFAIL eset:
Serial.println ("Nem található ujjlenyomat -szolgáltatás");
visszatérés p;
FINGERPRINT_INVALIDIMAGE eset:
Serial.println ("Nem található ujjlenyomat -szolgáltatás");
visszatérés p;
alapértelmezett:
Serial.println ("Ismeretlen hiba");
visszatérés p;
}
p = ujj.ujjFastSearch ();
ha (p == FINGERPRINT_OK) {
Serial.println ("Talált egy nyomtatási egyezést!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Kommunikációs hiba");
visszatérés p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Nem találtam egyezést");
visszatérés p;
} más {
Serial.println ("Ismeretlen hiba");
visszatérés p;
}
Serial.print ("Found ID #"); Soros.nyomat (ujj.ujjazonosító);
Serial.print ("bizalommal"); Serial.println (ujj.bizalom);
return finger.fingerID;
}
int getFingerprintIDez () {
uint8_t p = ujj.getImage ();
if (p! = FINGERPRINT_OK) return -1;
p = ujj.kép2Tz ();
if (p! = FINGERPRINT_OK) return -1;
p = ujj.ujjFastSearch ();
if (p! = FINGERPRINT_OK) return -1;
Serial.print ("Found ID #"); Soros.nyomat (ujj.ujjazonosító);
Serial.print ("bizalommal"); Serial.println (ujj.bizalom);
ha (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Ujj elfogadva");
lcd.setCursor (2, 0);
lcd.print ("most kártya beolvasása …");
lcd.setCursor (0, 3);
lcd.print ("===================>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ======================== KÓD SZERKESZTÉSE ======== ==============
mfrc522
mfrc522.uid.uidByte [2] == 0x90 && // Nézze meg a kódot, és nézze meg, hol van 0x92, 0xAB, 0x90, 0x1c? Írja be mindegyiket
mfrc522.uid.uidByte [3] == 0x1C) {// a 2 számjegyű részből a 0x után. Például az azonosító szakasz azt mondja
lcd.clear (); // 3E, majd írja be a 3E -t a 0x után, hogy 0x3E legyen. Végezze el ezt minden szakasznál
lcd.setCursor (3, 0);
lcd.print ("Végül adja meg");
lcd.setCursor (1, 1);
lcd.print ("joystick jelszó");
míg (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); if (analogRead (A2) <= 100) {
d1 = L;
}
if (analogRead (A2)> = 670) {
d1 = R;
}
if (analogRead (A3) <= 100) {
d1 = U;
}
if (analogRead (A3)> = 670) {
d1 = D;
}
késleltetés (500);
míg (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d2 = L;
}
if (analogRead (A2)> = 670) {
d2 = R;
}
if (analogRead (A3) <= 100) {
d2 = U;
}
if (analogRead (A3)> = 670) {
d2 = D;
}
késleltetés (500);
míg (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d3 = L;
}
if (analogRead (A2)> = 670) {
d3 = R;
}
if (analogRead (A3) <= 100) {
d3 = U;
}
if (analogRead (A3)> = 670) {
d3 = D;
}
késleltetés (500);
while (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d4 = L;
}
if (analogRead (A2)> = 670) {
d4 = R;
}
if (analogRead (A3) <= 100) {
d4 = U;
}
if (analogRead (A3)> = 670) {
d4 = D;
}
késleltetés (500);
ha (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= KÓD SZERKESZTÉSE ====== ================
lcd.clear (); // Ez a rész az, ahol a joystick segítségével szerkesztheti a jelszót
lcd.setCursor (2, 0); // a jelszó balra, balra fel, jobbra van állítva. Ha változtatni akarsz
lcd.print ("Hozzáférés biztosított!"); // ez, tegyen egy L -et balra, R -t jobbra, U -t felfelé vagy D -t lefelé bármelyikben
lcd.setCursor (2, 1); // 4 rész betűvel a == jelek után.
lcd.print ("Fiók feloldva.");
lcd.setCursor (2, 2);
lcd.print ("Ha kész, mozog");
lcd.setCursor (1, 3);
lcd.print ("joystick to retlock");
servo.write (90);
míg (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("Fiók zárva");
késleltetés (3000);
resetFunc ();
}más{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("HOZZÁFÉRÉS TILTVA !!!");
lcd.setCursor (0, 2);
lcd.print ("A rendszer újraindítása …");
késleltetés (3000);
resetFunc ();
}
}más{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("HOZZÁFÉRÉS TILTVA !!!");
lcd.setCursor (0, 2);
lcd.print ("A rendszer újraindítása …");
késleltetés (3000);
resetFunc ();
}
}más{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("HOZZÁFÉRÉS TILTVA !!!");
lcd.setCursor (0, 2);
lcd.print ("A rendszer újraindítása …");
késleltetés (3000);
resetFunc ();
}
visszatérő ujj.ujjazonosító; }
6. lépés: Fejezze be
Egy dolgot elfelejtettem elmondani, hát 2 dolog az, hogy ezt a képek készítése előtt megépítettem, így nem tudtam megmutatni, hogyan építettem meg a dobozt. A másik az, hogy ajánlott a szervo részt csavarni arra a részre, amely elfordul. Ha nem, akkor valaki meghúzhatja a fiókot, miközben az zárva van, és lehúzhatja a darabot. De mielőtt felcsavarná, keresse meg a megfelelő helyet, ahová tegye, mert a szervó bizonyos fokig elfordul. Vagy csak megváltoztathatja a kódban. Ha az elektronika némelyike viccesen viselkedik, akkor érdemes más módot találnia arra, hogy egyesek 5V -ot kapjanak. Észrevettem, hogy amikor az ujjlenyomat -olvasóm felvillan, a képernyő kissé felvillan vele, és a szervó zajt ad. Amikor a szervó mozog, a képernyő elsötétül. Remélem tetszett a projekt! Ha bármilyen kérdése van, tegye meg őket megjegyzésekben. Nem vagyok sokat utasításokon, de amint tudok válaszolok rájuk!
Ajánlott:
Corona Safe: Automatikus víztakarékos csap: 6 lépés
Corona Safe: Automatikus víztakarékos csap: Mindannyiunknak időnként kezet kell mosnunk, hogy megszabaduljunk a vírustól és a baktériumoktól, kifejezetten a Corona vírus miatt, 20 másodpercig mossunk kezet, hogy teljesen megszabaduljunk tőle. A szappanadagoló vagy a csapgomb szintén nem feltétlenül higiénikus vagy
B-Safe, hordozható széf: 8 lépés (képekkel)
B-Safe, a hordozható széf: *** 2019. szeptember 4 .: Feltöltöttem egy új 3D-s fájlt magáról a dobozról. Úgy tűnt, hogy a zárom 10 mm -rel túl magas volt a jó záráshoz. A tengerpartra akarsz menni. Mert nem
Arduino Key Safe: 4 lépés
Arduino Key Safe: Ötletek innen: https://www.instructables.com/id/Key-Safe/ Olyan személy vagyok, aki ok nélkül mindig elvesztette a dolgaimat. Biztonságossá teszem ezt a kulcsot, így emlékezni tudok arra, hogy a dolgaimat bele kell tenni, anélkül, hogy elvesznék. Ebben a projektben némi fejlesztést hajtottam végre
Arduino alapú digitális SAFE BOX: 10 lépés
Arduino alapú digitális SAFE BOX: Hé srácok! Van valami, amit biztonságban szeretne tartani? Valami, amit távol kell tartani a nemkívánatos behatolóktól és a magánélet megszállóitól? Nos, van megoldásom a problémádra! Itt egy Arduino alapú zár széf
High-Tech Fenyőtű Camo festett Laptop számítógép: 5 lépés
High-Tech Pine Needle Camo festett Laptop számítógép: Épp befejeztem a régi Toshiba Laptop Linux-ra történő beállítását, és az Instructable webhelyet kerestem, amikor csak a "murph38_99" közzétételével találkoztam. Valóban nem kerestem módszert festeni a fegyvert, de van egy őrült ötletem, és