Innehållsförteckning:
- Tillbehör
- Steg 1: Bygga en låda
- Steg 2: Anslutning
- Steg 3: Ladda ner bibliotek
- Steg 4: Konfigurera fingeravtryckssensor och Rfid -kortsensor
- Steg 5: KODEN
- Steg 6: Avsluta
Video: Arduino High Tech Safe: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Detta är mitt arduino högteknologiska värdeskåp. Du måste skanna ditt finger, skanna ditt kort och ange sedan ett fyrsiffrigt lösenord för att låsa upp lådan. Detta projekt rekommenderas inte för nybörjare eftersom det är mycket avancerat. Koden är lång, men jag kommer att dela den i detta projekt. Kostnaden är cirka $ 75 om du bygger samma värdeskåp som jag. Detta projekt kan också ta 1-3 dagar att slutföra. Så, låt oss komma igång!
Tillbehör
För att bygga samma värdeskåp som mitt behöver du:
Arduino (Uno rekommenderas eftersom jag inte har steg för arduino mega eller nano. Men du kan fortfarande använda dem)
bakbord
servo-
bygelkablar
joystick
20*4 (du kan använda 16*4, men du måste ändra koden)
fingeravtrycksläsare
mfrc522 rfid -kortskanner
en hink legos
Steg 1: Bygga en låda
Först behöver du en låda att sätta din elektronik i. Du kan använda legos, en 3D -tryckt låda eller till och med kartong! (Även om det här kan vara svårare) Glöm inte att sätta hål i den för en låda och din elektronik. Om du använder rfid -kortskannern behöver du inte sätta ett hål för det om dina väggar är tunna. Korten fungerar fortfarande, men du måste sätta nyckelringarna nära så att rfid -kortets senor kan läsa dem. Lämna också plats för din arduino och kablar inuti. OBS: När du bygger lådan, lämna ett hål i den så att din servo kan vända och låsa lådan.
Steg 2: Anslutning
Det här steget kan vara komplicerat eftersom du måste koppla in ledningar på den exakta platsen annars fungerar inte elektroniken. Jag har inget kopplingsschema, men jag kommer att berätta om var och en går. Ledningarna är endast för arduino uno. Du måste söka efter för att sätta trådarna om du använder en arduino mega eller nano. Om du inte använder alla elektroner jag har kan du bara hoppa över den kabeldragningen.
Fingerprint scanner: grön tråd: D2 vit tråd: D3 svart tråd: GND röd tråd: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Switch = D4
RFID -kortskanner: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
LCD -skärm: 5V = 5V GND = GND sda = A4 sck = A5
Servo: röd tråd: 5V Brun tråd: GND gul tråd: D6
OBS: Koppla INTE in RFID -kortskannern i 5V. OM DU gör det kommer det att bryta !!!
Du kanske undrar varför jag sa att plugga styrspaken till 3,3V när det står 5V på sidan. Det beror på att servon, skärmen och fingeravtrycksskannern behöver 5V. Om du lägger till joysticken till det kanske inte elektroniken fungerar eftersom allt behöver 5V. Joysticken fungerar fortfarande med 3,3V. Det är bara maxvärdet inte 1023, det kommer att vara ~ 670.
Steg 3: Ladda ner bibliotek
I detta projekt behöver du 6 bibliotek för att använda all elektronik. 1 för servon, 1 för fingeravtryckssensorn, 2 för rfid -kortläsare och 2 för skärmen. Styrspaken behöver inte ett bibliotek. Vad är ett bibliotek? Det är i grunden en fil som innehåller massor av kod som du kan använda i ditt projekt med enkla kommandon. För att få dessa bibliotek måste du gå till en plats som heter GitHub. Om du vet hur du laddar ner och packar upp bibliotek går du bara till länkarna nedan för nedladdningar. Om du inte vet hur, kan du gå till min instruktiva som talar om hur du laddar ner ett bibliotek i steg 3:
eller sök i en youtube -video om hur du laddar ner ett arduino -bibliotek från GitHub
LÄNKAR TILL LIRARIER:
Servo
fingeravtryckssensor:
spi
rfid -kortsensor
skärmbibliotek 1
skärmbibliotek 2
Steg 4: Konfigurera fingeravtryckssensor och Rfid -kortsensor
Det här steget talar om hur du konfigurerar fingeravtryckssensor och RFID -kortsensor. Om du inte redan har använt din fingeravtryckssensor måste du visa den hur ditt fingeravtryck ser ut så att det kan spara det i minnet. Även om du har använt det tidigare bör du förmodligen göra detta steg. Jag kommer att berätta hur du gör det kort, men om det inte är vettigt går du till samma instruerbara länk i det sista steget. Det går mycket bra över det. Grundläggande bara öppna arduino ide. Gå till fil> exempel> adafruit fingeravtryckssensor> registrera. Ladda upp kod till arduino, öppna seriell bildskärm och följ stegen som den berättar. När den säger att du ska ge den ett nummer. Skriv in 1#.
Nu för rfid -kortet är det här steget ganska enkelt. Öppen arduino ide. Gå till fil> exempel> mfrc522> läs personuppgifter. Ladda upp till arduino och öppna seriell bildskärm. Skanna kortet eller nyckelringen du vill använda som följde med din sensor. Då kommer det att ge dig lite information. Leta efter kortets ID, det kommer att vara 4 uppsättningar med 2 siffror. Något så här: AB 45 2Y 45 men din kod kommer att vara annorlunda. Skriv ner detta på ett papper. Du kommer att behöva det igen senare. Det är det för det här steget.
Steg 5: KODEN
Detta kommer att vara det svåraste steget för de flesta av er, men det är ganska enkelt. Kopiera först och klistra in koden i arduino -idén underifrån. För det andra, redigera de två sektionerna där det står EDIT CODE. 1 sektion är för kortskannern, 1 för joysticken. Dessa steg kan inte hoppas över. När du är klar laddar du upp koden till arduino!
#include #include Fingerprint.h>
#omfatta
#omfatta
#omfatta
#omfatta
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIV);
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial);
Servoservo;
char d1;
char d2;
char d3;
char d4;
void setup () {
servo. fäst (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
medan (! Seriell);
SPI.begin ();
mfrc522. PCD_Init ();
fördröjning (4);
mfrc522. PCD_DumpVersionToSerial ();
fördröjning (100);
Serial.println ("\ n / nAdafruit finger detect test");
finger.begin (57600);
fördröjning (5);
if (finger.verifyPassword ()) {
Serial.println ("Alla system fungerar");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Vänligen skanna finger");
} annat {
Serial.println ("ERROR: Fingerprint sensor not found!");
lcd.setCursor (0, 0);
lcd.print ("ERROR: Fingerprint");
lcd.setCursor (1, 1);
lcd.print ("sensorn hittades inte!");
medan (1) {delay (1); }
}
finger.getTemplateCount ();
Serial.print ("Sensor innehåller"); Serial.print (finger.templateCount); Serial.println ("mallar"); Serial.println ("Väntar på giltigt finger …"); }
void (* resetFunc) (void) = 0;
void loop () {
getFingerprintIDez ();
fördröjning (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
switch (p) {
fall FINGERPRINT_OK:
Serial.println ("Bild tagen");
ha sönder;
fall FINGERPRINT_NOFINGER:
Serial.println ("Inget finger detekteras");
retur p;
fall FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikationsfel");
retur p;
fall FINGERPRINT_IMAGEFAIL:
Serial.println ("bildfel");
retur p;
standard:
Serial.println ("Okänt fel");
retur p;
}
p = finger.image2Tz ();
switch (p) {
fall FINGERPRINT_OK:
Serial.println ("Bild konverterad");
ha sönder;
fall FINGERPRINT_IMAGEMESS:
Serial.println ("Bilden är för rörig");
retur p;
fall FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikationsfel");
retur p;
fall FINGERPRINT_FEATUREFAIL:
Serial.println ("Det gick inte att hitta fingeravtrycksfunktioner");
retur p;
fall FINGERPRINT_INVALIDIMAGE:
Serial.println ("Det gick inte att hitta fingeravtrycksfunktioner");
retur p;
standard:
Serial.println ("Okänt fel");
retur p;
}
p = finger.fingerFastSearch ();
om (p == FINGERPRINT_OK) {
Serial.println ("Hittade en utskriftsmatchning!");
} annars if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Kommunikationsfel");
retur p;
} annat om (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Hittade ingen matchning");
retur p;
} annat {
Serial.println ("Okänt fel");
retur p;
}
Serial.print ("Hittat ID #"); Serial.print (finger.fingerID);
Serial.print ("med förtroende för"); Serial.println (finger.confidence);
return finger.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
om (p! = FINGERPRINT_OK) returnerar -1;
p = finger.image2Tz ();
om (p! = FINGERPRINT_OK) returnerar -1;
p = finger.fingerFastSearch ();
om (p! = FINGERPRINT_OK) returnerar -1;
Serial.print ("Hittat ID #"); Serial.print (finger.fingerID);
Serial.print ("med förtroende för"); Serial.println (finger.confidence);
if (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Finger accepteras");
lcd.setCursor (2, 0);
lcd.print ("nu skanna kort …");
lcd.setCursor (0, 3);
lcd.print ("=====================>");
medan (! mfrc522. PICC_IsNewCardPresent ());
medan (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ======================== EDIT CODE ======== ================
mfrc522.uid.uidByte [1] == 0xAB && // Ta det där papperet med ID på det, det fanns 4 uppsättningar med 2 siffror
mfrc522.uid.uidByte [2] == 0x90 && // Titta efter koden, se var det står 0x92, 0xAB, 0x90, 0x1c? Ange varje
mfrc522.uid.uidByte [3] == 0x1C) {// av det tvåsiffriga avsnittet efter 0x. Till exempel säger avsnittet i ID: t
lcd.clear (); // 3E, ange sedan 3E efter 0x för att göra 0x3E. Gör detta för varje avsnitt
lcd.setCursor (3, 0);
lcd.print ("Slutligen, ange");
lcd.setCursor (1, 1);
lcd.print ("joystick -lösenord");
medan (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) {
dl = R;
}
if (analogRead (A3) <= 100) {
d1 = U;
}
if (analogRead (A3)> = 670) {
d1 = D;
}
fördröjning (500);
medan (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;
}
fördröjning (500);
medan (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;
}
fördröjning (500);
medan (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;
}
fördröjning (500);
if (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDIT CODE ====== ==================
lcd.clear (); // Detta avsnitt är där du kan redigera lösenordet med joysticken
lcd.setCursor (2, 0); // lösenordet är inställt på vänster, upp till vänster, höger. Om du vill ändra
lcd.print ("Tillgång beviljad!"); // det, sätt en L för vänster, R för höger, U för upp eller D för ned i någon av
lcd.setCursor (2, 1); // 4 sektioner med en bokstav efter == tecknen.
lcd.print ("Låda upplåst.");
lcd.setCursor (2, 2);
lcd.print ("När du är klar, flytta");
lcd.setCursor (1, 3);
lcd.print ("joystick till relock");
servo.write (90);
medan (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("Låda låst");
fördröjning (3000);
resetFunc ();
}annan{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ÅTKOMST NICKAD !!!");
lcd.setCursor (0, 2);
lcd.print ("Startar om systemet …");
fördröjning (3000);
resetFunc ();
}
}annan{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ÅTKOMST NICKAD !!!");
lcd.setCursor (0, 2);
lcd.print ("Startar om systemet …");
fördröjning (3000);
resetFunc ();
}
}annan{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ÅTKOMST NICKAD !!!");
lcd.setCursor (0, 2);
lcd.print ("Startar om systemet …");
fördröjning (3000);
resetFunc ();
}
return finger.fingerID; }
Steg 6: Avsluta
En sak jag glömde berätta, två saker är att jag byggde det här innan jag tog bilder, så jag kunde inte visa dig hur jag byggde lådan. Den andra är att det rekommenderas att skruva servodelen på den del som vänder. Om du inte gör det kan någon dra i lådan medan den är låst och dra av biten. Men innan du skruvar på det, hitta rätt plats där du ska sätta på det eftersom servon vänder sig till en viss grad. Eller så kan du bara ändra det i koden. Om en del av elektroniken fungerar roligt kanske du vill hitta ett annat sätt att få 5V för några av dem. Jag märkte när min fingeravtrycksläsare blinkade, skärmen skulle blinka något med den och servon skulle brusa. När servon rörde sig skulle skärmen bli mörk. Jag hoppas att du gillade projektet! Om du har några frågor, lämna dem i kommentarerna. Jag är inte mycket på instruktioner, men jag kommer att svara på dem så snart jag kan!
Rekommenderad:
Corona Safe: Automatisk vattenbesparande kran: 6 steg
Corona Safe: Automatisk vattenbesparande kran: Vi måste alla tvätta händerna då och då för att bli av med viruset och bakterierna speciellt för Corona-viruset, vi måste tvätta händerna i 20 sekunder för att bli av med det helt. Även tvålbehållaren eller kranvredet behöver inte vara hygieniskt eller
B-Safe, det bärbara värdeskåpet: 8 steg (med bilder)
B-Safe, the Portable Safe: *** 4 september 2019: Jag laddade upp en ny 3D-fil av själva rutan. Det verkade som om mitt lås var 10 mm för högt för en bra stängning *** Problemet Tänk dig detta: Du vaknar en morgon och vädret är riktigt bra. Du vill gå till stranden.För att du inte
Arduino Key Safe: 4 steg
Arduino Key Safe: Idéer från: https://www.instructables.com/id/Key-Safe/Jag är en person som alltid förlorade mina saker utan anledning. Jag gör den här nyckeln säker så att jag kan komma ihåg att lägga mina saker inuti, utan att saker går vilse. I det här projektet har jag gjort vissa förbättringar
Arduino -baserad digital SAFE BOX: 10 steg
Arduino Based Digital SAFE BOX: Hej killar! Har du något som du vill bevara säkert? Något som måste hållas borta från oönskade inkräktare och sekretessintrångare? Jag har en lösning på ditt problem! Här är ett Arduino -baserat lås Safe Box
High-Tech Pine Needle Camo Painted LapTop Computer: 5 steg
High-Tech Pine Needle Camo Painted LapTop Computer: Jag hade precis avslutat konfigurationen av min gamla Toshiba LapTop med Linux och letade på Instructable-sajten när jag just hände vid inlägget av "murph38_99. Jag letade verkligen inte efter en metod för att måla en pistol med, men jag fick en galen idé och