Innehållsförteckning:

Arduino High Tech Safe: 6 steg
Arduino High Tech Safe: 6 steg

Video: Arduino High Tech Safe: 6 steg

Video: Arduino High Tech Safe: 6 steg
Video: Amazing arduino project 2024, November
Anonim
Arduino High Tech Safe
Arduino High Tech Safe

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

Att bygga en låda
Att 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

Uppkoppling!
Uppkoppling!

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: