Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Pembaca kartu Arduino Ethernet Rfid

Komponen dan persediaan

Mifare MFRC522
Semua jenis pembaca spi rfid boleh saja
× 1
Arduino UNO
Semua arduino boleh
× 1
enc28j60
Anda harus mengubah kode untuk apa pun yang tidak menggunakan ENC28J60
× 1
Kabel jumper (generik)
× 1
Breadboard (generik)
× 1
Komputer
Komputer apa pun yang terhubung ke internet
× 1

Alat dan mesin yang diperlukan

Gunting
Atau penari telanjang kawat

Aplikasi dan layanan online

Pycharm
Arduino IDE

Tentang proyek ini


Pernahkah Anda berpikir untuk menambahkan sistem keamanan tag/kartu RFID atau sistem pemantauan di rumah dan/atau kantor Anda. Nah jika Anda sampai di sini saya yakin Anda sudah melihat betapa mahalnya mereka mulai dari $200 hingga $2000, TERLALU BANYAK BENAR!?? Nah, seorang teman dan saya telah memutuskan untuk membuat sistem dengan biaya di bawah $100 dan dapat melakukan lebih dari sekadar mengakses pintu, jadi inilah yang kami buat. Pembaca tag arduino rfid berkemampuan internet. bahwa untuk $20 lebih dapat membuka pintu. Sistem ini dirancang untuk melacak siswa di sekolah menengah kami dan kami berharap sekolah menyetujuinya.

Ini prototipenya:

Anda mungkin berpikir itu akan memakan waktu lama, yatta yatta yatta. Namun hal ini hanya membutuhkan waktu sekitar 6 jam (Karena saya memiliki masalah daya), tetapi ini bisa memakan waktu sekitar 30 menit untuk menyiapkan seperti contoh di atas. Semua kode dan gambar ada di bawah jadi jika Anda bingung pada langkah selanjutnya, lihat gambar/kode yang lebih rendah.

Berikut langkah-langkahnya:

Sebelum Kita Mulai (Diperlukan)

Sebelum kami dapat mulai memindai kartu dan mengirimkannya ke server Telnet/TCP kami, kami memerlukan beberapa perpustakaan. Dapatkan UIPEthernet di sini https://github.com/ntruchsess/arduino_uip

dapatkan MFRC522 di sini https://github.com/miguelbalboa/rfid

Letakkan kedua library ini di Program Files(x86)/Arduino/Libraries/ Restart arduino

Perangkat Keras

  1. Arduino Nano (Anda selalu dapat mengubah kode agar sesuai dengan perangkat Anda)
  2. MFRC522 dengan kartu MAIFARE
  3. Kabel jumper (Pria ke Pria) (Pria ke Wanita)
  4. enc28j60 modul/perisai ethernet
  5. LED RGB
  6. Konverter AC-DC 3V ATAU 5V lebih besar dari 700 mileamp

Penyiapan

  1. Lampirkan arduino ke papan tempat memotong roti (Jika nano atau mikro)
  2. Cari pinout papan Anda secara online untuk menemukan penyiapan SPI(Ubah nilai di bawah)
  3. Hubungkan arduino pin 10 (SS) ke modul ethernet ss atau CS
  4. Hubungkan arduino pin 12 (MISO) ke rfid MISO dan ethernet SO
  5. Hubungkan arduino pin 11 (MOSI) ke rfid MOSI dan ethernet SI
  6. Hubungkan arduino pin 13 (SCK) ke rfid SCK dan ethernet SCK
  7. Hubungkan pin arduino 9 ke pin rfid RST
  8. Hubungkan pin arduino 8 ke rfid SSN
  9. Hubungkan pin arduino 5 ke led hijau, 4 ke biru dan 3 ke merah
  10. Hubungkan AC ke DC ke + dan - di papan tempat memotong roti
  11. Ground arduino Anda ke ac ke dc
  12. Hubungkan VCC dan GND pada rfid dan ethernet ke ac-dc (INGAT PERANGKAT INI HANYA 3v!!!!! jangan suplai 5v) Jika masalah gunakan resistor untuk membawa tegangan ke 3v
  13. Sambungkan pin VCC pada LED ke arduino 3v atau ac-dc 3v
  14. Hubungkan kabel ethernet ke modul dan pastikan berada di jaringan yang sama dengan komputer Anda
  15. Colokkan kabel USB dari komputer ke arduino
  16. Hubungkan komputer ke jaringan yang sama


Ubah kode agar sesuai dengan kebutuhan Anda

  1. Kode ini dikomentari dengan cukup baik sehingga Anda bisa masuk dan memodifikasi bagian-bagian tertentu tetapi satu hal yang pasti adalah modul ehternet
  2. Alamat Mac dapat tetap sama (Kecuali Anda berencana membuat beberapa alamat ini)
  3. Jika Anda menggunakan 192.168.0.1 jaringan ip dasar Anda dapat menyimpan ip
  4. Sekali lagi Anda dapat menyimpan dns, hanya waktu untuk mengubah ke 8.8.4.4
  1. jalankan ipconfig untuk menemukan gateway Anda, defaultnya adalah 192.168.1.1 (jika Anda tidak mengetahuinya) (Kode saat ini adalah 192.168.1.5)
  2. jalankan command prompt dan ketik ipconfig untuk mengetahui alamat ip komputer Anda
  1. gulir ke bawah untuk menemukan KIRIM KE SERVER, dan masukkan ip komputer Anda atau jika port meneruskan router ke alamat ip publik Anda
  2. PASTIKAN ANDA MEMILIKI PYTHON DAN MENJALANKAN SERVER (Ingat itu hanya kode contoh yang kami gunakan untuk presentasi kami ke sekolah, jadi server python sudah dibuat sebelumnya dan hampir tidak dimodifikasi, Anda dapat menggunakan server Telnet/TCP apa pun)

Dan kode lain yang mungkin perlu Anda ubah:


Menjalankan kode

  1. Colokkan daya AC-DC ke dinding
  2. Pastikan arduino Anda saat ini terhubung ke komputer
  3. Pastikan kedua perangkat berada di jaringan yang sama
  4. Flash kode arduino Anda yang telah dimodifikasi atau jika yang saya miliki berfungsi untuk Anda, maka baguslah (Hampir tidak ada kemungkinan Anda harus memodifikasinya)
  5. Mulai skrip Python, C++, atau server Telnet/TCP apa pun di jaringan Anda
  6. Mulai ulang arduino Anda agar aman
  7. Tunggu sampai lampu berubah menjadi biru dan coba pindai kartu, jika server Anda mendapatkan ID kartu, maka Anda siap untuk pergi
  8. Ingat apa arti lampu Ungu/merah pudar berarti booting
  9. Merah berarti kesalahan seperti kartu berada pada sudut yang aneh dan/atau server tidak merespon tepat waktu
  10. Hijau berarti lulus sehingga server merespon dengan pergi dan Anda dapat membaca kartu berikutnya
  11. Biru berarti menunggu/memuat menunggu kartu atau tanggapan
  12. Jika arduino Anda mulai lag dan membutuhkan waktu lebih dari 30 detik untuk menunjukkan lampu merah berarti modul arduino ethernet tidak dapat terhubung ke server sama sekali. Ini bisa disebabkan oleh beberapa hal pertama arduino Anda tidak memiliki daya yang cukup dan modul arduino ethernet sedang berjuang untuk mengirim paket atau server komputer Anda tidak berjalan atau bahwa arduino dan komputer Anda tidak berada di jaringan yang sama.
  13. Jika arduino Anda terus tertinggal, coba trik ini untuk memperbaikinya

  14. Matikan firewall windows

  15. masuk ke setelan firewall lanjutan dan izinkan port masuk/keluar 23
  16. port forward router Anda ke komputer Anda dengan port 23
  17. Jika Anda nirkabel, sambungkan arduino langsung ke router dan komputer Anda ke komputer yang sama
  18. Beli adaptor daya AC-DC yang lebih berat
  19. Lain mungkin Anda memasukkan alamat ip Anda atau alamat penghubung yang salah

  20. Selain itu hubungi saya di [email protected] jika ada masalah

  21. ANDA SEMOGA BERMANFAAT!!!

Ingat tidak ada kode untuk sistem kunci pintu, karena saya tidak punya, ini berarti Anda harus menambahkan beberapa kode jika Anda ingin menggunakan ini tidak hanya sebagai sistem pelacakan tetapi sebagai sistem pelacakan kunci pintu.


Silakan baca di bawah ini:

Kode

  • Kode Arduino
  • Contoh kode server
Kode ArduinoC/C++
Ini adalah perangkat lunak pada arduino yang hampir siap digunakan, jadi yang Anda lakukan hanyalah menyesuaikan gateway, ip, gateway, alamat mac, dan dns
/* * ------------ ---------------------- * MFRC522 Arduino * Pembaca/PCD Nano v3 * Pin Sinyal Pin * -------------- -------------------- * RST/Reset RST D9 * SPI SS NSS D10 * SPI MOSI MOSI D11 * SPI MISO MISO D12 * SPI SCK SCK D13 */// LIBRARY PERTAMA YANG PERLU DIINSTAL ADALAH UIP ETHERNET KEDUA MFRC522 KEDUANYA DI GITHUB#include #include  //Untuk pemilihan key#include  //The Pustaka kunci RFID#define RST_PIN 9 // Dapat dikonfigurasi, lihat tata letak pin tipikal di atas - Ini untuk Arduino Nano - Untuk RFID#define SS_PIN 8 //KAMI MENGGUNAKAN 8 UNTUK RFID KARENA MODUL ETHERNET MENGGUNAKAN 10 byte sektor =0; byte blockAddr =0; ////////Akses sektor/blok tertentu dalam kartu, blok trailer adalah blok terakhir byte trailerBlock =1;int red =3;int blue =4; //Pin untuk RGB LEDint green =5;EthernetClient client; //ETHERNET INSTANCEMFRC522 mfrc522(SS_PIN, RST_PIN); // Buat instance MFRC522.MFRC522::MIFARE_Key key; //Menetapkan kunci instancesigned waktu tunggu yang lama; //TIMEOUT SEHINGGA ITU TIDAK ADA SELAMANYA, batalkan setup(){ //UI MULAI pinMode(merah, OUTPUT); pinMode(biru, OUTPUT); //Initkan pinMode LED RGB(hijau, OUTPUT); Mengatur ulang(); //Mulai dengan led dari Serial.begin(9600); //Mulai koneksi komputer dengan kecepatan 9600 bit per detik //UI END //ETHERNET MODULE INITIAL SPI.begin(); // Init SPI bus uint8_t mac[6] ={0x00,0x01,0x02,0x03,0x04,0x05}; //MAC =000102030405 IPalamat mip(192.168.1.160); //IP =192.168.1.160 IPAaddress mdns(8,8,8,8); //DNS =8.8.8.8 IPAaddress mgate(192.168.1,5); //GATEWAY =192.168.1.5 IPaddress msubnet(255.255.255,0); //SUBNET =255.255.255.0 Ethernet.begin(mac, mip, mdns, mgate , msubnet); //CONNECT MENGGUNAKAN DI ATAS Serial.println("Koneksi berhasil"); // AKHIR ETHERNET for(int t =255; t> 0; t--) { analogWrite(red, t); ////Tampilkan lebih banyak tetapi biarkan setidaknya satu detik antara SPI ethernet dan penundaan RFID (10); } //RFID AWAL mfrc522.PCD_Init(); // Init MFRC522 card for (byte i =0; i <6; i++) { // Siapkan kunci (digunakan sebagai kunci A dan sebagai kunci B) key.keyByte[i] =0xFF; // menggunakan FFFFFFFFFFFFFFh yang merupakan default pada pengiriman chip dari pabrik } Serial.println(F("Scan a Card")); dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE); //Dapatkan batas waktu ukuran byte kunci =0; penundaan(2000); Reset();}//END RFID INITIALvoid loop() //Jalankan selamanya{ // Cari kartu baru jika ( ! mfrc522.PICC_IsNewCardPresent()) { digitalWrite(biru, RENDAH); kembali; } // Pilih salah satu kartu jika ( ! mfrc522.PICC_ReadCardSerial()) kembali; digitalWrite(biru, TINGGI); //Tunjukkan kepada pengguna bahwa kartu telah dibaca byte piccType =mfrc522.PICC_GetType(mfrc522.uid.sak); // Periksa kompatibilitas dengan kartu Mifare jika ( piccType !=MFRC522::PICC_TYPE_MIFARE_MINI &&piccType !=MFRC522::PICC_TYPE_MIFARE_1K &&piccType !=MFRC522::PICC_TYPE_MIFARE_4K) { Error(); kembali; } status byte; penyangga byte[18]; ukuran byte =sizeof(penyangga); status =mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid)); if (status !=MFRC522::STATUS_OK) { Serial.print(F("PCD_Authenticate() gagal:")); Serial.println(mfrc522.GetStatusCodeName(status)); Kesalahan(); kembali; } // Membaca data dari status blok =mfrc522.MIFARE_Read(blockAddr, buffer, &size); if (status !=MFRC522::STATUS_OK) { Serial.print(F("MIFARE_Read() gagal:")); Serial.println(mfrc522.GetStatusCodeName(status)); Kesalahan(); } // Menghentikan PICC mfrc522.PICC_HaltA(); // Hentikan enkripsi pada PCD mfrc522.PCD_StopCrypto1(); // SETELAH SELESAI MEMBACA KARTU KIRIM KE SERVER if (client.connect(IPaddress(192.168.1,100),23)) { timeout =millis()+1000; Serial.println("Klien terhubung"); const String ID =dump_byte_array(buffer, ukuran); klien.println(ID); Serial.println("Terkirim :" + ID); penundaan (10); while(client.available()==0) { if (batas waktu - milis() <0) goto close; } ukuran int; while((ukuran =client.available())> 0) { uint8_t* msg =(uint8_t*)malloc(ukuran); ukuran =klien.baca(pesan,ukuran); Serial.write(pesan,ukuran); if(ukuran ==sizeof("g") - 1) { Lulus(); } lain { Kesalahan(); } gratis(pesan); }tutup:klien.stop(); } else { Serial.println("Tidak dapat terhubung ke Server"); Kesalahan(); } //AKHIR PENGIRIMAN KE SERVER Reset(); //RESTART LOOP WITH NO LEDs ON}// TURUN BUFFER ARRAY MENJADI STRING TUNGGAL YANG UPPERCASE YANG SAMA ID KAMI SEKTOR DAN BLOCKString dump_byte_array(byte *buffer, byte bufferSize) { String out =""; for (byte i =0; i  
Contoh kode serverPython
Berikut adalah contoh lengkap cara menggunakan server
import SocketServerclass MyTCPHandler(SocketServer.BaseRequestHandler):def handle(self):# self.request adalah soket TCP yang terhubung ke klien self.data =self.request.recv (1024).strip() print "{} wrote:".format(self.client_address[0]) print self.data """ SQL STUFF HERE if(self.data ==SQL NAME or something) { self.request .sendall("g")//send good //MASUKKAN WAKTU DAN LOKASI KE SQL DI SINI { else { self.request.sendall("bb")//send bad //DO NOTHING just send to arduino bad data } "" " self.request.sendall("g")if __name__ =="__main__":HOST, PORT ="", 23 server =SocketServer.TCPServer((HOST, PORT), MyTCPHandler) server.serve_forever()
Kode yang diperbarui di GitHub
Di sini Anda bisa mendapatkan kode terbaruhttps://github.com/smerkousdavid/InternetRFIDTags

Skema

Rangkaiannya sederhana jadi saya hanya membuat foto dengan kabelnya

Proses manufaktur

  1. Kartu Ucapan
  2. Kartu Kredit
  3. Arduino RFID Lock Dengan RC522 - Protokol MIFARE 13.56 Mhz
  4. Tutorial Kunci RFID Arduino
  5. Sistem Kehadiran Menggunakan Arduino dan RFID dengan Python
  6. Arduino Spybot
  7. FlickMote
  8. TV Buatan Sendiri B-Gone
  9. Jam Master
  10. Pembaca Floppy Disk Arduino Amiga (V1)