Daftar Isi:
Video: Dompet Elektronik: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
CATATAN: Saya sekarang memiliki Instructables yang menawarkan kode Arduino untuk RC522 dan PN532.
Dalam posting saya sebelumnya, saya merinci dasar-dasar untuk berkomunikasi dengan modul RFID MFRC522 dan PN532 untuk membaca/menulis data dari tag Mifare Classic 1k. Dalam posting ini saya mengambil satu langkah lebih jauh dan menunjukkan bagaimana menggunakan modul tersebut untuk membuat dompet elektronik dari tag. Seperti posting sebelumnya, ini disajikan sebagai implementasi dasar tetapi harus memberikan dasar untuk berbagai aplikasi yang memerlukan fungsi kenaikan/penurunan atau penghitungan.
Langkah 1: Integritas Data
Untuk dompet elektronik selalu ada kekhawatiran bahwa seseorang dapat menambahkan kredit tanpa membayarnya. Ada juga kekhawatiran bahwa kredit pada tag mungkin secara tidak sengaja rusak selama penulisan data. Akses data memerlukan penggunaan kunci tag sehingga perlu mengubah kunci default saat tag pertama kali diinisialisasi. Ada artikel online yang membahas tentang cara meretas tag meskipun Anda tidak tahu kuncinya tetapi tekniknya tidak sepele. Saya tidak akan merekomendasikan penggunaan tag ini untuk rekening bank Anda, tetapi cukup baik untuk banyak aplikasi yang tidak terlalu berisiko.
Probabilitas korupsi data relatif kecil tetapi perangkat lunak setidaknya harus mampu menangani kasus dasar. Proses ini melibatkan dua langkah dengan langkah pertama untuk mendeteksi korupsi. Dalam proyek ini yang ditangani dengan menyimpan nilai kredit sekaligus sebagai pelengkap 1 dari nilai kredit. Itu memungkinkan untuk perbandingan nilai yang sederhana. Langkah kedua adalah menyimpan versi cadangan dari nilai kredit dan pelengkapnya. Itu memungkinkan operasi pemulihan jika set kredit pertama rusak. Jika kedua set rusak maka perangkat lunak mencoba menginisialisasi ulang tag yang mengakibatkan hilangnya semua kredit.
Langkah 2: Perangkat Keras
Koneksi perangkat keras ditunjukkan pada diagram di atas. Ini adalah pengaturan yang sama seperti posting sebelumnya dengan penambahan dua sakelar dan resistor pull-up. Satu sakelar tidak memerlukan resistor pull-up karena berada pada input PIC yang memiliki kemampuan pull-up yang lemah. Dalam praktiknya, kedua sakelar akan disembunyikan karena digunakan untuk menambahkan kredit dan untuk menginisialisasi tag. Sakelar inisialisasi bersifat opsional (untuk melakukan zeroing kredit manual) karena perangkat lunak dapat mendeteksi dan menginisialisasi tag baru dengan sendirinya. Pin jumper dapat digunakan sebagai pengganti sakelar.
Langkah 3: Perangkat Lunak
Penambahan loop utama dalam perangkat lunak dibuat untuk memungkinkan pembacaan dua sakelar dan untuk mendeteksi kondisi yang memerlukan inisialisasi tag. Seperti disebutkan di bagian perangkat keras, inisialisasi tag dapat diperintahkan secara manual dengan sakelar. Perangkat lunak ini juga dapat memerintahkan inisialisasi tag dalam dua kasus lainnya. Pertama, jika mendeteksi tag baru atau sektor data dan kedua, jika kedua set data kredit rusak.
Otentikasi tag memerlukan penggunaan "kunci A" untuk sektor data target. Kunci default untuk tag Mifare Classic 1k adalah “FF FF FF FF FF” tetapi harus diubah untuk aplikasi Anda. Perangkat lunak ini menyediakan definisi untuk kunci default dan kunci baru ("My_Key"). Cukup colokkan nilai apa pun yang Anda inginkan ke "My_Key". Perangkat lunak selalu mencoba untuk mengautentikasi tag terlebih dahulu menggunakan "My_Key". Jika gagal, maka rutin untuk menginisialisasi tag akan dipanggil dan kunci default digunakan untuk otentikasi. Rutin inisialisasi mengubah kunci menjadi "My_Key" dan menyetel kredit ke nol. Jika Anda memiliki tag dengan kunci non-default dan Anda tidak tahu apa itu, maka tag tersebut tidak dapat diautentikasi. Jika ini terjadi, Anda mungkin ingin memeriksa sektor data lain menggunakan kunci default untuk melihat apakah ada yang tersedia. Blok Trailer, blok Data, dan blok Cadangan semuanya ditentukan di awal daftar perangkat lunak sehingga Anda dapat dengan mudah mengubahnya.
Format untuk data yang disimpan dalam tag untuk aplikasi ini hanya menggunakan angka positif (tidak boleh ada defisit) dan nilai disimpan sebagai empat byte BCD (Desimal Berkode Biner) yang dikemas. Itu memungkinkan rentang kredit dari 0 hingga 99, 999, 999 (dua digit per byte). Nilai kredit dan komplemen 1-nya hanya menggunakan 8 dari 16 byte dalam satu blok data dan sisanya diisi dengan nol. Ada ruang di blok data yang sama untuk salinan cadangan, tetapi saya memutuskan bahwa akan lebih aman untuk menempatkan cadangan di blok data yang terpisah. Blok cadangan berada di sektor yang sama dengan blok data sehingga otentikasi terpisah tidak diperlukan. Agar lebih aman, Anda mungkin mempertimbangkan untuk meletakkan cadangan di sektor data yang berbeda tetapi kemudian langkah otentikasi terpisah akan diperlukan untuk mengakses data tersebut.
Ketika pembacaan kredit dilakukan, nilai yang dilengkapi juga dibaca dan kemudian keduanya dibandingkan satu sama lain. Jika ada ketidakcocokan, maka set nilai/pelengkap cadangan dibaca dan dibandingkan. Jika cocok maka cadangan dianggap benar dan digunakan untuk memperbaiki data yang rusak. Jika salinan cadangan tidak cocok maka tag dianggap buruk dan upaya dilakukan untuk menginisialisasi ulang.
Nilai kenaikan dan penurunan ditentukan di dekat bagian depan daftar dan diharapkan dalam paket BCD. Rutinitas yang melakukan penambahan dan pengurangan secara efektif melakukannya pada nomor 32-bit. Perhitungannya sangat sederhana tetapi memerlukan penggunaan rutin untuk menyesuaikan hasil untuk membawa dalam setiap byte BCD yang dikemas dan dari satu byte ke byte berikutnya. Itu dicapai dengan penggunaan makro DAA (Decimal Adjust Addition) dan DAS (Decimal Adjust Subtraction). Makro ini memastikan bahwa setiap digit BCD 4-bit selalu berada dalam kisaran 0-9.
Selain pesan tampilan di posting sebelumnya, aplikasi ini memiliki pesan untuk banyak langkah tambahan - terutama jika ada kesalahan data dan/atau tag perlu diperbaiki atau diinisialisasi. Kredit juga ditampilkan sebelum dan sesudah langkah kenaikan/penurunan sehingga Anda dapat melihat nilainya berubah.
Itu saja untuk posting ini. Lihat proyek elektronik saya yang lain di: www.boomerrules.wordpress.com
Direkomendasikan:
RFID Melindungi Dompet Tyvek: 7 Langkah
RFID Shielding a Tyvek Wallet: Saya telah menggunakan jenis (merek) dompet ini selama sekitar 6 tahun. Ketika saya menemukan dompet khusus ini, saya memutuskan untuk menambahkan beberapa pelindung RFID menggunakan pita Aluminium. Pita ini digunakan untuk menyegel saluran pemanas karena lebih tahan lama daripada kain berbasis &q
IoT Wallet (Dompet pintar Dengan Firebeetle ESP32, Arduino IDE dan Google Spreadsheet): 13 Langkah (dengan Gambar)
IoT Wallet (Dompet pintar Dengan Firebeetle ESP32, Arduino IDE dan Google Spreadsheet): Hadiah pertama dalam Instructables Pocket-Sized Contest!:DJika Anda menginvestasikan sejumlah uang dalam cryptocurrency, Anda mungkin sudah tahu bahwa mereka sangat fluktuatif. Mereka berubah dalam semalam dan Anda tidak pernah tahu sekarang banyak uang 'nyata' yang masih Anda miliki di dompet Anda
Dompet Millennium Falcon DIY: 26 Langkah (dengan Gambar)
Dompet Millennium Falcon DIY: Seperti banyak orang lain di galaksi, saya menghabiskan sebagian besar tahun 2015 dengan gemetar dengan antisipasi untuk rilis Film Star Wars baru pertama, The Force Awakens. Tentu saja, saya mencoba menyeimbangkan kegembiraan saya dengan skeptisisme yang sehat, re
Membuat Dompet Hardware Trezor Crypto Saya Sendiri: 5 Langkah (dengan Gambar)
Membuat Dompet Hardware Trezor Crypto Saya Sendiri: Dalam proyek ini saya membuat dompet hardware cryptocurrency Trezor saya sendiri, lengkap dengan enklosurnya. Ini dimungkinkan karena Trezor adalah open source jadi saya menggunakan file yang mereka sediakan di github mereka untuk membuat perangkat saya sendiri dengan harga di bawah $40. Ada beberapa
Dompet Timah Altoids: 4 Langkah
Dompet Timah Altoids: Kaleng permen serbaguna ini juga bisa digunakan sebagai dompet! Jika Anda belum menemukannya, kartu kredit standar dan ID sangat cocok dengan kaleng Altoids yang terhormat. Coba lihat! Ini sangat mudah, dan selain meluangkan waktu untuk makan semua