Arduino Light & Knock Mengesan Kunci Pintu: 4 Langkah

Arduino Light & Knock Mengesan Kunci Pintu: 4 Langkah

Isi kandungan:

Anonim

Ini adalah alat yang hebat untuk rumah kelab rahsia dan untuk orang-orang seperti saya yang selalu kelihatan kehilangan kunci mereka! Projek ini adalah berdasarkan Rahsia Knock Lock asal yang boleh diajarkan oleh Grathio (tersedia di bawah) dengan pengubahsuaian utama berikut:

1) Mempunyai input rahsia kedua apabila orang berada di sekitar yang boleh mendengar ketukan anda. Sekarang foto-diod boleh mendaftarkan "ketukan foto" (flash kilat) melalui lubang mengintip!

2) Termasuk Jambatan H, memberikan keupayaan untuk Membuka Kunci dan Kunci pintu (mengubah arah voltan merentasi motor)

3) Programing kini merekodkan tahap bunyi / bunyi purata (latar belakang) dan menyesuaikan sensitiviti (nilai ambang) dengan sewajarnya

*** Maklumat di sini disesuaikan daripada Grathio yang boleh dipelajari. Ramai terima kasih dan kredit pergi ke Grathio Labs kerana membuat panduan yang komprehensif yang tersedia kepada kami yang lain! Saya akan membawa anda melalui langkah-langkah untuk pengaturcaraan dan pendawaian elektronik dan kemudian menghantar anda ke langkah di Grathio yang boleh diarahkan untuk membuat pemasangan pintu PVC (sedih, saya masih dalam proses mencipta kes fungsian)

Untuk Knock-Lock asal Grathio, pergi ke

Bekalan:

Langkah 1: Peralatan, Bekalan, dan Kemahiran

Kemahiran:

Untuk melengkapkan projek ini, anda sepatutnya dapat:

Adakah asas pematerian.

Baca skema.

Mempunyai pengetahuan tentang mikrokontroler (saya akan menggunakan Arduino.)

Improvisasi

Alat:

Bor (idealnya akhbar gerudi) dan pelbagai bit gerudi.

Saw yang mampu memotong paip PVC. (iaitu: Pretty mcuh any saw.)

Pematerian besi dan solder.

Tang.

Pemandu skru.

Tiub penyejuk haba dan / atau pita elektrik.

Wayar penari telanjang.

Naib.

Kacamata keselamatan.

Sarung tangan.

Perkara-perkara lain yang mungkin anda dapati berguna: ukuran penguasa / pita, multimeter, papan roti, pita, penanda sihir, kertas pasir, fail, gam panas. Dan jika anda seperti saya kit pertolongan cemas yang lengkap.

Bahan:

Elektronik:

1 Arduino Uno (atau serupa) Mikrokontroler

1 12v Motor pengurangan gear dengan tork yang tinggi

1 mikrofon kecil

1 SPST butang seketika. (biasanya "mati" / "terbuka")

1 LED Merah

1 LED Hijau

1 Photodiode

1 Quadruple separuh H-Bridge SN754410NE cip

1 100k ohm perintang (1/4 watt)

1 10k ohm perintang (1/4 watt)

1 1m ohm perintang (1/4 watt)

2 560 ohm perintang (Atau apa sahaja yang akan menjalankan LED merah dan hijau anda di 5v)

1 keping kecil papan perfusi. Lubang 5x15 atau lebih lama.

1 12V plag penyesuai dinding untuk Arduino

Ia juga merupakan idea yang baik untuk mempunyai papan roti untuk menubuhkan dan menguji litar sebelum anda menyoldernya. Kami akan melakukan ini dalam langkah 3.

Kes:

(Reka bentuk ini datang terus dari sumber Grathio.)

20 "PVC Pipe 1/2".

3 sudut kanan 1/2 "penyambung PVC.

1 5-cara 1/2 "penyambung PVC. (Contoh)

2 1/2 "palam akhir PVC.

3 1 1/2 "cawan sedutan. (Boleh didapati di kedai-kedai perkakasan dan pusat kerajinan.) NOTA: Jika pintu anda tidak sesuai untuk cawan sedutan, gantikannya dengan tiga penutup hujung dan anda boleh menggunakan jalur pelekat atau skru untuk memasang kunci.

6 "1/2" luas dengan 1/64 "jalur logam tebal (keluli, timah, tembaga, dan sebagainya) (boleh didapati di perkakasan, kraf dan kedai bekalan seni.)

4.5 "1" kepingan logam yang lebar, 1/32 "tebal (keluli, timah, tembaga, dan sebagainya) (boleh didapati di perkakasan, kraf dan kedai bekalan seni.)

2 3/32 "x 3/8" skru dengan kacang. (1/8 "akan berfungsi juga jika anda tidak dapat mencari yang lebih kecil.)

2 1.6M (metrik) skru 16mm. Idealnya dengan kepala countersunk jika anda dapat mencarinya. (Untuk mendapatkan motor, semak spesifikasi motor anda untuk melihat skru yang diperlukan. Satu motor yang saya cuba gunakan 1.6M, 2M yang lain. Anda mungkin perlu membeli yang panjang dan memotongnya dengan panjang.

1 Piala Suction Besar (untuk fotodiod)

Langkah 2: Program Arduino anda

Anda akan mahu memuat naik lakaran kami sebelum melakukan mana-mana elektronik supaya kami dapat menguji mereka semasa kami pergi. Kod ini dilampirkan di bawah dan mempunyai ulasan sepanjang. Anda perlu memasang perisian / pemacu Arduino untuk langkah ini!

1) Muat turun fail yang dilampirkan di bawah

2) Sambungkan Arduino anda ke input USB pada komputer anda.

3) Buka fail dalam Lakaran Arduino (atau jika ini memberi anda masalah, tukar fail ke.txt dan salin / tampal kod itu ke dalam lakaran kosong) dan kumpulkan / sahkan ia

4) Muat naik ke Arduino anda!

Dalam langkah-langkah yang akan datang, saya akan memberikan petua penyelesaian masalah yang melibatkan bahagian-bahagian tertentu kod (parameter tertentu perlu disesuaikan untuk setiap sistem). Bagi sesiapa yang berminat dengan spesifik kod, saya telah memasukkan ringkasan di bawah. Lakaran itu juga memberi komen di seluruh, tetapi ia adalah fail yang agak besar dan sedikit kekok untuk mentafsirkan pada masa-masa (berasa bebas untuk membuat ini lebih elegan, dan pastikan untuk berkongsi apa-apa kejayaan dalam komen!).

Talian 4-33: Menentukan pin Arduino, pemalar, dan pemboleh ubah yang akan kita gunakan dalam kod.

- Anda mungkin mahu tweak ini untuk pintu / sistem tertentu anda. Saya akan membimbing anda melalui ini

Talian 35-47 (persediaan): Menetapkan mod pin dan memulakan pemantauan bersiri

Lines 49-84, (gelung): Menentukan tingkah laku litar kerana ia menunggu untuk mendengar (lihat) ketukan (denyar)

- Di sinilah kita menyediakan latar belakang / ciri rata-rata, yang meneruskan data sampel dan mengesahkan nilai ambang dengan sewajarnya. Jika isyarat cahaya atau bunyi didaftarkan di atas nilai ambang, maka ia melaksanakan "listenToSecretKnock"

Talian 86-161 (listenToSecretKnock): Rekod pengetuk yang didaftarkan oleh mikrofon

- Rekod masa di antara mengetuk (panjang kelewatan) dalam array dan menghantar data untuk mengesahkanKnock. Sebahagian daripada bahagian ini didedikasikan untuk mengarahkan penunjuk LED, yang berkelip sepanjang masa dengan mengetuk berdaftar. Sekiranya kunci disahkan, pintu akan mengunci atau membuka kunci pintu apabila bergantung pada "doorState" (yang memberitahu jika kami terkunci terakhir atau tidak dikunci).

Baris 163-238 (listenToSecretPhotoKnock): Rekod kelipan cahaya yang didaftarkan oleh fotodiode

- Pada dasarnya sama seperti garisan 86-161, tetapi sekarang dengan isyarat / parameter fotodiode. Ini adalah tempat yang baik untuk bermula jika anda ingin menyelaraskan kod sedikit lebih, kerana ia mengulangi banyak apa yang digunakan sebelum ini (di senarai todo saya)

Talian 239-255 (triggerDoorUnlock): Menghidupkan motor untuk membuka kunci pintu

- Memahami bahagian ini mempunyai kaitan dengan mengetahui kelakuan jambatan h, yang menentukan arah voltan merentasi motor. Anda mungkin mahu melihat helaian speck untuk cip anda untuk memahami lebih lanjut (ini adalah yang saya gunakan: http://html.alldatasheet.com/html-pdf/28616/TI/SN754410NE/24/1/SN754410NE.html)

Talian 257-272 (triggerDoorLock): Menjalankan motor di belakang untuk mengunci pintu

- Bahagian ini juga mengulangi beberapa pengekodan dan mungkin mendapat manfaat daripada sedikit pembersihan.

Talian 274-349 (validateKnock): Periksa jika corak yang direkodkan adalah padanan dengan kunci.

- Ini menormalkan setiap ketukan untuk jeda yang paling lama dan membandingkan jarak relatif antara mengetuk. Ini bermakna anda boleh melakukan corak yang sama lambat atau cepat, dan ia masih perlu mencetuskan motor.

Langkah 3: Menguji Litar di Breadboard

Kami akan menyambung semua elektronik ke papan roti dan semak bahawa semuanya berfungsi seperti yang kita pergi. Anda boleh mencari skema roti papan lapis dan gambarajah susun atur yang dilampirkan pada imej di atas. TIDAK MUDAH BAGAIMANA MEMENUHI KEPADA APA-APA APLIKASI LANGKAH KECEMERLANGAN DAN TERDAPAT UNTUK MENGANDUNGKAN ARDUINO / LATIHAN ANDA DARI SUMBER-KOSONG SELESAI SELESAI!

1) Wire the Microphone

Solder sepasang 12 "(30cm) mengarah ke mikrofon Sambungkannya antara pin Analog 0 dan tanah. Juga pasang perintang 1M ohm antara pin Analog 0 dan tanah.

UJIAN: Dengan Arduino anda dipasang ke dalam komputer anda, buka tetingkap Serial Monitor (di bahagian atas kanan tetingkap lakaran). Anda harus melihat teks "Program bermula." Ketik mikrofon dan sepatutnya mengatakan "ketukan bermula" dan "ketukan" setiap kali anda mengetuknya. Berhenti untuk satu atau dua kali dan anda mungkin akan melihat "Rahsia ketukan gagal." Cuba mengetuk Cukur dan Potongan rambut dan lihat jika anda boleh mendapat "Pintu Dikunci!" mesej! Seterusnya, arduino sedang mendengar isyarat untuk mengunci pintu. Lalai untuk ini (berubah dalam kod) adalah empat kekunci yang sama.

TROUBLESHOOT:

- Jika anda tidak melihat apa-apa atau sampah dari pemantauan bersiri, pastikan port bersiri anda ditetapkan ke 9600 baud dan tetapkan semula kuasa

- Untuk menyesuaikan sensitiviti mengenali / mengesahkan corak ketukan, bermain dengan nilai "rejectValue" dan "averageRejectValue" (garisan 13 dan 14). Sekiranya ketukan individu dimatikan lebih daripada penolakan (peratusan) atau jika masa purata pengetatan dimatikan lebih daripada purata ResejectValue, arduino tidak akan mengesahkan ketukan atau mencetuskan motor

- Sekiranya ketukan tunggal didaftarkan lebih daripada satu kali, atau dua ketukan didaftarkan sebagai ketukan yang sama, menyesuaikan "knockFadeTime" (baris 15) yang menetapkan milisaat yang membolehkan kami mengetuk ketukan sebelum kita mendengar satu lagi (satu debounce yang berkesan pemasa).

2) Kawat Photodiode

Sambungkan sisi anod (biasanya satu dengan wayar yang lebih pendek) ke 5V dan katod ke pin analog 3 dan ke tanah melalui perintang 100K (lihat skematik).

UJIAN: Bersinar kilat cahaya pada fotodiod anda dan dalam tetingkap montor bersiri anda harus melihat teks "foto mengetuk bermula" dan "ketukan foto" setiap kali anda menyalakan cahaya. Cuba bersinar menyala cahaya dalam corak "Cukur dan Potongan Rambut" yang sama seperti yang anda lakukan dengan paip mikrofon.

TROUBLESHOOT:

- Jika anda tidak melihat apa-apa apabila anda menyalakan cahaya pada diod, cubalah menguji voltan merentasi perintang 100k dan pastikan ia berkelakuan seperti yang dijangkakan (voltan naik sehingga + 5V apabila tepu dengan cahaya dan hingga 0 apabila gelap).

- Sekiranya satu kilat didaftarkan lebih daripada sekali, atau dua kilat didaftarkan sebagai satu, laraskan "photoknockFadeTime" (baris 16)

3) Kembalikan LED

Membolehkan wayar sehingga beberapa LED supaya kita tidak perlu menggunakan kabel bersiri untuk melihat apa yang berlaku. Sambungkan LED merah ke pin digital 4 dan hijau LED ke pin digital 5 dengan 560 * ohm resistor mereka yang sesuai.

UJIAN: Jika anda menghidupkan litar LED hijau harus ringan dan reda momentari untuk setiap ketukan. Jika arduino mengesahkan urutan yang betul, hijau yang diketuai harus berkedip beberapa kali. Urutan yang salah harus dikedip merah.

TROUBLESHOOT:

- Semak kekutuban pada LED anda dan semua sambungan anda. LED anda memerlukan rintangan yang berbeza untuk dijalankan pada 5V, jadi jika mereka terlalu redup atau mati, anda boleh cuba menurunkan rintangan.

4) Kembalikan butang pengaturcaraan

Solder 8 "mengarah ke butang Sambungkan satu bahagian butang ke + 5V Dengan pin lain pada butang, sambungkan ke pin digital 2 dan melalui perintang 10K ke Ground.

UJIAN: Memohon kuasa. Apabila anda menekan butang lampu merah itu harus dihidupkan. Tahan butang dan ketuk urutan ringkas. Apabila mengetuk semasa pengaturcaraan kedua-dua LED perlu berkelip. Apabila anda selesai corak yang baru saja diulang, ulangi pada kedua-dua lampu. Selepas main balik selesai, kod ketuk baru disimpan dan lampu akan berganti merah dan hijau untuk memberitahu anda.

TROUBLESHOOT:

- Pastikan butang anda biasanya terbuka ("tertutup sesaat") dengan menggunakan ohmmeter untuk merakam rintangan dengan butang yang tidak ditekan. Jika ini mengembalikan sifar atau nilai yang rendah, anda mempunyai jenis tekan butang yang salah.

5) Wayar dalam jambatan h dan motor

Untuk jambatan h, sambungkan: pin 1 dan 16 hingga + 5V; pin 4 dan 5 ke GND, pin 2 ke pin digital Arduino 3, pin 7 ke pin digital arduino 6, dan pin 8 ke arduino Vin. Pateri 8 "membawa kepada motor dan sambungkan ini ke pin h-3 dan 6.

UJIAN: Kuasa litar. Betul ketuk default "Shave and a Haircut" ketuk, dan motor harus berjalan. Ketik corak yang betul sekali lagi dan motor harus berpaling ke arah yang bertentangan.

TROUBLESHOOT:

- Pastikan anda cip dikuasakan dan didasarkan.

- Periksa cara motornya bertukar. Kali pertama ia dilaksanakan, ia harus berpaling dengan cara yang sama apabila anda menghidupkan deadbolt anda untuk membukanya. Sekiranya tidak, tukar petunjuk motor yang harus membalikkan motor.

- Untuk mendapatkan motor anda untuk menghidupkan 180 darjah menyesuaikan "lockTurnTime" (garisan 17) sehingga motor bertukar 1/2 revolusi setiap kali ia dicetuskan

Tahniah! Anda telah membuat litar pengesan rahsia yang bekerja!

Langkah 4: Membina Lampiran Kes dan Photodiode

Untuk langkah-langkah terperinci untuk membuat pintu mount / kes pergi di sini:

Gunung saya berdasarkan reka bentuk ini dengan beberapa pengubahsuaian (saya mempunyai akses kepada beberapa alat yang kurang biasa melalui sekolah saya, Pomona College). Saya terjebak dengan reka bentuk PVC kerana ia ringan dan mudah alih. Saya mempunyai akses kepada peralatan yang membolehkan saya mencetak papan litar, jadi tidak banyak kabel yang perlu disumbat di dalam selongsong. Selepas menyiram papan litar akhir, saya menyentuh bahagian bawah (yang menghadap arduino) untuk memastikan tiada apa yang menyentuh arduino yang tidak sepatutnya. Motor saya tidak mempunyai pengurangan gear termasuk, jadi kami membina satu set gear dan kes gear aluminium. Mikrofon ini dijamin pada akhir jalur logam panjang (ditutupi pita merah jambu untuk hiasan).

UNTUK MEMBUAT ADAPTER FOTODIODE, gerakkan lubang dalam cawan sedutan sedikit lebih kecil dari ukuran dioda anda (jadi sedutan tidak akan dikompromikan) dan letakkan fotodioda yang melihat dari cawan sedutan ke arah permukaan pintu. Tinggalkan petunjuk panjang pada fotodioda supaya dapat menjangkau jarak antara peephole dan deadbolt.