İçindekiler:
Video: Elektronik Cüzdan: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
NOT: Artık RC522 ve PN532 için Arduino kodu sunan Talimatlara sahibim.
Bir önceki yazımda, Mifare Classic 1k etiketlerinden veri okumak/yazmak için MFRC522 ve PN532 RFID modülleri ile iletişim kurmanın temellerini detaylandırdım. Bu yazıda bunu bir adım daha ileri götüreceğim ve bu modüllerin etiketlerden elektronik cüzdan oluşturmak için nasıl kullanılacağını göstereceğim. Önceki gönderide olduğu gibi, bu temel bir uygulama olarak sunulur, ancak artırma/azaltma veya hesaplama işlevleri gerektiren çeşitli uygulamalar için bir temel sağlamalıdır.
1. Adım: Veri Bütünlüğü
Bir elektronik cüzdan için her zaman birisinin ödeme yapmadan kredi ekleyebileceği endişesi vardır. Ayrıca, bir veri yazma sırasında etiket üzerindeki kredilerin yanlışlıkla bozulabileceği endişesi de vardır. Veri erişimleri, etiket anahtarının kullanılmasını gerektirir, bu nedenle etiket ilk başlatıldığında varsayılan anahtarın değiştirilmesi gerekir. Anahtarı bilmeseniz bile bir etiketin nasıl hackleneceğinden bahseden çevrimiçi makaleler var, ancak teknik önemsiz değil. Bu etiketleri banka hesabınız için kullanmanızı tavsiye etmem, ancak daha az riskli birçok uygulama için yeterince iyidirler.
Veri bozulması olasılığı nispeten küçüktür, ancak yazılım en azından temel durumu idare edebilmelidir. Bu süreç, sadece yolsuzluğu tespit etmek için ilk adımla birlikte iki adımı içerir. Hem kredi değeri hem de kredi değerinin 1'ler tümleyeni saklanarak gerçekleştirilen bu projede. Bu, değerlerin basit bir karşılaştırmasını sağlar. İkinci adım, hem kredi değerinin hem de tamamlayıcısının bir yedek versiyonunu saklamaktır. Bu, ilk kredi seti bozulursa kurtarma işlemine izin verir. Her iki küme de bozulursa, yazılım etiketi yeniden başlatmaya çalışır ve bu da tüm kredilerin kaybolmasına neden olur.
2. Adım: Donanım
Donanım bağlantıları yukarıdaki şemada gösterilmiştir. Bu, iki anahtarın ve bir çekme direncinin eklenmesiyle önceki gönderiyle aynı kurulumdur. Bir anahtar, yerleşik zayıf bir çekme özelliğine sahip bir PIC girişinde olduğu için bir çekme direnci gerektirmez. Pratikte, kredi eklemek ve bir etiketi başlatmak için kullanıldığından her iki anahtar da gizlenir. Başlatma anahtarı isteğe bağlıdır (manuel kredi sıfırlama yapmak için), çünkü yazılım kendi başına yeni bir etiketi algılayabilir ve başlatabilir. Anahtarlar yerine jumper pinleri kullanılabilir.
3. Adım: Yazılım
Yazılımdaki ana döngüye eklemeler, iki anahtarın okunmasına ve etiket başlatma gerektiren bir koşulun algılanmasına izin vermek için yapılmıştır. Donanım bölümünde belirtildiği gibi, etiket başlatma bir anahtarla manuel olarak komuta edilebilir. Yazılım ayrıca diğer iki durumda bir etiket başlatma komutu verebilir. Birincisi, yeni bir etiket veya veri sektörü algılarsa ve ikincisi, her iki kredi verisi grubu da bozuksa.
Etiketlerin doğrulanması, hedef veri sektörü için "A anahtarı"nın kullanılmasını gerektirir. Mifare Classic 1k etiketleri için varsayılan anahtar “FF FF FF FF FF FF”dir ancak uygulamanız için değiştirilmelidir. Yazılım, hem varsayılan anahtar hem de yeni bir anahtar (“My_Key”) için tanımlar sağlar. Sadece "My_Key" içine istediğiniz değerleri girin. Yazılım her zaman önce "My_Key" kullanarak etiketin kimliğini doğrulamaya çalışır. Bu başarısız olursa, etiketi başlatma rutini çağrılır ve kimlik doğrulama için varsayılan anahtar kullanılır. Başlatma rutini anahtarı "My_Key" olarak değiştirir ve kredileri sıfıra ayarlar. Varsayılan olmayan bir anahtara sahip bir etiketiniz varsa ve bunun ne olduğunu bilmiyorsanız, etiketin kimliği doğrulanamaz. Bu olursa, mevcut olup olmadığını görmek için varsayılan anahtarı kullanarak diğer veri sektörlerini kontrol etmek isteyebilirsiniz. Treyler bloğu, Veri bloğu ve Yedekleme bloklarının tümü, bunları kolayca değiştirebilmeniz için yazılım listesinin başında tanımlanmıştır.
Bu uygulama için etikette saklanan veri formatı sadece pozitif sayıları kullanır (açıklara izin verilmez) ve değerler dört bayt paketlenmiş BCD (İkili Kodlu Ondalık) olarak saklanır. Bu, 0 ila 99, 999, 999 (bayt başına iki basamak) arasında bir kredi aralığına izin verir. Kredi değeri ve 1'lerin tamamlayıcısı, tek bir veri bloğundaki 16 bayttan yalnızca 8'ini kullanır ve geri kalanı sıfırlarla doldurulur. Aynı veri bloğunda yedek kopya için yer var ama yedeği ayrı bir veri bloğuna koymanın daha güvenli olacağına karar verdim. Yedek blok, veri bloğu ile aynı sektörde olduğundan ayrı bir kimlik doğrulama gerekli değildir. Daha da güvenli olmak için, yedeği farklı bir veri sektörüne yerleştirmeyi düşünebilirsiniz, ancak daha sonra bu verilere erişmek için ayrı bir kimlik doğrulama adımı gerekecektir.
Kredilerin bir okuması yapıldığında, tümlenen değer de okunur ve ardından ikisi birbiriyle karşılaştırılır. Bir uyumsuzluk varsa, yedek değer/tamamlayıcı kümesi okunur ve karşılaştırılır. Eşleşirlerse, yedeklemenin doğru olduğu varsayılır ve bozuk verileri onarmak için kullanılır. Yedek kopyalar eşleşmezse, etiketin bozuk olduğu kabul edilir ve yeniden başlatılmaya çalışılır.
Artış ve azalma değerleri, listenin ön kısmına yakın bir yerde tanımlanmıştır ve paketlenmiş BCD'de olması beklenir. Arttırma ve azaltmayı etkin bir şekilde yapan rutinler, bunu 32 bitlik bir sayı üzerinde yapar. Matematik çok basittir, ancak paketlenmiş her BCD baytında ve bir bayttan diğerine taşıma sonuçlarını ayarlamak için rutinlerin kullanılmasını gerektirir. Bu, DAA (Ondalık Ayarlama Toplama) ve DAS (Ondalık Ayarlama Çıkarma) makrolarının kullanılmasıyla gerçekleştirilir. Bu makrolar, her 4 bitlik BCD basamağının her zaman 0-9 aralığında kalmasını sağlar.
Önceki gönderideki ekran mesajlarına ek olarak, bu uygulama, özellikle veri hataları varsa ve/veya etiketin düzeltilmesi veya başlatılması gerekiyorsa, birçok ek adım için mesajlara sahiptir. Değerlerin değiştiğini görebilmeniz için krediler ayrıca bir artırma/azaltma adımından önce ve sonra görüntülenir.
Bu yazı için bu kadar. Diğer elektronik projelerime göz atın: www.boomerrules.wordpress.com
Önerilen:
E-dohicky Russ'ın Lazer Güç Ölçerinin Elektronik Versiyonu Dohicy: 28 Adım (Resimlerle)
E-dohicky Russ'ın Lazer Güç Ölçerinin Elektronik Versiyonu Dohicky: Laser power tool.e-dohicky, Russ SADLER'ın dohicky'nin elektronik versiyonudur. Russ canlandırma çok iyi SarbarMultimedya youtube kanalı https://www.youtube.com/watch?v=A-3HdVLc7nI&t=281sRuss SADLER kolay ve ucuz bir aksesuar sunuyor
IoT Cüzdanı (Firebeetle ESP32, Arduino IDE ve Google Elektronik Tablolu Akıllı Cüzdan): 13 Adım (Resimlerle)
IoT Cüzdanı (Firebeetle ESP32, Arduino IDE ve Google E-Tablolu akıllı Cüzdan): Instructables Cep Boyutunda Yarışmada birincilik ödülü!:DI Kripto para birimlerine biraz para yatırdıysanız, muhtemelen bunların oldukça değişken olduğunu zaten biliyorsunuzdur. Bir gecede değişiyorlar ve artık duvarınızda hala çok fazla 'gerçek' paranız olduğunu asla bilemezsiniz
Altoids Teneke Cüzdan: 4 Adım
Altoids Teneke Cüzdan: Bu çok yönlü şeker tenekesi cüzdan olarak da kullanılabilir! Henüz keşfetmediyseniz, standart kredi kartları ve kimlikler, saygıdeğer Altoids kutusuna mükemmel bir şekilde uyuyor. Bunu kontrol et! Bu çok kolay ve hepsini yemek için zaman ayırmanın yanı sıra
Cüzdan Boyutunda iPod Touch Stand: 5 Adım
Cüzdan Boyutunda IPod Touch Stand: Bu oldukça havalı… Dengesiz olduğunu düşünebilirsiniz, ancak oldukça kararlı! Görmek için cüzdanınızda taşımak güzel.. Elma arıları mı? Bilmiyorum lolFilmleri, TV şovlarını izlemek, internette gezinmek için (yatay modda)…. oh ve Cover Flow!Yani..
Cüzdan Kartlarından Çekmece Düzenleyici Bölücüler: 5 Adım
Cüzdan Kartlarından Çekmece Düzenleyici Bölücüler: Bu talimat, cüzdanınızda mağaza sadakat kartları veya diğer önemsiz şeyler olan çekmece parçası depolama düzenleyicileri için nasıl yeni bölücüler oluşturacağınızı gösterecektir. vidalar ve ben yapmadım