Membuat kunci RFID menggunakan Arduino. Kunci kod do-it-yourself pada Arduino

Kunci kombinasi DIY pada Arduino


latar belakang

Kebetulan di tempat kerja kami memutuskan untuk memasang kunci gabungan pada pintu kami, kerana, semasa kami sentiasa berlari masuk, kami kehabisan pejabat, pintu yang mesti ditutup sentiasa jika tiada penduduk. Kunci sering terlupa di dalam. Secara umum, kami memutuskan bahawa kunci gabungan adalah jalan keluar yang bagus.

Selepas membelek-belek pasar loak China dan ebay, saya tidak menemui apa-apa yang murah dan lebih kurang serius dan memutuskan untuk membuatnya sendiri. Saya akan membuat tempahan segera bahawa platform Arduino telah dipilih untuk kesederhanaannya, kerana tiada pengalaman langsung dengan mikropengawal.

Di pintu, di bahagian luar pintu, mesti ada pad kekunci di mana kata laluan dimasukkan, dengan dalam membetulkan seluruh struktur. Suis buluh digunakan untuk mengawal penutupan pintu sepenuhnya. Meninggalkan pejabat, seseorang menekan “*” pada papan kekunci dan, tanpa menunggu pintu ditutup, pintu semakin dekat meneruskan perniagaannya, apabila pintu ditutup sepenuhnya, suis buluh akan ditutup dan kunci akan ditutup. Pintu dibuka dengan memasukkan kata laluan 4 digit dan menekan "#".

Aksesori

Arduino UNO = $18
Protoshield Arduino + papan roti = $6
L293D = $1
Ikatan wayar 30pcs untuk bredboard = $4
2 soket RJ45 = $4
2 palam RJ45 = $0.5
penggerak kunci pusat = 250 rubel.
Suis buluh = koyak percuma dari tingkap lama.
Espagnolette logam saiz raksasa = percuma
Sarung dari hab D-LINK lama yang diperbuat daripada besi 1.5 mm = percuma
Bekalan kuasa dari hab D-LINK yang sama untuk 12 dan 5v = juga percuma
Sekumpulan skru dan kacang untuk melampirkan semua barang ini pada kes itu = 100 rubel.
Panel kawalan daripada penggera pencuri= percuma.

Jumlah: $33.5 dan 350 rubel.

Tidak begitu sedikit, anda berkata, dan anda pasti akan betul, tetapi anda perlu membayar untuk kesenangan! Dan ia sentiasa bagus untuk mengumpul sesuatu dengan tangan anda sendiri. Di samping itu, reka bentuk boleh dikurangkan dengan banyak harga jika anda menggunakan MK kosong tanpa Arduino.

Persediaan perhimpunan

Saya ingin mengatakan beberapa perkataan tentang pembelian elemen utama reka bentuk penggerak. Di kedai kereta tempatan, mereka menawarkan saya dua jenis penggerak: "dengan dua wayar dan dengan lima." Menurut jurujual itu, mereka adalah sama dan perbezaan dalam bilangan wayar sama sekali tidak bermakna. Walau bagaimanapun, ternyata kemudian, ini tidak begitu! Saya memilih peranti dengan dua wayar, ia dikuasakan oleh 12v. Reka bentuk lima wayar mempunyai suis had untuk mengawal pergerakan tuil. Saya menyedari bahawa saya membeli yang salah hanya apabila saya mengasingkannya dan sudah terlambat untuk menukarnya. Lejang tuil ternyata terlalu pendek untuk menolak selak dengan betul, oleh itu, ia perlu diubah sedikit, iaitu, untuk mengeluarkan dua pencuci getah yang memendekkan lejang tuil penggerak. Untuk melakukan ini, mayat itu perlu digergaji bersama dengan gergaji besi biasa, kerana mesin basuh kedua ada di dalam. Pita saluran biru kepada kami, seperti biasa, membantu kami kemudian apabila memasangnya semula.

Untuk mengawal motor penggerak, pemacu motor L293D telah digunakan, yang boleh menahan beban puncak sehingga 1200 mA, dalam kes kami, apabila motor penggerak dihentikan, beban puncak meningkat kepada hanya 600 mA.

Kenalan daripada papan kekunci, pembesar suara dan dua LED telah dikeluarkan daripada panel kawalan daripada penggera keselamatan. Alat kawalan jauh dan peranti utama sepatutnya disambungkan menggunakan pasangan terpiuh dan penyambung RJ45

Pengaturcaraan.

Jadi, kerana saya tidak mempunyai pengalaman dengan pengaturcaraan Arduino sehingga sekarang. Saya mengambil kesempatan daripada perkembangan dan artikel orang lain daripada laman web arduino.cc. Siapa peduli, boleh lihat kod hodoh ini :)

Foto dan video

Hos saluran youtube "AlexGyver" diminta membuat kunci elektronik dengan tangannya sendiri. Selamat datang ke kitaran video tentang kunci elektronik pada arduino. AT secara umum tuan akan menerangkan idea tersebut.

Terdapat beberapa pilihan untuk mencipta sistem kunci elektronik. Selalunya digunakan untuk mengunci pintu dan laci, kabinet. Dan juga untuk mencipta tempat persembunyian dan peti besi rahsia. Oleh itu, anda perlu membuat susun atur yang mudah digunakan dan anda boleh dengan jelas dan terperinci menunjukkan struktur sistem dari dalam dan luar. Oleh itu, saya memutuskan untuk membuat bingkai dengan pintu. Ini akan memerlukan bar persegi 30 x 30. Papan lapis 10mm. Engsel pintu. Pada mulanya saya ingin membuat kotak papan lapis, tetapi saya teringat bahawa semua yang ada di dalam bilik itu bersepah dengan alat ganti. Tidak ada tempat untuk meletakkan kotak seperti itu. Oleh itu, susun atur akan dibuat. Jika seseorang mahu meletakkan dirinya kunci elektronik, kemudian melihat susun atur, anda boleh dengan mudah mengulangi segala-galanya.

Semua yang anda perlukan untuk sebuah istana boleh didapati di kedai Cina ini.

Matlamatnya adalah untuk membangunkan litar dan perisian tegar yang paling cekap untuk kunci elektronik. Anda akan dapat menggunakan hasil ini untuk memasang sistem ini pada pintu, laci, kabinet dan tempat persembunyian anda.

Pintu sudah siap. Sekarang anda perlu memikirkan cara membuka dan menutup secara elektronik. Untuk tujuan ini, selak solenoid berkuasa daripada aliexpress adalah sesuai (pautan ke kedai di atas). Jika anda menggunakan voltan pada terminal, ia akan terbuka. Rintangan gegelung adalah hampir 12 ohm, yang bermaksud bahawa pada voltan 12 volt, gegelung akan memakan kira-kira 1 ampere. Akan menghadapi tugas ini dan bateri litium dan modul rangsangan. Kami menyesuaikan voltan yang sesuai. Walaupun mungkin lebih sedikit. Selak dilekatkan pada bahagian dalam pintu pada jarak yang jauh supaya ia tidak menangkap tepi dan boleh ditutup. Heck harus menjadi rakan sejawat dalam bentuk kotak logam. Menggunakannya tanpa ia adalah menyusahkan dan salah. Kita perlu mengambil langkah, sekurang-kurangnya mencipta rupa operasi biasa.

Dalam mod melahu, selak dibuka secara normal, iaitu, jika ada pemegang di pintu, kami memberi dorongan, kami membuka pintu dengan pemegang. Tetapi jika anda musim bunga, kaedah ini tidak lagi sesuai. Penukar rangsangan tidak dapat menampung beban. Untuk membuka pintu pegas, anda perlu menggunakan bateri yang lebih besar dan penukar yang lebih berkuasa. Atau bekalan kuasa utama dan skor pada autonomi sistem. Terdapat hecks di kedai Cina saiz besar. Mereka muat dalam kotak. Kuasa boleh dibekalkan menggunakan geganti atau transistor mosfet, atau suis kuasa pada transistor yang sama. Pilihan yang lebih menarik dan lebih murah ialah servo yang disambungkan ke rod penyambung dengan sebarang elemen pengunci - selak atau injap yang lebih serius. Ia juga mungkin memerlukan sekeping jarum mengait keluli yang bertindak sebagai batang penyambung. Sistem sedemikian tidak memerlukan arus yang besar. Tetapi ia mengambil lebih banyak ruang dan logik kawalan yang lebih licik.

Terdapat dua jenis servos. Kecil lemah dan besar berkuasa, yang boleh dengan mudah ditolak ke dalam lubang pada pin logam yang serius. Kedua-dua pilihan yang ditunjukkan berfungsi pada kedua-dua pintu dan laci. Anda perlu bermain-main dengan kotak itu, membuat lubang di dinding gelongsor.

Bahagian kedua

Kebetulan di tempat kerja kami memutuskan untuk memasang kunci gabungan di pintu kami, kerana, semasa kami sentiasa masuk, kami kehabisan pejabat, pintu yang mesti sentiasa ditutup jika tiada penduduk. Kunci sering terlupa di dalam. Secara umum, kami memutuskan bahawa kunci gabungan adalah jalan keluar yang bagus.

Selepas membelek-belek pasar loak China dan ebay, saya tidak menemui apa-apa yang murah dan lebih kurang serius dan memutuskan untuk membuatnya sendiri. Saya akan membuat tempahan segera bahawa platform Arduino telah dipilih untuk kesederhanaannya, kerana tiada pengalaman langsung dengan mikropengawal.

Idea

Di pintu, di bahagian luar pintu, harus ada pad kekunci di mana kata laluan dimasukkan, dan seluruh struktur dipasang di bahagian dalam. Suis buluh digunakan untuk mengawal penutupan pintu sepenuhnya. Meninggalkan pejabat, seseorang menekan “*” pada papan kekunci dan, tanpa menunggu pintu ditutup, pintu semakin dekat meneruskan perniagaannya, apabila pintu ditutup sepenuhnya, suis buluh akan ditutup dan kunci akan ditutup. Pintu dibuka dengan memasukkan kata laluan 4 digit dan menekan "#".

Aksesori

Arduino UNO = $18
Protoshield Arduino + papan roti = $6
L293D = $1
Ikatan wayar 30pcs untuk bredboard = $4
2 soket RJ45 = $4
2 palam RJ45 = $0.5
penggerak kunci pusat = 250 rubel.
Suis buluh = koyak percuma dari tingkap lama.
Espagnolette logam saiz raksasa = percuma
Sarung dari hab D-LINK lama yang diperbuat daripada besi 1.5 mm = percuma
Bekalan kuasa dari hab D-LINK yang sama untuk 12 dan 5v = juga percuma
Sekumpulan skru dan kacang untuk melampirkan semua barang ini pada kes itu = 100 rubel.
Panel kawalan daripada sistem penggera keselamatan = percuma.

Jumlah:$33.5 dan 350 rubel.

Tidak begitu sedikit, anda berkata, dan anda pasti akan betul, tetapi anda perlu membayar untuk kesenangan! Dan ia sentiasa bagus untuk mengumpul sesuatu dengan tangan anda sendiri. Di samping itu, reka bentuk boleh dikurangkan dengan banyak harga jika anda menggunakan MK kosong tanpa Arduino.

Persediaan perhimpunan

Saya ingin mengatakan beberapa perkataan tentang pembelian elemen utama reka bentuk penggerak. Di kedai kereta tempatan, mereka menawarkan saya dua jenis penggerak: "dengan dua wayar dan dengan lima." Menurut jurujual itu, mereka adalah sama dan perbezaan dalam bilangan wayar sama sekali tidak bermakna. Walau bagaimanapun, ternyata kemudian, ini tidak begitu! Saya memilih peranti dengan dua wayar, ia dikuasakan oleh 12v. Reka bentuk lima wayar mempunyai suis had untuk mengawal pergerakan tuil. Saya menyedari bahawa saya membeli yang salah hanya apabila saya mengasingkannya dan sudah terlambat untuk menukarnya. Lejang tuil ternyata terlalu pendek untuk menolak selak dengan betul, oleh itu, ia perlu diubah sedikit, iaitu, untuk mengeluarkan dua pencuci getah yang memendekkan lejang tuil penggerak. Untuk melakukan ini, badan itu perlu digergaji bersama dengan gergaji besi biasa, kerana mesin basuh kedua ada di dalamnya. Pita saluran biru kepada kami, seperti biasa, membantu kami kemudian apabila memasangnya semula.
Untuk mengawal motor penggerak, pemacu motor L293D telah digunakan, yang boleh menahan beban puncak sehingga 1200 mA, dalam kes kami, apabila motor penggerak dihentikan, beban puncak meningkat kepada hanya 600 mA.
Kenalan daripada papan kekunci, pembesar suara dan dua LED telah dikeluarkan daripada panel kawalan daripada penggera keselamatan. Alat kawalan jauh dan peranti utama sepatutnya disambungkan menggunakan pasangan terpiuh dan penyambung RJ45

Pengaturcaraan.

Jadi, kerana saya tidak mempunyai pengalaman dengan pengaturcaraan Arduino sehingga sekarang. Saya mengambil kesempatan daripada perkembangan dan artikel orang lain daripada laman web arduino.cc. Siapa peduli, boleh lihat kod hodoh ini :)

Foto dan video



Arduino dan penggerak


Bekalan Kuasa


papan kekunci


Espagnolette (disambungkan kepada penggerak dengan jarum logam dan di mana pengecutan haba diletakkan untuk kecantikan)

Video proses pengendalian peranti:

Kemajuan tidak berhenti dan "Kunci pintar" semakin muncul di pintu pangsapuri, garaj dan rumah.

Kunci serupa dibuka apabila anda menekan butang pada telefon pintar anda. Nasib baik, telefon pintar dan tablet telah pun memasuki kehidupan seharian kita. Dalam sesetengah kes, "kunci pintar" disambungkan kepada "perkhidmatan awan" seperti Google Drive dan dibuka dari jauh. Di samping itu, pilihan ini memungkinkan untuk memberikan akses kepada pembukaan pintu kepada orang lain.

Dalam projek ini, versi DIY kunci pintar pada Arduino akan dilaksanakan, yang boleh dikawal dari jauh dari mana-mana sahaja di dunia.

Di samping itu, projek itu telah menambah keupayaan untuk membuka kunci selepas pengecaman cap jari. Untuk ini, penderia cap jari akan disepadukan. Kedua-dua pilihan untuk membuka pintu akan berfungsi berdasarkan platform Adafruit IO.

Kunci seperti ini boleh menjadi langkah pertama yang hebat dalam projek Rumah Pintar anda.

Menyediakan penderia cap jari

Untuk bekerja dengan penderia cap jari, terdapat perpustakaan yang sangat baik untuk Arduino, yang sangat memudahkan proses menyediakan penderia. Projek ini menggunakan Arduino Uno. Papan Adafruit CC3000 digunakan untuk menyambung ke internet.

Mari mulakan dengan menyambungkan kuasa:

  • Sambungkan pin 5V dari papan Arduino ke rel kuasa merah;
  • Pin GND dari Arduino bersambung ke rel biru pada papan litar tanpa pateri.

Mari kita teruskan untuk menyambungkan penderia cap jari:

  • Sambungkan kuasa dahulu. Untuk melakukan ini, wayar merah disambungkan ke rel +5 V, dan wayar hitam ke rel GND;
  • Wayar sensor putih menyambung ke pin 4 pada Arduino.
  • Kawat hijau pergi ke pin 3 pada mikropengawal.

Sekarang mari kita lihat modul CC3000:

  • Sambungkan pin IRQ dari papan CC3000 ke pin 2 pada Arduino.
  • VBAT - ke pin 5.
  • CS - ke pin 10.
  • Selepas itu, anda perlu menyambungkan pin SPI ke Arduino: MOSI, MISO dan CLK - masing-masing ke pin 11, 12 dan 13.

Dan akhirnya, anda perlu memberikan kuasa: Vin - ke Arduino 5V (rel merah pada papan litar anda), dan GND ke GND (rel biru pada papan roti).

Foto projek yang dipasang sepenuhnya ditunjukkan di bawah:

Sebelum membangunkan lakaran yang akan memuat naik data ke Adafruit IO, anda perlu menghantar data cap jari anda kepada penderia. Jika tidak, dia tidak akan mengenali anda pada masa hadapan;). Kami mengesyorkan menentukur penderia cap jari menggunakan Arduino secara berasingan. Jika anda menggunakan penderia ini buat kali pertama, kami mengesyorkan agar anda membiasakan diri dengan proses penentukuran dan arahan terperinci untuk bekerja dengan penderia cap jari.

Jika anda belum berbuat demikian, kemudian daftar untuk akaun Adafruit IO.

Selepas itu, kita boleh beralih ke peringkat seterusnya untuk membangunkan "kunci pintar" pada Arduino: iaitu, pembangunan lakaran yang akan menghantar data kepada Adafruit IO. Oleh kerana program ini agak besar, dalam artikel kami akan menyerlahkan dan mempertimbangkan hanya bahagian utamanya, dan kemudian kami akan memberikan pautan ke GitHub, di mana anda boleh memuat turun lakaran penuh.

Lakaran bermula dengan memuatkan semua perpustakaan yang diperlukan:

#termasuk

#termasuk

#termasuk

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#termasuk

#termasuk >

Selepas itu, anda perlu sedikit membetulkan lakaran dengan memasukkan parameter rangkaian WiFi anda, menyatakan SSID dan kata laluan (kata laluan):

#define WLAN_SECURITY WLAN_SEC_WPA2>

Selain itu, anda mesti memasukkan nama dan kunci AIO (kunci) untuk memasukkan akaun IO Adafruit anda:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key">

Baris berikut bertanggungjawab untuk interaksi dan pemprosesan data daripada penderia cap jari. Jika sensor telah diaktifkan (cap jari dipadankan), ia akan menjadi "1":

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/suapan/cap jari";

Adafruit_MQTT_Publish cap jari = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

Di samping itu, kami perlu membuat contoh objek SoftwareSerial untuk sensor kami:

SoftwareSerial mySerial(3, 4);

Selepas itu, kami boleh mencipta objek untuk sensor kami:

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

Di dalam lakaran, kami menentukan fingerID mana yang harus mengaktifkan kunci pada masa hadapan. Dalam contoh ini, 0 digunakan, yang sepadan dengan ID cap jari pertama yang digunakan oleh penderia:

int fingerID = 0;

Selepas itu, kami memulakan kaunter dan kelewatan (kelewatan) dalam projek kami. Pada asasnya, kami mahu kunci berfungsi secara automatik selepas dibuka. Contoh ini menggunakan kelewatan selama 10 saat, tetapi anda boleh melaraskan nilai ini untuk memenuhi keperluan anda:

int activationCounter = 0;

int lastActivation = 0;

int activationTime = 10 * 1000;

Dalam badan fungsi persediaan(), kami memulakan penderia cap jari dan memastikan cip CC3000 disambungkan ke rangkaian WiFi anda.

Dalam badan fungsi gelung(), kami menyambung kepada Adafruit IO. Barisan berikut bertanggungjawab untuk ini:

Selepas menyambung ke platform Adafruit IO, kami menyemak cap jari terakhir. Jika ia sepadan dan kunci tidak didayakan, kami menghantar "1" kepada Adafruit IO untuk diproses:

jika (ID cap jari == fingerID && lockState == palsu) (

Serial.println(F("Akses diberikan!"));

lockState=benar;

Serial.println(F("Gagal"));

Serial.println(F("OK!"));

lastActivation = millis();

Jika, dalam fungsi gelung(), kunci diaktifkan dan kami telah mencapai nilai kelewatan yang ditunjukkan di atas, kami menghantar "0":

if ((activationCounter - lastActivation > activationTime) && lockState == true) (

lockState=false;

jika (! cap jari.publish(state)) (

Serial.println(F("Gagal"));

Serial.println(F("OK!"));

Anda boleh memuat turun versi terkini kod di GitHub.

Sudah tiba masanya untuk menguji projek kami! Jangan lupa untuk memuat turun dan memasang semua perpustakaan Arduino yang diperlukan!

Pastikan anda telah membuat semua perubahan yang diperlukan pada lakaran dan muat naik ke Arduino anda. Kemudian buka tetingkap monitor bersiri.

Apabila Arduino bersambung ke rangkaian WiFi, penderia cap jari akan berkelip merah. Letakkan jari anda pada sensor. Tetingkap monitor bersiri harus memaparkan nombor ID. Jika ia sepadan, mesej akan muncul, "OK!". Ini bermakna data telah dihantar ke pelayan IO Adafruit.

Skim dan lakaran untuk menyediakan kunci selanjutnya menggunakan contoh LED

Sekarang mari kita berurusan dengan bahagian projek yang bertanggungjawab secara langsung untuk mengurus kunci pintu. Untuk menyambung ke rangkaian wayarles dan mengaktifkan / menyahaktifkan kunci, anda memerlukan modul Adafruit ESP8266 tambahan (modul ESP8266 tidak semestinya daripada Adafruit). Contoh di bawah akan menunjukkan kepada anda betapa mudahnya untuk berkomunikasi antara dua platform (Arduino dan ESP8266) menggunakan Adafruit IO.

Dalam bahagian ini, kami tidak akan berfungsi secara langsung dengan kunci. Sebaliknya, kami hanya akan menyambungkan LED ke pin di mana kunci akan disambungkan kemudian. Ini akan membolehkan untuk menguji kod kami tanpa menyelidiki secara khusus reka bentuk kunci.

Litarnya agak mudah: mula-mula pasang ESP8266 pada papan roti. Kemudian pasang LED. Jangan lupa bahawa kaki panjang (positif) LED disambungkan melalui perintang. Kaki kedua perintang disambungkan ke pin 5 pada modul ESP8266. LED kedua (katod) disambungkan ke pin GND pada ESP8266.

sepenuhnya litar dipasang ditunjukkan dalam foto di bawah.


Sekarang mari kita lihat lakaran yang kami gunakan untuk projek ini. Sekali lagi, kod itu agak besar dan kompleks, jadi kami hanya akan merangkumi bahagian utamanya:

Kami mulakan dengan memasukkan perpustakaan yang diperlukan:

#termasuk

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

Konfigurasikan tetapan WiFi:

#define WLAN_SSID "ssid_wifi_anda"

#define WLAN_PASS "kata laluan_wifi_anda"

#define WLAN_SECURITY WLAN_SEC_WPA2

Kami juga mengkonfigurasi parameter IO Adafruit. Sama seperti dalam bahagian sebelumnya:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_username"

#define AIO_KEY "adafruit_io_key"

Kami menunjukkan kepada pin mana kami menyambungkan LED (pada masa hadapan ia akan menjadi kunci atau geganti kami):

int relayPin = 5;

Interaksi dengan penderia cap jari, seperti dalam bahagian sebelumnya:

const char PROGMEM LOCK_FEED = AIO_USERNAME "/feeds/lock";

Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe(&mqtt, LOCK_FEED);

Dalam badan fungsi persediaan(), kami menunjukkan bahawa pin yang disambungkan LED harus berfungsi dalam mod OUTPUT:

pinMode(relayPin, OUTPUT);

Dalam gelung gelung(), kami mula-mula menyemak sama ada kami telah menyambung ke Adafruit IO:

Selepas itu, kami menyemak isyarat yang datang. Jika "1" dihantar, kami mengaktifkan pin yang kami nyatakan sebelum ini, yang mana LED kami disambungkan. Jika kami menerima "0", kami meletakkan kenalan dalam keadaan "rendah":

Adafruit_MQTT_Langgan *langganan;

manakala ((langganan = mqtt.readSubscription(1000))) (

jika (langganan == &kunci) (

Serial.print(F("Dapat: "));

Serial.println((char *)lock.lastread);

// Simpan arahan sebagai data rentetan

Perintah rentetan = Rentetan((char *)lock.lastread);

jika (perintah == "0") (

digitalWrite(relayPin, LOW);

jika (perintah == "1") (

digitalWrite(relayPin, HIGH);

Untuk mencari versi terkini Anda boleh menyemak lakaran di GitHub.

Sudah tiba masanya untuk menguji projek kami. Jangan lupa untuk memuat turun semua perpustakaan yang diperlukan untuk Arduino anda dan semak sama ada anda membuat perubahan yang betul pada lakaran.

Penukar USB-FTDI mudah boleh digunakan untuk memprogram cip ESP8266.

Muat naik lakaran ke Arduino dan buka tetingkap monitor bersiri. Pada peringkat ini, kami hanya menyemak sama ada kami dapat menyambung ke Adafruit IO: kami akan melihat fungsi yang tersedia dengan lebih lanjut.

Menguji projek

Sekarang mari kita mulakan ujian! Pergi ke menu pengguna Adafruit IO anda, dalam menu Suapan. Semak sama ada saluran untuk cap jari dan kunci dibuat atau tidak (pada skrin cetakan di bawah, ini ialah cap jari dan garisan kunci):


Jika ia tidak wujud, anda perlu menciptanya secara manual.

Sekarang kita perlu memastikan pertukaran data antara cap jari dan saluran kunci. Saluran kunci mesti ditetapkan kepada "1" apabila saluran cap jari ditetapkan kepada "1" dan sebaliknya.

Untuk melakukan ini, kami menggunakan alat Adafruit IO yang sangat berkuasa: pencetus. Pencetus pada asasnya ialah syarat yang boleh anda gunakan pada saluran yang dikonfigurasikan. Iaitu, ia boleh digunakan untuk menyambung dua saluran.

Buat pencetus reaktif baharu daripada bahagian Pencetus dalam Adafruit IO. Ini akan memberikan keupayaan untuk menukar data antara saluran penderia cap jari dan kunci:


Inilah yang sepatutnya kelihatan apabila kedua-dua pencetus dikonfigurasikan:

Semua! Kini kami benar-benar boleh menguji projek kami! Kami meletakkan jari kami pada sensor dan melihat bagaimana Arduino mula berkedip dengan LED, yang sepadan dengan pemindahan data. Selepas itu, LED pada modul ESP8266 harus mula berkelip. Ini bermakna dia mula menerima data melalui MQTT. LED pada papan litar juga harus dihidupkan pada ketika ini.

Selepas kelewatan yang anda tetapkan dalam lakaran (lalai ialah 10 saat), LED akan dimatikan. tahniah! Anda boleh mengawal LED dengan cap jari anda dari mana-mana sahaja di dunia!

Menyediakan kunci elektronik

Kami telah mencapai bahagian terakhir projek: sambungan dan kawalan terus kunci elektronik menggunakan Arduino dan sensor cap jari. Projek ini tidak mudah, anda boleh menggunakan semua sumber dalam bentuk di mana ia dibentangkan di atas, tetapi bukannya LED, sambungkan geganti.

Untuk menyambungkan kunci secara terus, anda memerlukan komponen tambahan: bekalan kuasa 12 V, bicu kuasa, transistor (dalam contoh ini MOSFET IRLB8721PbF digunakan, tetapi satu lagi, seperti transistor bipolar TIP102, boleh digunakan. Jika anda menggunakan transistor bipolar, anda perlu menambah perintang.

Ditunjukkan di bawah gambarajah litar menyambungkan semua komponen ke modul ESP8266:


Ambil perhatian bahawa jika anda menggunakan transistor MOSFET, anda tidak memerlukan perintang antara ESP8266 pin 5 dan transistor.

Projek yang dipasang sepenuhnya ditunjukkan dalam foto di bawah:


Kuasakan modul ESP8266 menggunakan modul FTDI dan sambungkan bekalan kuasa 12V ke bicu. Jika anda menggunakan pin yang disyorkan di atas untuk sambungan, anda tidak perlu menukar apa-apa dalam lakaran.

Kini anda boleh meletakkan jari anda pada penderia: kunci harus berfungsi sebagai tindak balas kepada cap jari anda. Video di bawah menunjukkan projek kunci pintar automatik sedang beraksi:

Pembangunan lanjut projek Smart Lock

Dalam projek kami dikeluarkan alat kawalan jauh kunci pintu dengan cap jari.

Jangan ragu untuk mencuba, mengubah suai lakaran dan abah-abah. Contohnya, anda boleh menggantikan kunci pintu elektronik dengan geganti untuk mengawal kuasa pencetak 3D, lengan robot atau quadcopter anda...

Anda boleh membangunkan anda Rumah pintar". Sebagai contoh, aktifkan sistem pengairan pada Arduino dari jauh atau hidupkan lampu di dalam bilik... Jangan lupa bahawa anda boleh secara serentak mengaktifkan bilangan peranti yang hampir tidak terhad menggunakan Adafruit IO.

Tinggalkan komen, soalan dan kongsi anda pengalaman peribadi di bawah. Dalam perbincangan, idea dan projek baru sering dilahirkan!

Tutorial hari ini adalah tentang cara menggunakan pembaca RFID dengan Arduino untuk mencipta sistem penguncian yang mudah, secara ringkas- Kunci RFID.

RFID (Eng. Radio Frequency Identification, radio frequency identification) ialah kaedah pengecaman automatik objek di mana data yang disimpan dalam apa yang dipanggil transponder, atau tag RFID, dibaca atau ditulis menggunakan isyarat radio. Mana-mana sistem RFID terdiri daripada pembaca (pembaca, pembaca atau penyiasat) dan transponder (aka RFID tag, kadangkala istilah RFID tag juga digunakan).

Tutorial akan menggunakan tag RFID dengan Arduino. Peranti membaca pengecam unik (UID) setiap teg RFID yang kami letakkan di sebelah pembaca dan memaparkannya pada paparan OLED. Jika UID tag adalah sama dengan nilai pratakrif yang disimpan dalam memori Arduino, maka kita akan melihat mesej "Tidak Berkunci" pada paparan. Jika pengecam unik tidak sama dengan nilai yang dipratentukan, mesej "Dibuka kunci" tidak akan muncul - lihat foto di bawah.

Istana ditutup

Istana dibuka

Butiran yang diperlukan untuk membuat projek ini:

  • Pembaca RFID RC522
  • Paparan OLED
  • Papan roti
  • wayar

Maklumat tambahan:

  • Bateri (powerbank)

Jumlah kos komponen projek adalah lebih kurang $15.

Langkah 2: Pembaca RFID RC522

Setiap tag RFID mempunyai cip kecil (gambar) kad putih). Jika anda menghalakan lampu suluh pada kad RFID ini, anda boleh melihat cip kecil dan gegelung yang mengelilinginya. Cip ini tidak mempunyai bateri untuk menjana kuasa. Ia menerima kuasa daripada pembaca secara wayarles menggunakan ini gegelung besar. Anda boleh membaca kad RFID seperti ini dari jarak sehingga 20mm.

Cip yang sama wujud dalam tag fob kunci RFID.

Setiap tag RFID mempunyai nombor unik yang mengenal pastinya. Ini ialah UID yang ditunjukkan pada paparan OLED. Dengan pengecualian UID ini, setiap teg boleh menyimpan data. Kad jenis ini boleh menyimpan sehingga 1,000 data. Mengagumkan, bukan? Ciri ini tidak akan digunakan hari ini. Hari ini, semua yang menarik ialah pengenalan kad tertentu oleh UIDnya. Pembaca RFID dan dua kad RFID ini berharga kira-kira $4.

Langkah 3 Paparan OLED

Tutorial menggunakan monitor OLED I2C 0.96" 128x64.

Ini adalah paparan yang sangat baik untuk digunakan dengan Arduino. Ia adalah paparan OLED dan ini bermakna ia mempunyai penggunaan kuasa yang rendah. Penggunaan kuasa paparan ini adalah kira-kira 10-20mA dan ia bergantung pada bilangan piksel.

Paparan mempunyai resolusi 128 kali 64 piksel dan bersaiz kecil. Terdapat dua pilihan paparan. Satu adalah monokrom, dan satu lagi, seperti yang digunakan dalam tutorial, boleh memaparkan dua warna: kuning dan biru. Bahagian atas skrin hanya boleh menjadi kuning, dan Bahagian bawah- biru.

Paparan OLED ini sangat terang dan mempunyai perpustakaan yang hebat dan sangat bagus yang telah dibangunkan oleh Adafruit untuk paparan ini. Di samping itu, paparan menggunakan antara muka I2C, jadi menyambung ke Arduino adalah sangat mudah.

Anda hanya perlu menyambungkan dua wayar kecuali Vcc dan GND. Jika anda baru menggunakan Arduino dan ingin menggunakan paparan yang murah dan mudah dalam projek anda, mulakan di sini.

Langkah 4: Menyatukan Semua Bahagian

Apa lagi yang perlu dibaca