INHOUDSOPGAWE:
- Voorrade
- Stap 1: Bou 'n boks
- Stap 2: Maak klaar
- Stap 3: Laai biblioteke af
- Stap 4: Die opstel van vingerafdruksensor en RFID -kaartsensor
- Stap 5: DIE KODE
- Stap 6: Voltooi
Video: Arduino High Tech Safe: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Dit is my arduino hoë tegnologie kluis. U moet u vinger skandeer, u kaart skandeer en 'n 4 -syfer wagwoord invoer om die laai te ontsluit. Hierdie projek word nie aanbeveel vir beginners nie, want dit is baie gevorderd. Die kode is lank, maar ek sal dit in hierdie projek deel. Die koste beloop ongeveer $ 75 as u dieselfde kluis as ek bou. Hierdie projek kan ook 1-3 dae neem om te voltooi. So, laat ons begin!
Voorrade
Om dieselfde kluis as myne te bou, benodig u:
Arduino (word nie aanbeveel nie, want ek het nie stappe vir arduino mega of nano nie. Maar u kan dit steeds gebruik)
broodbord
servo
springdrade
joystick
20*4 (u kan 16*4 gebruik, maar u moet die kode verander)
vingerafdrukskandeerder
mfrc522 rfid -kaartskandeerder
'n emmer legos
Stap 1: Bou 'n boks
Eerstens benodig u 'n boks om u elektronika in te sit. U kan lego's, 'n 3D -gedrukte boks of selfs karton gebruik! (Alhoewel dit moeiliker kan wees) Moenie vergeet om gate in die laai en elektronika te plaas nie. As u die rfid -kaartskandeerder gebruik, hoef u nie 'n gaatjie daarvoor te maak as u mure dun is nie. Die kaarte werk nog steeds, maar u moet die sleutelhangers toemaak sodat die rfid -kaart senor dit kan lees. Laat ook ruimte vir u arduino en drade binne. LET WEL: As u die laai bou, laat 'n gaatjie daarin sodat u servo die laai kan draai en sluit.
Stap 2: Maak klaar
Hierdie stap kan ingewikkeld wees omdat u die drade op die presiese plek moet aansluit, anders kan die elektronika nie werk nie. Ek het nie 'n bedradingsdiagram nie, maar ek sal jou vertel of elkeen gaan. Die bedrading is slegs vir arduino uno. U moet die drade soek as u 'n arduino mega of nano gebruik. As u nie al die elektronies wat ek het gebruik nie, kan u die bedrading net oorslaan.
Vingerafdrukskandeerder: groen draad: D2 wit draad: D3 swart draad: rooi GND -draad: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Skakelaar = D4
RFID kaart skandeerder: 3.3V = 3.3V eerste = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
lcd -skerm: 5V = 5V GND = GND sda = A4 sck = A5
Servo: rooi draad: 5V Bruin draad: GND geeldraad: D6
OPMERKING: MOENIE RFID -KAARTSKANDELAAR IN 5V AANSLUIT NIE. As jy dit doen, SAL dit breek !!!
U wonder miskien hoekom ek gesê het om die joystick -krag aan te sluit op 3.3V as daar 5V aan die kant staan. Dit is omdat die servo, skerm en vingerafdrukskandeerder 5V benodig. As u die joystick daarby voeg, werk die elektronika moontlik nie, want alles benodig 5V. Die joystick werk steeds met 3.3V. Die maksimum waarde is nie 1023 nie, dit sal ~ 670 wees.
Stap 3: Laai biblioteke af
In hierdie projek benodig u 6 biblioteke om al die elektronika te gebruik. 1 vir die servo, 1 vir die vingerafdruksensor, 2 vir rfid -kaartskandeerder en 2 vir die skerm. Die joystick het nie 'n biblioteek nodig nie. Nou, wat is 'n biblioteek? Dit is basies 'n lêer met baie kode wat u met eenvoudige opdragte in u projek kan gebruik. Om hierdie biblioteke te kry, moet u na 'n plek met die naam GitHub gaan. As u weet hoe om biblioteke af te laai en uit te pak, gaan na die onderstaande skakels vir die aflaai. As u nie weet hoe nie, kan u na my instruksies gaan wat praat oor hoe u 'n biblioteek in stap 3 kan aflaai:
of soek 'n youtube -video oor hoe om 'n arduino -biblioteek van GitHub af te laai
SKAKELS NA LIRARIES:
Servo
vingerafdruksensor:
spi
rfid -kaartsensor
skermbiblioteek 1
skermbiblioteek 2
Stap 4: Die opstel van vingerafdruksensor en RFID -kaartsensor
Hierdie stap handel oor hoe om 'n vingerafdruksensor en 'n RFID -kaartsensor op te stel. Tensy u reeds u vingerafdruksensor gebruik het, moet u dit wys hoe u vingerafdruk lyk sodat dit in u geheue kan stoor. Selfs as u dit al voorheen gebruik het, moet u waarskynlik hierdie stap doen. Ek sal u vertel hoe u dit kortliks moet doen, maar as dit nie sinvol is nie, gaan dan na dieselfde instruksionele skakel in die laaste stap. Dit gaan baie goed daaroor. Basiese net oop arduino ide. Gaan na lêer> voorbeelde> adafruit -vingerafdruksensor> skryf in. Laai kode op na arduino, maak die seriële monitor oop en volg die stappe wat dit u vertel. As dit jou vertel om 'n nommer te gee. Tik 1#in.
Nou vir die rfid -kaart, is hierdie stap redelik maklik. Open arduino ide. Gaan na lêer> voorbeelde> mfrc522> lees persoonlike data. Laai op na arduino en maak die seriële monitor oop. Skandeer die kaart of sleutelhanger wat u saam met u sensor wil gebruik. Dan gee dit u inligting. Soek die ID van die kaart, dit sal 4 stelle van 2 syfers wees. So iets: AB 45 2Y 45, maar u kode sal anders wees. Skryf dit op 'n stuk papier neer. U sal dit later weer nodig hê. Dit is dit vir hierdie stap.
Stap 5: DIE KODE
Dit gaan vir die meeste van julle die moeilikste stap wees, maar dit is redelik eenvoudig. Kopieer en plak eers die kode van onder af in die arduino -idee. Tweedens, redigeer die 2 afdelings waar die KODEERGEWERK staan. 1 afdeling is vir die kaartskandeerder, 1 vir die joystick. Hierdie stappe kan nie oorgeslaan word nie. Sodra dit klaar is, laai die kode op na arduino!
#include #include Vingerafdruk.h>
#insluit
#insluit
#insluit
#insluit
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIEF);
#definieer RST_PIN 9
#defineer SS_PIN 10
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial);
Servo servo;
char d1;
char d2;
char d3;
char d4;
ongeldige opstelling () {
servo.aanheg (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
terwyl (! Serial);
SPI.begin ();
mfrc522. PCD_Init ();
vertraging (4);
mfrc522. PCD_DumpVersionToSerial ();
vertraging (100);
Serial.println ("\ n / nAdafruit -vingeropsporingstoets");
vinger.begin (57600);
vertraging (5);
as (finger.verifyPassword ()) {
Serial.println ("Alle stelsels werk");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Skandeer asseblief vinger");
} anders {
Serial.println ("FOUT: Vingerafdruksensor nie gevind nie!");
lcd.setCursor (0, 0);
lcd.print ("FOUT: vingerafdruk");
lcd.setCursor (1, 1);
lcd.print ("sensor nie gevind nie!");
terwyl (1) {vertraging (1); }
}
finger.getTemplateCount ();
Serial.print ("Sensor bevat"); Serial.print (vinger.templateCount); Serial.println ("sjablone"); Serial.println ("Wag vir geldige vinger …"); }
void (* resetFunc) (void) = 0;
leemte -lus () {
getFingerprintIDez ();
vertraging (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
skakelaar (p) {
saak FINGERPRINT_OK:
Serial.println ("Beeld geneem");
breek;
saak FINGERPRINT_NOFINGER:
Serial.println ("Geen vinger bespeur nie");
terugkeer p;
saak FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikasie fout");
terugkeer p;
saak FINGERPRINT_IMAGEFAIL:
Serial.println ("Beeldfout");
terugkeer p;
verstek:
Serial.println ("Onbekende fout");
terugkeer p;
}
p = vinger.beeld2Tz ();
skakelaar (p) {
saak FINGERPRINT_OK:
Serial.println ("Beeld omskep");
breek;
saak FINGERPRINT_IMAGEMESS:
Serial.println ("Beeld te morsig");
terugkeer p;
saak FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikasie fout");
terugkeer p;
saak FINGERPRINT_FEATUREFAIL:
Serial.println ("Kan nie vingerafdrukfunksies vind nie");
terugkeer p;
saak FINGERPRINT_INVALIDIMAGE:
Serial.println ("Kon nie vingerafdrukfunksies vind nie");
terugkeer p;
verstek:
Serial.println ("Onbekende fout");
terugkeer p;
}
p = finger.fingerFastSearch ();
as (p == FINGERPRINT_OK) {
Serial.println ("Het 'n afdrukwedstryd gevind!");
} anders as (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Kommunikasie fout");
terugkeer p;
} anders as (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Het geen wedstryd gevind nie");
terugkeer p;
} anders {
Serial.println ("Onbekende fout");
terugkeer p;
}
Serial.print ("ID -ID gevind"); Reeks.afdruk (finger.fingerID);
Serial.print ("met vertroue van"); Serial.println (vinger.vertroue);
terugkeer vinger.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
as (p! = FINGERPRINT_OK) terugkeer -1;
p = vinger.beeld2Tz ();
as (p! = FINGERPRINT_OK) terugkeer -1;
p = finger.fingerFastSearch ();
as (p! = FINGERPRINT_OK) terugkeer -1;
Serial.print ("ID -ID gevind"); Reeks.afdruk (finger.fingerID);
Serial.print ("met vertroue van"); Serial.println (vinger.vertroue);
as (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Vinger aanvaar,");
lcd.setCursor (2, 0);
lcd.print ("scan kaart nou …");
lcd.setCursor (0, 3);
lcd.print ("=====================>");
terwyl (! mfrc522. PICC_IsNewCardPresent ());
terwyl (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ========================= EDIT CODE ======== =================
mfrc522.uid.uidByte [1] == 0xAB && // Neem die stuk papier met die ID daarop, daar was 4 stelle van 2 syfers
mfrc522.uid.uidByte [2] == 0x90 && // Kyk na die kode, kyk waar staan 0x92, 0xAB, 0x90, 0x1c? Voer elkeen in
mfrc522.uid.uidByte [3] == 0x1C) {// van die 2 -syfer -afdeling na die 0x. Die gedeelte van die ID sê byvoorbeeld
lcd.clear (); // 3E, voer dan die 3E na die 0x in om 0x3E te maak. Doen dit vir elke afdeling
lcd.setCursor (3, 0);
lcd.print ("Laastens, voer in");
lcd.setCursor (1, 1);
lcd.print ("joystick -wagwoord");
terwyl (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); as (analogRead (A2) <= 100) {
d1 = L;
}
if (analogRead (A2)> = 670) {
d1 = R;
}
if (analogRead (A3) <= 100) {
d1 = U;
}
if (analogRead (A3)> = 670) {
d1 = D;
}
vertraging (500);
terwyl (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
as (analogRead (A2) <= 100) {
d2 = L;
}
if (analogRead (A2)> = 670) {
d2 = R;
}
if (analogRead (A3) <= 100) {
d2 = U;
}
if (analogRead (A3)> = 670) {
d2 = D;
}
vertraging (500);
terwyl (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
as (analogRead (A2) <= 100) {
d3 = L;
}
if (analogRead (A2)> = 670) {
d3 = R;
}
if (analogRead (A3) <= 100) {
d3 = U;
}
if (analogRead (A3)> = 670) {
d3 = D;
}
vertraging (500);
terwyl (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
as (analogRead (A2) <= 100) {
d4 = L;
}
if (analogRead (A2)> = 670) {
d4 = R;
}
if (analogRead (A3) <= 100) {
d4 = U;
}
if (analogRead (A3)> = 670) {
d4 = D;
}
vertraging (500);
as (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDIT CODE ====== ==================
lcd.clear (); // Hierdie afdeling is waar u die wagwoord met die joystick kan wysig
lcd.setCursor (2, 0); // die wagwoord is links, regs, links, regs. As jy wil verander
lcd.print ("Toegang verleen!"); // dit, sit 'n L vir links, R vir regs, U vir bo, of D vir af in enige van die
lcd.setCursor (2, 1); // 4 afdelings met 'n letter na die == tekens.
lcd.print ("Laai ontsluit.");
lcd.setCursor (2, 2);
lcd.print ("As u klaar is, skuif");
lcd.setCursor (1, 3);
lcd.print ("joystick om weer te sluit");
servo.write (90);
terwyl (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("Laai gesluit");
vertraging (3000);
resetFunc ();
} anders {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("TOEGANG GEWEEG !!!");
lcd.setCursor (0, 2);
lcd.print ("Herlaai stelsel …");
vertraging (3000);
resetFunc ();
}
} anders {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("TOEGANG GEWEEG !!!");
lcd.setCursor (0, 2);
lcd.print ("Herlaai stelsel …");
vertraging (3000);
resetFunc ();
}
} anders {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("TOEGANG GEWEEG !!!");
lcd.setCursor (0, 2);
lcd.print ("Herlaai stelsel …");
vertraging (3000);
resetFunc ();
}
terug vinger.fingerID; }
Stap 6: Voltooi
Een ding wat ek vergeet het om te vertel, twee dinge is dat ek dit gebou het voordat ek foto's geneem het, sodat ek nie kon wys hoe ek die boks gebou het nie. Die ander is dat dit aanbeveel word om die servo -deel vas te maak op die deel wat draai. As u dit nie doen nie, kan iemand aan die laai trek terwyl dit gesluit is en die stuk af trek. Maar voordat u dit vasmaak, moet u die regte plek vind om dit aan te trek, want die servo draai tot 'n sekere mate. Of u kan dit net in die kode verander. As sommige van die elektronika snaaks optree, wil u miskien 'n ander manier kry om 5V vir sommige van hulle te kry. Ek het opgemerk toe my vingerafdrukskandeerder flits, die skerm sou effens flits, en die servo sou raas. As die servo beweeg, word die skerm dowwer. Ek hoop jy het die projek geniet! As u enige vrae het, laat dit dan in die kommentaar. Ek is nie baie op instruksies nie, maar ek sal dit so gou as moontlik beantwoord!
Aanbeveel:
Corona Safe: outomatiese waterbesparende kraan: 6 stappe
Corona Safe: outomatiese waterbesparende kraan: ons moet almal nou en dan hande was om van die virus en bakterieë ontslae te raak, spesiaal vir die Corona-virus, ons moet ons hande 20 sekondes lank was om heeltemal daarvan ontslae te raak. Die seephouer of die kraanknop is moontlik nie higiënies of
B-Safe, die draagbare kluis: 8 stappe (met foto's)
B-Safe, the Portable Safe: *** 4 September 2019: Ek het 'n nuwe 3D-lêer van die boks self opgelaai. Dit het gelyk asof my slot 10 mm te hoog was vir 'n goeie sluiting *** Die probleem Stel jou voor: jy word een oggend wakker en die weer is regtig goed. Jy wil strand toe gaan, omdat jy nie
Angela's Key Safe: 5 stappe
Angela's Key Safe: Geïnspireer deur: https://www.instructables.com/id/Key-Safe/ 'n Goed gestruktureerde sleutelkluis om u persoonlike besittings op te slaan. Ek het 'n paar aanpassings gemaak op grond van die oorspronklike weergawe. Deur nog 3 wagwoorde by te voeg, " A ", " B ", " C " en &
RFID Bank Safe: 3 stappe
RFID Bank Safe: RFID is radiofrekwensie -identifikasie. 'N Bankkluis is 'n kluis vir waardevolle items. Deur twee bymekaar te sit, word 'n bank veilig nog veiliger. Hier is hoe u een kan bou uit Arduino -komponente en 'n bietjie motorwerk
High-Tech Pine Needle Camo Painted LapTop Computer: 5 stappe
High-Tech Pine Needle Camo Painted LapTop Computer: Ek was pas klaar met die opstel van my ou Toshiba LapTop met Linux en was op soek na die Instructable-webwerf toe ek net by die plasing plaas deur "murph38_99. Ek het regtig nie 'n metode gesoek om verf 'n geweer daarmee, maar ek het 'n mal idee gekry en