← Ev güvenlikörnek görev

Bu bir örnek görev. Kitin 7 görevinden biri — nasıl anlattığımızı görmen için açık.

görev 1 · ~35 dk

Kart kendini tanıtıyor

Kartların benzersiz numarasını oku ve deftere yaz

hedef

Kartların ve anahtarlığın benzersiz numarasını okumak.

güç (VCC / 5V)GNDsinyal / veriikinci sinyal
Masanda bunu ara — uçları üstünde yazıyor
Breadboard — besleme hattı, uçları etiketli
Kablolarını böyle tak
Besleme hattı bağlantısı Karttaki 5V pini breadboardun arti hattina, GND pini eksi hattina baglanir. Her modulun VCC kablosu arti hattina, GND kablosu eksi hattina gider. Sinyal kablosu hatta ugramaz, dogrudan kartin pinine gider. Karttan hatta iki kablo — bir kez takılır kart5VGNDsinyal sensör / modülVCCGNDsinyal + − + − sinyal doğrudan karta — hatta değil + hattı − hattı

⚠Hattı kurmadan hiçbir modülü takma. Kartta tek 5V pini var; modülleri oraya sığdıramazsın. Breadboard'un o iki uzun sırası kendi içinde baştan sona bağlıdır — bir ucuna elektrik verirsen hattın tamamına gider.

Masanda bunu ara
Kablolarını böyle tak
RC522 RFID okuyucu bağlantısı VCC dogrudan kartin 3.3V pinine baglanir - arti hattina DEGIL, cunku o hat 5V tasir. GND eksi hattina, SPI kablolari dogrudan kartin D9-D13 pinlerine gider. RC522 3.3V GND RST SDA MOSI MISO SCK nereye kart 3.3V − hattı kart D9 kart D10 kart D11 kart D12 kart D13

⚠Bu modül 5V görürse yanar ve geri dönüşü yoktur. Kitteki tek 3.3V parça bu. VCC'sini + hattına takma — o hat 5V taşıyor. RC522'nin beslemesi hattan değil, doğrudan kartın 3.3V pininden gelir. Kitte hattı atlayan tek kablo budur.

Önce şunu bil

Kartın içinde pil yok. Anten var, çip var, pil yok. Peki nasıl çalışıyor?

Okuyucu sürekli bir manyetik alan yayıyor. Kartı yaklaştırdığında kartın anteni o alandan elektrik üretiyor — yeterince, çipini bir anlığına uyandırmaya. Uyanan çip tek bir şey söylüyor: kendi numarasını.

Bu numaraya UID deniyor (Unique IDentifier — benzersiz kimlik). Fabrikada yazılıyor ve değişmiyor. Metro kartın, otel oda kartın, apartman kartın hepsi böyle çalışıyor.

Önce besleme hattını kur

Bu bölümü bir kez yapıyorsun, kitin sonuna kadar bir daha dokunmuyorsun. Ama atlarsan Görev 2'de tıkanırsın.

Kartında tek bir 5V pini var. Bu kitte üç modül 5V istiyor: LCD, servo ve hareket sensörü. Üstelik altı parçanın GND'si var. Hepsini karta sığdıramazsın.

Çözüm breadboard'un kenarındaki iki uzun sıra — besleme hattı:

Karttan Breadboard'a
5V + hattı (kırmızı şeritli sıra)
GND − hattı (mavi veya siyah şeritli sıra)

İki kablo, hepsi bu. Bundan sonra her modülün beslemesi bu hatlardan geliyor.

Neden çalışıyor? Breadboard'un o iki uzun sırası kendi içinde baştan sona bağlı. Bir ucuna elektrik verirsen hattın tamamına gider. Ortadaki delikler ise beşerli gruplar halinde ve yukarıdan aşağı bağlı, soldan sağa değil.

Bir tuzak var: bazı breadboard'larda uzun sıralar ortadan ikiye bölünmüştür. Kenardaki kırmızı ve mavi çizgiye bak — çizgi ortada kesiliyorsa hat da kesiliyor. Kartı bir yarıya, modülü diğer yarıya takarsan hiçbir şey çalışmaz. İki yarıyı kısa bir kabloyla birleştir.

RC522 bu hattı kullanmıyor — tek istisna

Az önce kurduğun + hattı 5V taşıyor. RC522 ise 3.3V ile çalışıyor ve 5V görürse yanıyor.

O yüzden bu modülün beslemesini hattan değil, doğrudan kartın 3.3V pininden alacaksın. Kitte hattı atlayan tek kablo bu.

Neden ikinci bir 3.3V hattı kurmuyoruz? Kurabilirdik. Ama o zaman breadboard'da birbirine tıpatıp benzeyen iki kırmızı şerit olurdu ve yanlış olana takmak modülü yakardı. Tehlikeli istisnayı gizlemek yerine görünür kıldık: bu kabloyu takarken elin hatta değil, karta gidiyor. Farklı davranan parça farklı bağlanıyor.

Bu bir tasarım tercihi ve gerçek sistemlerde de böyle yapılır — karıştırılması ölümcül olan şeyler birbirine benzemez hale getirilir. Priz ile gaz vanası aynı şekle sahip olsaydı ne olurdu, düşün.

Kur

RC522'nin yedi bacağını kullanacaksın. Sırayı karıştırma:

RC522 Nereye
3.3V kartın 3.3V pini — hatta DEĞİL, 5V DEĞİL
GND − hattı
RST D9 — doğrudan karta
SDA (SS) D10 — doğrudan karta
MOSI D11 — doğrudan karta
MISO D12 — doğrudan karta
SCK D13 — doğrudan karta

Bu modül 5V görürse yanar. Kabloyu takmadan önce nereye gittiğine iki kez bak. Kitteki tek 3.3V parça bu.

Kod

kod · .ino
#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN  10
#define RST_PIN 9

MFRC522 okuyucu(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  okuyucu.PCD_Init();
  Serial.println("Kartini okut.");
}

void loop() {
  if (!okuyucu.PICC_IsNewCardPresent()) return;
  if (!okuyucu.PICC_ReadCardSerial()) return;

  Serial.print("UID: ");
  for (byte i = 0; i < okuyucu.uid.size; i++) {
    Serial.print(okuyucu.uid.uidByte[i], HEX);
    Serial.print(" ");
  }
  Serial.println();

  okuyucu.PICC_HaltA();
}

Araçlar → Serial Monitor aç, hız 9600 olsun. Kartı okuyucuya değdir.

Çalıştı mı?

Kartı her değdirdiğinde ekrana bir satır düşmeli:

kod
UID: A3 5F 21 9C

Aynı kartı tekrar okuttuğunda aynı numara çıkmalı. Farklı kart, farklı numara.

Olmadıysa

Ne görüyorsun Ne yap
Ekran bomboş, hiç yazı yok Serial Monitor hızı 9600 mü?
"Kartini okut" yazıyor ama kart okunmuyor SDA (D10) ve RST (D9) kablolarını kontrol et
Hiçbir şey olmuyor, modül soğuk VCC kartın 3.3V pinine takılı mı? Modülün küçük LED'i yanıyor mu?
Modül ısındı / kokuyor VCC'yi + hattına takmışsın — o hat 5V. Hemen çek
Kartın güç ışığı sönüyor + ve − hatlarını birbirine değdirmişsin. USB'yi çek
Derleme hatası: MFRC522.h not found Görev 0'daki kütüphaneyi yüklemeyi atlamışsın
Bazen okuyor bazen okumuyor Kabloları kısalt. SPI uzun kabloyu sevmez

Şimdi sen yap — numaraları kaydet

Kitindeki iki kartı da okut ve buraya yaz. Görev 2'de bu numaraları koda yazacaksın, kaybetme:

Kart UID
Beyaz kart
Anahtarlık

Yanına harf farkına dikkat et: A3 ile a3 aynı ama boşlukları koda birebir taşıyacaksın.

Kendini test et

Soru: Bu numarayı kart mı seçiyor, sen mi, yoksa başkası mı?

Cevabı gör

Hiçbiriniz. Fabrikada yazılıyor ve bir daha değişmiyor.

Bunun iki sonucu var, ikisi de önemli:

İyi haber: Sistemin kartı her seferinde aynı şekilde tanıyacak. Güvenilir.

Kötü haber: Bu numara bir sır değil. Kart onu isteyen herkese söylüyor — senin okuyucuna da, başkasının okuyucusuna da. Yani biri kartını cebindeyken okuyup numarasını öğrenebilir.

Görev 6'da bu açığın ne kadar ciddi olduğunu göreceksin. Şimdilik aklının bir köşesinde dursun: sistem seni tanımıyor, numaranı tanıyor. İkisi aynı şey değil.


Buradan sonrası kutunun içinde. Kalan görevler parçalarla birlikte geliyor; kutudaki QR'ı okutunca sırayla açılıyor.

Kit sayfasına dön