Isi kandungan:

Dompet Elektronik: 3 Langkah
Dompet Elektronik: 3 Langkah

Video: Dompet Elektronik: 3 Langkah

Video: Dompet Elektronik: 3 Langkah
Video: Satu Dompet Bisa Buat Semua Transaksi | DANA #BukanDompetBiasa 2024, Jun
Anonim
Dompet Elektronik
Dompet Elektronik

CATATAN: Saya sekarang mempunyai Instructables yang menawarkan kod Arduino untuk RC522 dan PN532.

Dalam catatan saya sebelum ini, saya memperincikan asas-asas untuk berkomunikasi dengan modul RFID MFRC522 dan PN532 untuk membaca / menulis data dari tag Mifare Classic 1k. Dalam catatan ini saya melangkah selangkah lebih jauh dan menunjukkan cara menggunakan modul-modul tersebut untuk membuat dompet elektronik daripada tag. Seperti posting sebelumnya, ini disajikan sebagai implementasi dasar tetapi harus menjadi landasan untuk berbagai aplikasi yang memerlukan kenaikan / penurunan atau penghitungan fungsi.

Langkah 1: Integriti Data

Untuk dompet elektronik selalu ada kebimbangan bahawa seseorang boleh menambahkan kredit tanpa membayarnya. Terdapat juga kebimbangan bahawa kredit pada tag mungkin rosak secara tidak sengaja semasa penulisan data. Akses data memerlukan penggunaan kunci teg sehingga perlu mengubah kunci lalai ketika tag pertama kali diinisialisasi. Terdapat artikel dalam talian yang membincangkan cara menggodam teg walaupun anda tidak mengetahui kuncinya tetapi tekniknya tidak remeh. Saya tidak akan mengesyorkan menggunakan teg ini untuk akaun bank anda tetapi cukup baik untuk banyak aplikasi yang kurang berisiko.

Kebarangkalian kerosakan data agak kecil tetapi perisian sekurang-kurangnya dapat menangani kes asasnya. Proses ini melibatkan dua langkah dengan langkah pertama untuk hanya mengesan rasuah. Dalam projek ini yang dikendalikan dengan menyimpan kedua-dua nilai kredit dan juga pelengkap nilai kredit. Itu memungkinkan untuk membandingkan nilai sederhana. Langkah kedua adalah menyimpan versi sandaran kedua-dua nilai kredit dan pelengkapnya. Itu membolehkan operasi pemulihan jika set kredit pertama rosak. Sekiranya kedua-dua set rosak maka perisian akan berusaha untuk menginisialisasi semula tag yang mengakibatkan kehilangan semua kredit.

Langkah 2: Perkakasan

Perkakasan
Perkakasan

Sambungan perkakasan ditunjukkan dalam rajah di atas. Ini adalah persediaan yang sama seperti tulisan sebelumnya dengan penambahan dua suis dan perintang penarik. Satu suis tidak memerlukan resistor pull-up kerana ia berada pada input PIC yang mempunyai kemampuan pull-up yang lemah. Dalam praktiknya kedua-dua suis akan disembunyikan kerana digunakan untuk menambahkan kredit dan untuk memulakan tag. Suis inisialisasi adalah pilihan (untuk melakukan pemberian kredit secara manual) kerana perisian dapat mengesan dan memulakan tag baru dengan sendirinya. Jumper pin boleh digunakan sebagai ganti suis.

Langkah 3: Perisian

Penambahan pada gelung utama dalam perisian dibuat untuk memungkinkan membaca dua suis dan untuk mengesan keadaan yang memerlukan inisialisasi tag. Seperti yang disebutkan di bahagian perkakasan, inisialisasi tag dapat diperintahkan secara manual dengan tombol. Perisian ini juga dapat memerintahkan inisialisasi tag dalam dua kes lain. Pertama, jika mengesan tag atau sektor data baru dan kedua, jika kedua-dua set data kredit rosak.

Pengesahan tag memerlukan penggunaan "kunci A" untuk sektor data sasaran. Kunci lalai untuk tag Mifare Classic 1k adalah "FF FF FF FF FF FF" tetapi harus diubah untuk aplikasi anda. Perisian menyediakan definisi untuk kunci lalai dan kunci baru ("My_Key"). Cukup masukkan apa sahaja nilai yang anda mahukan ke "My_Key". Perisian ini selalu berusaha untuk mengesahkan tag menggunakan "My_Key" terlebih dahulu. Sekiranya gagal, maka rutin untuk memulakan tag dipanggil dan kunci lalai digunakan untuk pengesahan. Rutin inisialisasi mengubah kunci menjadi "My_Key" dan menetapkan kredit menjadi sifar. Sekiranya anda mempunyai teg dengan kunci bukan lalai dan anda tidak tahu apa itu, maka teg tersebut tidak dapat disahkan. Sekiranya ini berlaku, anda mungkin ingin memeriksa sektor data lain menggunakan kunci lalai untuk melihat apakah ada yang tersedia. Blok Trailer, blok Data, dan blok Backup semuanya ditentukan pada awal penyenaraian perisian sehingga anda dapat mengubahnya dengan mudah.

Format data yang tersimpan dalam teg untuk aplikasi ini hanya menggunakan angka positif (tidak ada defisit yang dibenarkan) dan nilai disimpan sebagai empat bait BCD yang dibungkus (Binary Coded Decimal). Itu membolehkan julat kredit dari 0 hingga 99, 999, 999 (dua digit setiap bait). Nilai kredit dan pelengkap 1nya hanya menggunakan 8 daripada 16 bait dalam satu blok data dan selebihnya dibalut dengan nol. Terdapat ruang di blok data yang sama untuk salinan sandaran tetapi saya memutuskan bahawa akan lebih selamat untuk meletakkan sandaran di blok data yang berasingan. Blok sandaran berada di sektor yang sama dengan blok data sehingga tidak diperlukan pengesahan yang berasingan. Untuk lebih selamat, anda mungkin mempertimbangkan untuk meletakkan sandaran di sektor data yang berbeza tetapi kemudian langkah pengesahan yang terpisah diperlukan untuk mengakses data tersebut.

Apabila pembacaan dilakukan kredit, nilai yang dilengkapkan juga dibaca dan kemudian keduanya dibandingkan antara satu sama lain. Sekiranya terdapat ketidakcocokan, maka set nilai / pelengkap sandaran dibaca dan dibandingkan. Sekiranya sesuai, sandaran dianggap betul dan digunakan untuk memperbaiki data yang rosak. Sekiranya salinan sandaran tidak sesuai, maka tag tersebut dianggap tidak baik dan usaha dibuat untuk menginisialisasi semula.

Nilai kenaikan dan penurunan ditentukan di bahagian depan penyenaraian dan dijangka terdapat dalam BCD. Rutin yang melakukan kenaikan dan penurunan secara efektif melakukannya pada nombor 32-bit. Matematiknya sangat mudah tetapi memerlukan penggunaan rutin untuk menyesuaikan hasil untuk setiap bait BCD yang dikemas dan dari satu bait ke bait berikutnya. Itu dicapai dengan penggunaan makro DAA (Decimal Adjust Addition) dan DAS (Decimal Adjust Subtraction). Makro ini memastikan bahawa setiap digit BCD 4-bit sentiasa berada dalam lingkungan 0-9.

Sebagai tambahan kepada pesan yang ditampilkan di posting sebelumnya, aplikasi ini memiliki pesan untuk banyak langkah tambahan - terutama jika ada kesalahan data dan / atau tag harus diperbaiki atau diinisialisasi. Kredit juga ditunjukkan sebelum dan selepas langkah kenaikan / penurunan sehingga anda dapat melihat nilai berubah.

Itu sahaja untuk siaran ini. Lihat projek elektronik saya yang lain di: www.boomerrules.wordpress.com

Disyorkan: