مشروع قراءة كرت NFC وربطه مع الهاتف الذكي
الخطوة الأولى: الإعداد الأساسي – تجهيز المكونات
لتنفيذ المشروع، تحتاج إلى بعض المكونات الأساسية:
- لوحة Arduino (مثل Arduino Uno أو Arduino Nano).
- وحدة قراءة NFC (مثل وحدة RC522 أو PN532).
- أسلاك توصيل (Jumper Wires).
- بطاقة NFC (مثل بطاقة MIFARE Classic).
- وحدة بلوتوث (مثل HC-05 أو HC-06) إذا كنت ترغب في الربط بالهاتف عبر البلوتوث.
- هاتف ذكي يعمل بنظام Android أو iOS.
الخطوة الثانية: توصيل وحدة NFC بلوحة Arduino
قام الفريق بتوصيل وحدة NFC بلوحة Arduino باستخدام الأسلاك. اختاروا وحدة RC522 لتكون القارئ، وقاموا بتوصيل الأسلاك وفقاً للتالي:
- SDA إلى Pin 10 على Arduino.
- SCK إلى Pin 13.
- MOSI إلى Pin 11.
- MISO إلى Pin 12.
- GND إلى GND.
- RST إلى Pin 9.
- 3.3V إلى 3.3V.
كانت اللحظة حاسمة! الآن، حان وقت البرمجة.
الخطوة الثالثة: البرمجة لقراءة كرت NFC باستخدام Arduino
بدأ المبرمج بفتح Arduino IDE وكتابة الكود التالي لقراءة كرت NFC:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
void setup() {
Serial.begin(9600); // Initialize serial communications
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
Serial.println("Place your NFC card near the reader...");
}
void loop() {
// Look for new cards
if (!mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if (!mfrc522.PICC_ReadCardSerial()) {
return;
}
// Print UID of the card
Serial.print("UID tag: ");
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println();
delay(1000);
}
بعد كتابة الكود، قام الفريق بتحميله على لوحة Arduino بالنقر على زر Upload. كانوا في غاية الترقب، والكل يراقب شاشة Serial Monitor.
الخطوة الرابعة: اختبار القراءة وربطها مع الهاتف الذكي
بمجرد قرب البطاقة من قارئ NFC، ظهرت الـ UID على شاشة Serial Monitor، مما أكد أن العملية تمت بنجاح! لكن لم يتوقف الفريق عند هذا الحد، بل قرروا ربط النظام بالهاتف الذكي عبر البلوتوث.
توصيل وحدة البلوتوث بلوحة Arduino:
قام الفريق بتوصيل وحدة البلوتوث HC-05 مع Arduino:
- VCC إلى 5V على Arduino.
- GND إلى GND.
- TX إلى RX.
- RX إلى TX.
ثم قاموا بتحديث الكود ليرسل البيانات المقروءة عبر البلوتوث:
#include <SPI.h>
#include <MFRC522.h>
#include <SoftwareSerial.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
SoftwareSerial BTSerial(2, 3); // RX, TX
void setup() {
Serial.begin(9600); // Initialize serial communications
BTSerial.begin(9600); // Initialize Bluetooth serial
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
Serial.println("Place your NFC card near the reader...");
}
void loop() {
// Look for new cards
if (!mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if (!mfrc522.PICC_ReadCardSerial()) {
return;
}
// Print UID of the card
String UID = "";
for (byte i = 0; i < mfrc522.uid.size; i++) {
UID += String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
UID += String(mfrc522.uid.uidByte[i], HEX);
}
Serial.println(UID);
BTSerial.println(UID); // Send UID to Bluetooth serial
delay(1000);
}
الآن، أصبح بإمكان الهاتف الذكي استقبال الـ UID عبر تطبيقات مثل Bluetooth Terminal على Android.التطبيقات المستخدمة لربط Arduino بالهاتف الذكي
- Bluetooth Terminal (متاح على Android): يسمح بإرسال واستقبال البيانات عبر البلوتوث.
- Serial Bluetooth Terminal (متاح على iOS): تطبيق مشابه لنسخة الأندرويد.
- Blynk: تطبيق يساعد في التحكم ببرمجة Arduino وإنشاء واجهة مستخدم مخصصة.
- ArduinoDroid: تطبيق يساعد في برمجة وتحميل الأكواد على لوحة Arduino مباشرة من الهاتف الذكي.
الفوائد الشاملة لاستخدام Arduino في إنترنت الأشياء IoT
- التحكم في الأجهزة المنزلية الذكية: يمكن استخدام Arduino للتحكم في الثلاجات والغسالات والمكيفات باستخدام المستشعرات والتطبيقات الذكية.
- أتمتة الإضاءة: يمكن برمجة Arduino للتحكم في الإضاءة بناءً على مستشعرات الحركة أو الصوت.
- أنظمة الأمان الذكية: يمكن استخدام Arduino لتطوير أنظمة إنذار ذكية تعتمد على كاميرات ومجسات الحركة.
- إدارة الطاقة الذكية: استخدام المستشعرات لقياس استهلاك الطاقة والتحكم بالأجهزة بناءً على أوقات محددة.
- مشاريع الزراعة الذكية: قياس مستويات الرطوبة والتحكم في أنظمة الري.
ربط Arduino مع المساعدات الذكية مثل Google Assistant و Siri
يمكن دمج Arduino مع المساعدات الذكية مثل Google Assistant وSiri باستخدام منصات مثل IFTTT وHome Assistant. على سبيل المثال:
- Google Assistant: يمكنك إعداد أوامر صوتية مخصصة عبر IFTTT للتحكم في Arduino.
- Siri: يمكن استخدام Shortcuts على iOS لإنشاء إجراءات مخصصة.