- Listahan ng mga bahagi
- Circuit Diagram para sa Arduino Keypad Door Lock
- Arduino Code para sa Digital Keypad Door Lock
- Arduino Keypad DoorLock Assembling at Pagsubok
Kadalasan beses, kailangan nating mag-secure ng isang silid sa aming bahay o tanggapan (marahil isang lihim na laboratoryo ng dexter) upang walang makaka-access sa silid nang walang pahintulot sa amin at matiyak ang proteksyon laban sa pagnanakaw o pagkawala ng aming mga mahahalagang accessories at assets. Mayroong maraming mga uri ng mga sistema ng seguridad na naroroon ngayon ngunit sa likod ng eksena, para sa pagpapatotoo lahat sila ay umaasa sa fingerprint, retina scanner, iris scanner, face id, scanner ng dila, RFID reader, password, pin, pattern, atbp. I-off ang lahat ng mga solusyon ang murang gastos ay ang paggamit ng isang password o pin-based na system. Kaya, sa proyektong ito, nakabuo ako ng isang Arduino Keypad Door Lock na maaaring mai-mount sa anuman sa iyong mga mayroon nang mga pintuan upang ma-secure ang mga ito gamit ang isang digital na password. Dati, nagtayo rin kami ng iba pang mga kagiliw-giliw na kandado ng pinto na nakalista sa ibaba.
- Arduino RFID Lock ng Pintuan
- Arduino Solenoid Lock ng Lock
- Raspberry Pi Digital Code Lock
- 555 Timer electronic Lock ng pinto
Bago itayo ang aming proyekto sa pag-lock ng pinto ng password, una, kailangan naming kolektahin ang mga kinakailangang sangkap at pagkatapos ay magpatuloy at sundin ang sunud-sunod na proseso ng pagbuo.
Listahan ng mga bahagi
- Arduino Uno / Pro / Mini o Custom board gamit ang Atmega 328p Microcontroller
- 16 x 2 LCD (Liquid Crystal Display)
- 4 x 3 o 4 x 4 matrix keypad para sa Arduino
- Servo motor
- 3D naka-print na locker ng pinto / na-customize na locker ng pinto
- Mga karagdagang bahagi para sa power supply ng 1 Amp 5 Volt mobile charger
- 4 "/ 6" mga kahon ng plastik, mga jumper wires, nut bolts, plastic casing, atbp.
Circuit Diagram para sa Arduino Keypad Door Lock
Ang Kumpletong diagram ng circuit para sa aming proyekto ng Digital Keypad Door Lock na nakabatay sa Arduino ay ipinapakita sa ibaba.
Una sa lahat, nagsisimula kami mula sa utak ng proyektong ito na kung saan ay ang Arduino UNO board. Ang board ng Arduino ay konektado sa isang LCD at isang servo motor. Ginagamit ang servo motor upang itulak (i-lock) o hilahin (i-unlock) ang aldaba sa pinto. Kinakailangan ang isang 16 x 2 LCD upang maipakita ang mensahe ni Arduino, ang 16 x 2 ay nangangahulugang mayroon itong 16 na bilang ng mga haligi at 2 bilang ng mga hilera. Kung ganap kang bago sa 16x2 LCD Display Modules, maaari mong suriin ang Arduino LCD Interfacing tutorial na ito upang malaman ang nalalaman tungkol dito.
Dito, gumagamit ako ng isang 5v Towerpro SG90 servo motor para sa paggawa ng aming pasadyang locker ng pinto. Ito ay isang pangunahing antas ng motor na servo at gumagana nang maayos sa Arduino nang walang anumang circuit sa pagmamaneho o panlabas na module. Gayundin, ang gastos ng motor na ito sa servo ay napakaliit upang madali mong bilhin ito. Maaari mo ring suriin ang tutorial na ito ng Arduino Servo Motor Control upang malaman ang higit pa tungkol sa servo motor at kung paano ito gumagana. Ikonekta ang servo motor gamit ang Arduino Digital pin D9 at may isang 5volt power supply. Ang servo motor na ito ay may kabuuang 3 mga linya ng pag-input (GND, + 5V & SIGNAL LINE).
Sa proyektong ito, gumamit ako ng isang 4 x 4 matrix keypad (ngunit ang bahagi ng 4 x 4 na keypad ay hindi magagamit sa fritzing para sa paggawa ng grapikong representasyong ito), ngunit huwag mag-alala dahil ang 4 x 3 Matrix keypad ay gumagana rin sa aking pag-coding. Kailangan namin ng isang keypad para sa pag-input ng password at manu-manong i-lock ang aming na-customize na locker ng pinto. Binubuo ito ng 16 key (soft switch) 4 na key sa Rows (R1, R2, R3, R4) at 4 na mga key sa Columns (C1, C2, C3, C4) kapag ang isang key ay pinindot, nagtatatag ito ng isang koneksyon sa pagitan ng mga kaukulang hilera at mga haligi. Ipinapakita ng talahanayan sa ibaba kung paano ikonekta ang iyong Arduino sa Keypad.
Keypad | Arduino |
Pin 1 (hilera 1) | Digital Pin1 |
Pin 2 (hilera 2) | Digital Pin 2 |
Pin 3 (hilera 3) | Digital pin 3 |
Pin 4 (hilera 4) | Digital pin 4 |
Pin 5 (mga haligi 5) | Digital pin 5 |
Pin 6 (haligi 6) | Digital pin 6 |
Pin 7 (mga haligi 7) | Digital pin 7 |
Arduino Code para sa Digital Keypad Door Lock
Ang kumpletong Arduino Door Lock Code ay matatagpuan sa ilalim ng pahinang ito. Maaari mong direktang i-upload ang code, ngunit inirerekumenda na basahin ang mga talata sa ibaba upang maunawaan kung paano gumagana ang code. Gayundin, mahalagang tiyakin na naidagdag mo ang sumusunod na keypad library sa iyong Arduino IDE upang matagumpay na maipon ang code. Upang gawin iyon buksan lamang ang link sa ibaba at i-download ang ZIP file. Pagkatapos sa iyong Arduino IDE mag-navigate sa Sketch -> Isama ang Library -> Add.ZIP Library at i-browse para sa file na na-download mo lang.
- Arduino Keypad Library
Matapos ipasok ang lahat ng mga file ng header at library, italaga ang lahat ng pin para sa LCD at tukuyin ang haba ng password at itakda ang paunang posisyon ng servo sa 0. Pagkatapos nito, kumuha ng isang "char" datatype para sa pagdedeklara ng numero na maaaring hawakan ito kasama ang null character.
// # isama
Sa piraso ng code na ito (char Master = "123456";) - sa ilalim ng Char Master, idineklara ko ang password ng lock ng pinto, pagkatapos ay italaga ang bilang ng mga hilera at haligi sa keyboard at ideklara rin ang mga keyMap at kumonekta sa mga hilera at mga haligi Sa ilalim ng void setup, simulan ang servo signal pin D9, ang katayuan ng servo sarado at i-print ang pangalan ng proyekto / aparato / kumpanya na may 3 segundo ng pagkaantala sa oras ng LCD ng pagsisimula ng aparato.
walang bisa ang pag-set up () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Tumingin sa proyekto--"); pagkaantala (3000); lcd.clear (); }
Sa ilalim ng pag-andar ng loop, ang simpleng kundisyon na kung-iba ay naroroon. Ayon sa katayuan (awtomatiko itong naka-lock), i-print ang "Malapit ang pinto" na may 3 segundo ng pagkaantala at paikutin ang servo upang isara ang posisyon, bilangin ang data ng pinto bilang 1 kung hindi man mananatiling bukas ang locker ng pinto at bilang ng data ang 0, bukas na paikutin ng servo sa posisyon na pupunta sa 0 degree hanggang 180 degree at upang isara ito mula 180 hanggang 0. Ang servo open at servo close function ay ipinapakita sa ibaba.
walang bisa ang ServoOpen () {para sa (pos = 180; pos> = 0; pos - = 5) {// mula sa 0 degree hanggang 180 degree // sa mga hakbang na 1 degree myservo.write (pos); // sabihin kay servo na pumunta sa posisyon sa variable na 'pos' na pagkaantala (15); // naghihintay ng 15ms para maabot ng servo ang posisyon}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// ay magmula sa 180 degree hanggang 0 degree myservo.write (pos); // sabihin kay servo na pumunta sa posisyon sa variable na 'pos' na pagkaantala (15); // naghihintay ng 15ms para maabot ng servo ang posisyon}}
Isulat ang posisyon ng servo na may 15 segundo ng pagkaantala upang maabot ang posisyon ng servo. Sa ilalim ng walang bisa na bukas na pag-andar, i-print sa LCD na "Enter Password" pagkatapos ay tinutukoy ng kundisyon na ang ipinasok na password ay dapat na pareho sa pasadyang key, sa loob ng body data na ito ay binibilang at nag-iimbak ng char sa array ng data, nadagdagan at nai-input na password na naka-print sa LCD kung ang haba ng data (bilang ng susi) at input ng password ay tumutugma sa Data Master (kung saan naroroon ang paunang natukoy na mga key). Pagkatapos bilang isang LCD na aksyon na malinaw, servo drive, i-print sa LCD "Bukas ang Pinto" at ang data counter ay na-reset sa 0.
Kung ang input key ay hindi tugma sa Data Master, bilang isang aksyon sa LCD malinaw na naka-print sa LCD "Maling Password" upang abisuhan sa 1 segundo ng pagkaantala at mananatili sa posisyon ng lock nito sa mga data counter na itinakda sa 1 at ipagpatuloy ang prosesong ito sa isang loop.
kung (data_count == Password_Lenght - 1) // kung ang array index ay katumbas ng bilang ng mga inaasahang chars, ihambing ang data sa master {if (! strcmp (Data, Master)) // katumbas ng (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Bukas ang Pinto"); pintuan = 0; } iba pa {lcd.clear (); lcd.print ("Maling Password"); pagkaantala (1000); pintuan = 1; } clearData (); }
Arduino Keypad DoorLock Assembling at Pagsubok
Ngayon, magkasya ang lahat sa isang 4 pulgada / 6-pulgadang plastik na kahon at paganahin ito gamit ang isang mobile charger, ihanay nang maayos ang lahat gamit ang pambalot. Sa isip, maaari kong gumamit ng 3D na pag-print upang tipunin ang aking lock, ngunit pagkatapos ng pagdidisenyo ng aking mga file, nalaman kong ang pag-print ng 3D ay napakamahal, kaya inayos ko muna ang servo, pagkatapos ay konektado ang normal na slide locker sa aking servo gamit ang metal plate at sakop ito ay may salamin na hibla, kahit na gumagana ito ng maayos, hindi gaanong ligtas.
Kung nais mo ng karagdagang seguridad, kailangan mong mag-print ng isang 3D na modelo ng lock ng pinto na gumagana sa loob ng servo na ito. Maaari mong i-download ang kinakailangang mga file ng STL form ang link sa ibaba at i-print ang mga ito ng 3D kung mayroon kang access sa isang 3D printer.
Mag-download ng mga STL file para sa 3D Pagpi-print
Ang mga file ng disenyo ay ipinapakita rin sa larawan sa ibaba.
Sa simula ng proyekto, sa sandaling mapalakas namin ito sa kauna-unahang pagkakataon, kailangan naming ibigay ang pangalan ng proyekto (maaari mo ring ipakita ang pangalan ng kumpanya) upang mukhang matalino at eksklusibo ito tulad ng isang komersyal na aparato (tulad ng nakikita mo sa ang larawan sa ibaba).
Sa 3 segundo ng pagkaantala, mabilis na i-lock ang pinto at direktang suriin ang display para sa katayuan ng lock ng pinto tulad ng ipinakita sa larawan na ibinigay sa ibaba.
Kapag manu-manong nilock mo ang pinto sa pamamagitan ng pagpindot sa “#” key, ipinapakita muna nito ang Sarado ng pinto nang 1 segundo at pagkatapos ay ipinapakita ang Enter Password. Sa kabilang banda, kapag ang pintuan ay naka-unlock sa pamamagitan ng pagpasok ng tamang password, ipinapakita nito na Bukas ang Pinto.
Kung ang pintuan ay mananatili sa kondisyon ng pag-unlock, makikita ito - Bukas ang pintuan hangga't manu-manong nilock mo ang pinto alinsunod sa pag-coding. Naibigay ko ang code at maaari mong ipasadya ang mga setting sa pamamagitan ng pagbabago ng parameter ng pagpapakita ng code kung kinakailangan. Maaari mo ring suriin ang kumpletong pagtatrabaho kasama ang video na naka-link sa ilalim ng pahinang ito.