Daftar Isi:

Dompet Elektronik: 3 Langkah
Dompet Elektronik: 3 Langkah

Video: Dompet Elektronik: 3 Langkah

Video: Dompet Elektronik: 3 Langkah
Video: Cara Bijak Gunakan Dompet Digital 2024, Juni
Anonim
Dompet Elektronik
Dompet Elektronik

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

Perangkat keras
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: