偵測 RFID,若有偵測 RFID 到則印出 ID
此為 LinkIt 7697 BlocklyDuino v3 新功能, 預計於七月初發佈
電路圖
LinkIt 7697
MFRC522 RFID 模組
RFID 卡片或鈕扣
麵包板
杜邦線
透過 SPI 介面來連接此 RFID 模組
3V3 :接 3V3 電源供應
GND : 接 GND
MISO : 接到 P12,為 LinkIt 7697 的 SPI-MISO 腳位
MOSI : 接到 P11,為 LinkIt 7697 的 SPI-MOSI 腳位
SCK : 接到 P13,為 LinkIt 7697 的 SPI-SCK 腳位
SDA 或 SS: 接到 P10,此根腳位用來做 Chip Select
積木畫布
此積木回傳的參數為 "字串物件",可以用來和字串做比對是否為已知的卡片 ID
請注意若要使用比較的積木,需將"字串物件"放於前面,"字串"放於後面,不然會編議失敗
產生的 Arduino 程式如下
#include <SPI.h>
#include <MFRC522.h>
String read_id;
MFRC522 rfid(/*SS_PIN*/ 10, /*RST_PIN*/ 9);
String mfrc522_readID()
{
String ret;
if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial())
{
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
for (byte i = 0; i < rfid.uid.size; i++) {
ret += (rfid.uid.uidByte[i] < 0x10 ? "0" : "");
ret += String(rfid.uid.uidByte[i], HEX);
}
}
// Halt PICC
rfid.PICC_HaltA();
// Stop encryption on PCD
rfid.PCD_StopCrypto1();
return ret;
}
void setup()
{
SPI.begin();
rfid.PCD_Init();
Serial.begin(9600);
}
void loop()
{
read_id = mfrc522_readID();
if (read_id != "") {
Serial.print("偵測到 RFID: ");
Serial.println(read_id);
}
delay(1000);
}
若有針刺到 RFID 卡片或鈕扣,會在序列埠監控視窗印出 ID
此為 LinkIt 7697 BlocklyDuino v3 新功能, 預計於七月初發佈
電路圖
LinkIt 7697
MFRC522 RFID 模組
RFID 卡片或鈕扣
麵包板
杜邦線
透過 SPI 介面來連接此 RFID 模組
3V3 :接 3V3 電源供應
GND : 接 GND
MISO : 接到 P12,為 LinkIt 7697 的 SPI-MISO 腳位
MOSI : 接到 P11,為 LinkIt 7697 的 SPI-MOSI 腳位
SCK : 接到 P13,為 LinkIt 7697 的 SPI-SCK 腳位
SDA 或 SS: 接到 P10,此根腳位用來做 Chip Select
積木畫布
此積木回傳的參數為 "字串物件",可以用來和字串做比對是否為已知的卡片 ID
請注意若要使用比較的積木,需將"字串物件"放於前面,"字串"放於後面,不然會編議失敗
產生的 Arduino 程式如下
#include <SPI.h>
#include <MFRC522.h>
String read_id;
MFRC522 rfid(/*SS_PIN*/ 10, /*RST_PIN*/ 9);
String mfrc522_readID()
{
String ret;
if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial())
{
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
for (byte i = 0; i < rfid.uid.size; i++) {
ret += (rfid.uid.uidByte[i] < 0x10 ? "0" : "");
ret += String(rfid.uid.uidByte[i], HEX);
}
}
// Halt PICC
rfid.PICC_HaltA();
// Stop encryption on PCD
rfid.PCD_StopCrypto1();
return ret;
}
void setup()
{
SPI.begin();
rfid.PCD_Init();
Serial.begin(9600);
}
void loop()
{
read_id = mfrc522_readID();
if (read_id != "") {
Serial.print("偵測到 RFID: ");
Serial.println(read_id);
}
delay(1000);
}
若有針刺到 RFID 卡片或鈕扣,會在序列埠監控視窗印出 ID