Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Bu mening arduino yuqori texnologiyali seyfim. Barmog'ingizni skanerlashingiz, kartangizni skanerlashingiz va tortmasining qulfini ochish uchun 4 raqamli parolni kiritishingiz kerak. Bu loyiha yangi boshlanuvchilar uchun tavsiya etilmaydi, chunki u juda rivojlangan. Kod uzoq, lekin men uni ushbu loyihada baham ko'raman. Agar siz men bilan bir xil seyf yasasangiz, uning narxi 75 dollar atrofida bo'ladi. Ushbu loyihani amalga oshirish uchun 1-3 kun kerak bo'ladi. Shunday qilib, boshlaylik!
Ta'minotlar
Men bilan bir xil seyfni yaratish uchun sizga kerak bo'ladi:
Arduino (Uno tavsiya qilinadi, chunki menda arduino mega yoki nano uchun qadamlar yo'q. Lekin siz hali ham ulardan foydalanishingiz mumkin)
non taxtasi
servo
o'tish simlari
joystik
20*4 (siz 16*4 dan foydalanishingiz mumkin, lekin siz kodni o'zgartirishingiz kerak bo'ladi)
barmoq izlari skaneri
mfrc522 rfid karta skaneri
bir chelak legos
1 -qadam: qutini qurish
Avval elektronikani qo'yish uchun sizga quti kerak bo'ladi. Siz legos, 3d bosilgan quti yoki hatto kartondan foydalanishingiz mumkin! (Bu qiyinroq bo'lishi mumkin bo'lsa ham) tortmasiga va elektronikangizga teshiklar qo'yishni unutmang. Agar siz rfid karta skaneridan foydalanayotgan bo'lsangiz, devorlaringiz ingichka bo'lsa, buning uchun teshik ochishingiz shart emas. Kartalar hali ham ishlaydi, lekin siz kalit zanjirlarni yopishingiz kerak, shunda rfid kartasi senatori ularni o'qiy oladi. Shuningdek, arduino va simlar uchun joy qoldiring. QAYD: Siz tortmachani qurayotganingizda, uning ichidagi teshik qoldiring, shunda servo tortmasining aylanishi va qulflanishi mumkin.
2 -qadam: Elektr ta'minoti
Bu qadam murakkab bo'lishi mumkin, chunki siz simlarni aniq joyiga ulashingiz kerak, aks holda elektronika ishlamaydi. Menda simlar sxemasi yo'q, lekin men sizga aytaman, ularning har biri ketadi. Ulanish faqat arduino uno uchun mo'ljallangan. Agar siz arduino mega yoki nanodan foydalanayotgan bo'lsangiz, simlarni ulashingiz kerak bo'ladi. Agar siz menda mavjud bo'lgan barcha elektron qurilmalardan foydalanmasangiz, bu simni o'tkazib yuborishingiz mumkin.
Barmoq izi skaneri: yashil sim: D2 oq sim: D3 qora sim: GND qizil sim: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Switch = D4
rfid karta skaneri: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
LCD displey: 5V = 5V GND = GND sda = A4 sck = A5
Servo: qizil sim: 5V jigarrang sim: GND sariq sim: D6
Izoh: RFID karta skanerini 5V ga ulamang. Agar qilsang, buziladi !!!
Siz nima uchun yon tomonida 5V yozilganda, joystikning quvvatini 3.3V ga ulashni aytdim, deb hayron bo'lishingiz mumkin. Sababi, servo, ekran va barmoq izlari skaneriga 5V kerak. Agar siz joystikni qo'shsangiz, elektronika ishlamasligi mumkin, chunki hamma narsa 5V ga muhtoj. Joystik hali ham 3.3V bilan ishlaydi. Faqat maksimal qiymat 1023 bo'lmaydi, ~ 670 bo'ladi.
3 -qadam: Kutubxonalarni yuklab olish
Ushbu loyihada sizga barcha elektronikadan foydalanish uchun 6 kutubxona kerak bo'ladi. Servo uchun 1, barmoq izi sensori uchun 1, rfid karta skaneri uchun 2 va ekran uchun 2. Joystik kutubxonaga muhtoj emas. Endi kutubxona nima? Bu, asosan, sizning loyihangizda oddiy buyruqlar bilan foydalanishingiz mumkin bo'lgan ko'plab kodlarga ega fayl. Ushbu kutubxonalarni olish uchun siz GitHub deb nomlangan joyga borishingiz kerak. Agar siz kutubxonalarni qanday yuklab olishni va ochishni bilsangiz, yuklab olish uchun quyidagi havolalarga o'ting. Agar siz qanday qilishni bilmasangiz, 3-bosqichda kutubxonani qanday yuklab olish mumkinligi haqida gapiradigan ko'rsatmaga o'tishingiz mumkin:
yoki GitHub -dan arduino kutubxonasini qanday yuklab olish haqida youtube -da video qidiring
LIRARIYALARGA LIKALAR:
Servo
barmoq izlari sensori:
github.com/PaulStoffregen/SPI
rfid karta sensori
ekran kutubxonasi 1
ekran kutubxonasi 2
4 -qadam: Barmoq izi sensori va Rfid karta sensorini sozlash
Bu qadam barmoq izi sensori va rfid karta sensorini qanday sozlash haqida. Agar siz barmoq izlari sensorini ishlatmagan bo'lsangiz, uni barmoq izining ko'rinishini ko'rsatish kerak, shunda u xotirada saqlanishi mumkin. Agar siz ilgari ishlatgan bo'lsangiz ham, ehtimol bu qadamni bajarishingiz kerak. Men sizga buni qanday qilishni qisqacha aytib beraman, lekin agar mantiqiy bo'lmasa, oxirgi bosqichda xuddi shu ko'rsatma berilgan havolaga o'ting. Bu juda yaxshi o'tadi. Arduino ide uchun oddiy ochiq. Fayl> misollar> adafruit barmoq izi sensori> ro'yxatdan o'ting. Kodni arduino -ga yuklang, ketma -ket monitorni oching va sizga aytilgan amallarni bajaring. Qachon sizga raqam berish kerakligini aytadi. 1#kiriting.
Endi rfid kartasi uchun bu qadam juda oson. Arduino ide -ni oching. Fayl> misollar> mfrc522> shaxsiy ma'lumotlarni o'qish -ga o'ting. Arduino -ga yuklang va ketma -ket monitorni oching. Sensoringiz bilan birga kelgan kartani yoki kalit zanjirni skanerlang. Keyin u sizga ba'zi ma'lumotlarni beradi. Kartaning identifikatorini qidiring, u 4 ta 2 ta raqamdan iborat bo'ladi. Shunga o'xshash narsa: AB 45 2Y 45, lekin sizning kodingiz boshqacha bo'ladi. Buni qog'ozga yozing. Keyinroq sizga yana kerak bo'ladi. Mana shu qadam uchun.
5 -qadam: KOD
Bu ko'pchiligingiz uchun eng qiyin qadam bo'ladi, lekin bu juda oddiy. Avval kodni pastdan arduino ide -ga nusxa ko'chiring va joylashtiring. Ikkinchidan, EDIT CODE yozilgan 2 bo'limni tahrir qiling. 1 bo'lim karta skaneri uchun, 1 qismi joystik uchun. Bu qadamlarni o'tkazib yuborib bo'lmaydi. Tayyor bo'lgach, kodni arduino -ga yuklang!
#include #include Barmoq izi.h>
#qo'shing
#qo'shing
#qo'shing
#qo'shing
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#RST_PIN 9 ni aniqlang
#SS_PIN 10 ni aniqlang
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Adafruit_Fingerprint barmoq = Adafruit_Fingerprint (& mySerial);
Servo servo;
char d1;
char d2;
char d3;
char d4;
bo'sh o'rnatish () {
servo.attach (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
while (! Seriyali);
SPI.begin ();
mfrc522. PCD_Init ();
kechikish (4);
mfrc522. PCD_DumpVersionToSerial ();
kechikish (100);
Serial.println ("\ n / nAdafruit barmoqlarini aniqlash testi");
barmoq.begin (57600);
kechikish (5);
if (finger.verifyPassword ()) {
Serial.println ("Barcha tizimlar ishlaydi");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Iltimos, barmog'ingizni skanerlang");
} boshqa {
Serial.println ("Xato: Barmoq izi sensori topilmadi!");
lcd.setCursor (0, 0);
lcd.print ("Xato: barmoq izi");
lcd.setCursor (1, 1);
lcd.print ("sensor topilmadi!");
while (1) {kechiktirish (1); }
}
barmoq.getTemplateCount ();
Serial.print ("Sensor o'z ichiga oladi"); Serial.print (barmoq.templateCount); Serial.println ("andozalar"); Serial.println ("Haqiqiy barmoq kutilmoqda …"); }
void (* resetFunc) (void) = 0;
void loop () {
getFingerprintIDez ();
kechikish (50);
}
uint8_t getFingerprintID () {
uint8_t p = barmoq.getImage ();
o'tish (p) {
FINGERPRINT_OK holati:
Serial.println ("Rasm olingan");
tanaffus;
FINGERPRINT_NOFINGER holati:
Serial.println ("Barmoq aniqlanmagan");
qaytish p;
FINGERPRINT_PACKETRECIEVEERR holati:
Serial.println ("Aloqa xatosi");
qaytish p;
FINGERPRINT_IMAGEFAIL holati:
Serial.println ("Tasvirlash xatosi");
qaytish p;
standart:
Serial.println ("Noma'lum xato");
qaytish p;
}
p = barmoq.image2Tz ();
o'tish (p) {
FINGERPRINT_OK holati:
Serial.println ("Rasm o'zgartirildi");
tanaffus;
FINGERPRINT_IMAGEMESS holati:
Serial.println ("Tasvir juda tartibsiz");
qaytish p;
FINGERPRINT_PACKETRECIEVEERR holati:
Serial.println ("Aloqa xatosi");
qaytish p;
FINGERPRINT_FEATUREFAIL holati:
Serial.println ("Barmoq izlari xususiyatlari topilmadi");
qaytish p;
FINGERPRINT_INVALIDIMAGE holati:
Serial.println ("Barmoq izlari xususiyatlari topilmadi");
qaytish p;
standart:
Serial.println ("Noma'lum xato");
qaytish p;
}
p = barmoq.fingerFastSearch ();
agar (p == FINGERPRINT_OK) {
Serial.println ("Chop etish mosligi topildi!");
} if if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Aloqa xatosi");
qaytish p;
} boshqa bo'lsa (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Mos keluvchi topilmadi");
qaytish p;
} boshqa {
Serial.println ("Noma'lum xato");
qaytish p;
}
Serial.print ("ID raqami topildi"); Seriyali iz (barmoq.barmoq identifikatori);
Serial.print ("ishonch bilan"); Serial.println (barmoq. Ishonch);
qaytish barmog'i.fingerID;
}
int getFingerprintIDez () {
uint8_t p = barmoq.getImage ();
agar (p! = FINGERPRINT_OK) -1 qaytarsa;
p = barmoq.image2Tz ();
agar (p! = FINGERPRINT_OK) -1 qaytarsa;
p = barmoq.fingerFastSearch ();
agar (p! = FINGERPRINT_OK) -1 qaytarsa;
Serial.print ("ID raqami topildi"); Seriya izi (barmoq.barmoq identifikatori);
Serial.print ("ishonch bilan"); Serial.println (barmoq. Ishonch);
agar (barmoq.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Barmoq qabul qilindi");
lcd.setCursor (2, 0);
lcd.print ("endi kartani skanerlash …");
lcd.setCursor (0, 3);
lcd.print ("==================>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
agar (mfrc522.uid.uidByte [0] == 0x92 && // ====================== KODni tahrir qilish ======== ===============
mfrc522.uid.uidByte [1] == 0xAB && // Qog'ozni identifikatori bilan oling, 2 ta raqamli 4 ta to'plam bor edi.
mfrc522.uid.uidByte [2] == 0x90 && // Kodga qarang, 0x92, 0xAB, 0x90, 0x1c qaerda yozilganini ko'ring? Har birini kiriting
mfrc522.uid.uidByte [3] == 0x1C) {// 0xdan keyin 2 xonali bo'lim. Masalan, ID bo'limida shunday deyilgan
lcd.clear (); // 3E, keyin 0x3E qilish uchun 0xdan keyin 3E ni kiriting. Buni har bir bo'lim uchun bajaring
lcd.setCursor (3, 0);
lcd.print ("Oxirida kiriting");
lcd.setCursor (1, 1);
lcd.print ("joystik paroli");
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); agar (analogRead (A2) <= 100) {
d1 = L;
}
agar (analogRead (A2)> = 670) {
d1 = R;
}
agar (analogRead (A3) <= 100) {
d1 = U;
}
agar (analogRead (A3)> = 670) {
d1 = D;
}
kechikish (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
agar (analogRead (A2) <= 100) {
d2 = L;
}
agar (analogRead (A2)> = 670) {
d2 = R;
}
agar (analogRead (A3) <= 100) {
d2 = U;
}
agar (analogRead (A3)> = 670) {
d2 = D;
}
kechikish (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
agar (analogRead (A2) <= 100) {
d3 = L;
}
agar (analogRead (A2)> = 670) {
d3 = R;
}
agar (analogRead (A3) <= 100) {
d3 = U;
}
agar (analogRead (A3)> = 670) {
d3 = D;
}
kechikish (500);
while (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
agar (analogRead (A2) <= 100) {
d4 = L;
}
agar (analogRead (A2)> = 670) {
d4 = R;
}
agar (analogRead (A3) <= 100) {
d4 = U;
}
agar (analogRead (A3)> = 670) {
d4 = D;
}
kechikish (500);
agar (d1 == L && d2 == U && d3 == L && d4 == R) {// ================ KODni tahrir qilish ====== =================
lcd.clear (); // Ushbu bo'limda siz parolni joystik yordamida o'zgartirishingiz mumkin
lcd.setCursor (2, 0); // parol chapga, chapga, o'ngga o'rnatiladi. Agar siz o'zgartirmoqchi bo'lsangiz
lcd.print ("Kirish ruxsat berilgan!"); // u uchun chapga L, o'ngga R, yuqoriga U yoki pastga D belgisini qo'ying
lcd.setCursor (2, 1); // == belgilaridan keyin harfli 4 ta bo'lim.
lcd.print ("tortmasining qulfi ochilgan.");
lcd.setCursor (2, 2);
lcd.print ("Bajarilganda, harakatlaning");
lcd.setCursor (1, 3);
lcd.print ("joyini o'zgartirish uchun joystik");
servo.write (90);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("tortma qulflangan");
kechikish (3000);
resetFunc ();
} boshqa {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("KIRISH QABUL BILDI !!!");
lcd.setCursor (0, 2);
lcd.print ("Tizim qayta ishga tushirilmoqda …");
kechikish (3000);
resetFunc ();
}
} boshqa {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("KIRISH QABUL BILDI !!!");
lcd.setCursor (0, 2);
lcd.print ("Tizim qayta ishga tushirilmoqda …");
kechikish (3000);
resetFunc ();
}
} boshqa {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("KIRISH QABUL BILDI !!!");
lcd.setCursor (0, 2);
lcd.print ("Tizim qayta ishga tushirilmoqda …");
kechikish (3000);
resetFunc ();
}
qaytish barmog'i.fingerID; }
6 -qadam: tugatish
Sizga aytishni unutgan bir narsa, 2 narsa, men buni rasmga olishdan oldin qurganman, shuning uchun men sizga qutini qanday qurganimni ko'rsatolmadim. Boshqa tomoni, servo qismni aylanadigan qismga burab qo'yish tavsiya etiladi. Agar shunday qilmasangiz, kimdir tortmasining qulfi yopilganda tortib, tortib olishi mumkin. Ammo uni burishdan oldin, uni qaerga qo'yish kerakligini aniqlang, chunki servo ma'lum darajada buriladi. Yoki uni kodda o'zgartirishingiz mumkin. Agar ba'zi elektronikalar kulgili harakat qilsa, siz ulardan ba'zilariga 5V olishning boshqa usulini topishingiz mumkin. Men barmoq izlari skaneri yonib ketganda, ekran biroz miltillaydi va servo shovqin chiqaradi. Servo harakatlansa, ekran xira bo'lardi. Umid qilamanki, sizga loyiha yoqdi! Agar sizda biron bir savol bo'lsa, ularni sharhlarda qoldiring. Men ko'rsatma berishga unchalik moyil emasman, lekin imkoni boricha ularga javob beraman!
Tavsiya:
Qayta ishlatilgan batareyali past texnologiyali quyosh lampasi: 9 qadam (rasmlar bilan)
Qayta ishlatilgan batareyali past texnologiyali quyosh lampasi: Ushbu qo'llanma sizga USB zaryadlovchi bilan jihozlangan quyosh lampasini yasash imkonini beradi. U eski yoki shikastlangan noutbukdan qayta ishlatiladigan lityum hujayralardan foydalanadi. Kunduzi quyosh nuri tushadigan bu tizim smartfonni to'liq zaryadlashi va 4 soatlik yorug'likka ega bo'lishi mumkin. Bu texnika
Telefon va gadjetni qanday xavfsiz va xavfsiz saqlash kerak: 4 qadam
Telefoningiz va gadjetingizni qanday himoyalash va himoya qilish kerak: deyarli hamma narsani yo'qotgan odamdan (albatta, bo'rttirib aytilgan) .Shunday qilib, tan olish vaqti, mening oldingi gapimda aytilganidek, men juda ahmoqman. Agar menga biror narsa bog'lanmagan bo'lsa, men uni noto'g'ri joyiga qo'yib yuborishim mumkin, bir joyda unutishim mumkin
IoT texnologiyali mobil platforma: 14 qadam
IoT texnologiyali mobil platforma: Quyidagi qadamlar oddiy mobil platformani qanday yig'ishni tasvirlaydi va bu platformani masofadan boshqarish uchun ba'zi IoT texnologiyalarini o'z ichiga oladi. Bu loyiha Assist - IoT (IoT Technologies bilan mahalliy yordamchi) loyihasining bir qismi
Yuqori texnologiyali qarag'ay ignasi kamo bo'yalgan tizzali kompyuter: 5 qadam
Yuqori texnologiyali qarag'ay ignalari bilan bo'yalgan tizza kompyuter: Men eski Toshiba LapTop-ni Linux bilan o'rnatishni tugatgan edim va "murph38_99" xabarini yuborganimda, ko'rsatma beradigan saytga qaradim. qurol bilan bo'yash, lekin, men aqldan ozgan fikrga keldim va
Past texnologiyali taymerni qanday o'zgartirish kerak: 5 qadam (rasmlar bilan)
Past texnologiyali taymerni qanday o'zgartirish kerak: bu juda past texnologiyali taymerni almashtirish bo'yicha ko'rsatma. meniki har 12 soatda bir marta taxminan 3 minut o'chadi. Men buni elektronika bilan unchalik yaxshi bo'lmaganim uchun qildim, lekin baribir arzon taymerni xohlardim. Bu shunchaki prototip va umid qilamanki