ارسال سفارشات بالای 890 هزار تومان رایگان میباشد

‫ماژول RDM6300 آر اف ایدی ریدر 125 کیلو هرتس همراه با آنتن

A1,389-
16

‫ماژول RDM6300 یک ماژول کوچک برای خواندن کد از لیبلها و کاتها و بطور کلی تگهای RFID خواندنی و خواندن و نوشتن بر روی تگهای قابل نوشته شدن که با فرکانس 125KHz تا 134.2KHz کار کرده و با EM4100 سازگار هستند طراحی شده است. ‫
‫از مزایای این ماژول پشتیبانی از آنتن خارجی و اندازه کوچک است. ‫
‫موارد استفاده این ماژول در دفتر کار و امنیت خانه و شناسایی شخصی و کنترل دسترسی و اسباب بازی های تعاملی و سیستم های کنترل تولید و غیره است. ‫
‫این ماژول از مدار گیرنده RF پیشرفته و طراحی MCU تعبیه شده و الگوریتم رمزگشایی کارآمد استفاده کنید. ‫
‫استفاده از این ماژول آسان است ، درگاه سریال پس از روشن شدن به arduino MCU متصل می شود ، هنگامی که کارت RFID وارد محدوده خواندن کارت می شود ، این ماژول شماره کارت را توسط UART به arduino ارسال می کند.

متفرقه
تومان 149,499
عدد
1

کالاهای مرتبط

  • نظرکاربران
  • مشخصات کالا
  • توضیحات کاربردی

‫کد ارتباط با ماژول مخصوص آردواینو

// (c) Michael Schoeffler 2018, http://www.mschoeffler.de
#include
const int BUFFER_SIZE = 14; // RFID DATA FRAME FORMAT: 1byte head (value: 2), 10byte data (2byte version + 8byte tag), 2byte checksum, 1byte tail (value: 3)
const int DATA_SIZE = 10; // 10byte data (2byte version + 8byte tag)
const int DATA_VERSION_SIZE = 2; // 2byte version (actual meaning of these two bytes may vary)
const int DATA_TAG_SIZE = 8; // 8byte tag
const int CHECKSUM_SIZE = 2; // 2byte checksum
SoftwareSerial ssrfid = SoftwareSerial(6,8);
uint8_t buffer[BUFFER_SIZE]; // used to store an incoming data frame
int buffer_index = 0;
void setup() {
Serial.begin(9600);

ssrfid.begin(9600);
ssrfid.listen();

Serial.println("INIT DONE");
}
void loop() {
if (ssrfid.available() > 0){
bool call_extract_tag = false;

int ssvalue = ssrfid.read(); // read
if (ssvalue == -1) { // no data was read
return;
}
if (ssvalue == 2) { // RDM630/RDM6300 found a tag => tag incoming
buffer_index = 0;
} else if (ssvalue == 3) { // tag has been fully transmitted
call_extract_tag = true; // extract tag at the end of the function call
}
if (buffer_index >= BUFFER_SIZE) { // checking for a buffer overflow (It's very unlikely that an buffer overflow comes up!)
Serial.println("Error: Buffer overflow detected!");
return;
}

buffer[buffer_index++] = ssvalue; // everything is alright => copy current value to buffer
if (call_extract_tag == true) {
if (buffer_index == BUFFER_SIZE) {
unsigned tag = extract_tag();
} else { // something is wrong... start again looking for preamble (value: 2)
buffer_index = 0;
return;
}
}
}
}
unsigned extract_tag() {
uint8_t msg_head = buffer[0];
uint8_t *msg_data = buffer + 1; // 10 byte => data contains 2byte version + 8byte tag
uint8_t *msg_data_version = msg_data;
uint8_t *msg_data_tag = msg_data + 2;
uint8_t *msg_checksum = buffer + 11; // 2 byte
uint8_t msg_tail = buffer[13];
// print message that was sent from RDM630/RDM6300
Serial.println("--------");
Serial.print("Message-Head: ");
Serial.println(msg_head);
Serial.println("Message-Data (HEX): ");
for (int i = 0; i < DATA_VERSION_SIZE; ++i) {
Serial.print(char(msg_data_version[i]));
}
Serial.println(" (version)");
for (int i = 0; i < DATA_TAG_SIZE; ++i) {
Serial.print(char(msg_data_tag[i]));
}
Serial.println(" (tag)");
Serial.print("Message-Checksum (HEX): ");
for (int i = 0; i < CHECKSUM_SIZE; ++i) {
Serial.print(char(msg_checksum[i]));
}
Serial.println("");
Serial.print("Message-Tail: ");
Serial.println(msg_tail);
Serial.println("--");
long tag = hexstr_to_value(msg_data_tag, DATA_TAG_SIZE);
Serial.print("Extracted Tag: ");
Serial.println(tag);
long checksum = 0;
for (int i = 0; i < DATA_SIZE; i+= CHECKSUM_SIZE) {
long val = hexstr_to_value(msg_data + i, CHECKSUM_SIZE);
checksum ^= val;
}
Serial.print("Extracted Checksum (HEX): ");
Serial.print(checksum, HEX);
if (checksum == hexstr_to_value(msg_checksum, CHECKSUM_SIZE)) { // compare calculated checksum to retrieved checksum
Serial.print(" (OK)"); // calculated checksum corresponds to transmitted checksum!
} else {
Serial.print(" (NOT OK)"); // checksums do not match
}
Serial.println("");
Serial.println("--------");
return tag;
}
long hexstr_to_value(char *str, unsigned int length) { // converts a hexadecimal value (encoded as ASCII string) to a numeric value
char* copy = malloc((sizeof(char) * length) + 1);
memcpy(copy, str, sizeof(char) * length);
copy[length] = '\0';
// the variable "copy" is a copy of the parameter "str". "copy" has an additional '\0' element to make sure that "str" is null-terminated.
long value = strtol(copy, NULL, 16); // strtol converts a null-

‫ماژول RDM6300 و ماژول مشابه RDM630 و راه اندازی آنها

آشنایی با ماژول

‫این دو ماژول 630 و 6300 هر دو با فرکانس 125 کیلوهرتس کار میکنند و کار با آنها مشابه میباشد. ‫
‫پینهای بسیار مفیدی بر روی برد پیشبینی شده. پین vcc به 5 ولت متصل میشود. ‫
‫پین LED برای اتصال به نمایشگر وضعیت متصل میشود. ‫
‫پین led در حالت نبود تگ در محدوده آنتن 5 ولت است و در حالت اتصال موفق به تگ ولتاژ این پین برای چند لحظه افت میکند. ‫

تغذیه و راه اندازی

‫برای راه اندازی این پروژه vcc و GND را به 5 ولت آردواینو متصل کنید. ‫
‫پین TX به پین دیجیتال 6 آردواینو جهت دریافت اطلاعات متصل میشود. ‫
‫پین RX جهت ارسال اطلاعات استفاده میشود که در این برنامه مد نظر ما نیست ولی جهت تکمیل مدار به پین دیجیتال 8 آردواینو متصل میشود. ‫
‫آنتن را نیز متصل میکنیم. جهت اتصال آنتن مهم نیست.

‫بعد از بستن مدار کد مربوطه را برنامه ریزی کنید و نتیجه را در پنجره سریال ببینید. ‫
‫با نزدیک کردن تگ به آنتن و اتصال آن به دستگاه در پنجره سریال مشخصات تگ را مشاهده خواهید کرد.

‫/******************************************************* ‫
‫Program : ARDUINO dengan RFID RDM6300 ‫
‫Chip : Arduino Uno ‫
‫********************************************************/ ‫
‫#define RDM6300 Serial ‫
‫ ‫
‫int statusRFID = 0; ‫
‫unsigned int readData[10]; ‫
‫int counter = -1; ‫
‫char tagId[11]; ‫
‫void setup() { ‫
‫ RDM6300.begin(9600); ‫
‫ delay(2000); ‫
‫ Serial.println("Dekatkan RFID Tag 125Khz ke RFID Reader"); ‫
‫ Serial.println(); ‫
‫} ‫
‫void parseTag() { ‫
‫ int i; ‫
‫ for (i = 0; i < 10; ++i) { ‫
‫ tagId[i] = readData[i]; ‫
‫ } ‫
‫ tagId[10] = 0; ‫
‫} ‫
‫void clearSerial() { ‫
‫ while (RDM6300.read() >= 0) { ‫
‫ ; ‫
‫ } ‫
‫} ‫
‫void loop() { ‫
‫ if (RDM6300.available() > 0) { ‫
‫ statusRFID = RDM6300.read(); ‫
‫ if (statusRFID == 2) { ‫
‫ counter = 0; ‫
‫ } ‫
‫ else if (statusRFID == 3) { ‫
‫ parseTag(); ‫
‫ ‫
‫ RDM6300.print("Tag RFID: "); ‫
‫ RDM6300.println(tagId); ‫
‫ delay(1000); ‫
‫ ‫
‫ clearSerial(); ‫
‫ counter = -1; ‫
‫ } ‫
‫ else if (counter >= 0) { ‫
‫ readData[counter] = statusRFID; ‫
‫ ++counter; ‫
‫ } ‫
‫ } ‫
‫}

‫ماژول RDM6300 و ماژول مشابه RDM630 و راه اندازی آنها

آشنایی با ماژول

‫این نمونه یک نمونه دیگر از استفاده این ماژول با آردواینو اونو است که به شکل زیر قابل ساخت و برنامه ریزی است.

مشخصات کالا

Frequency : 125KHz

Interface : TTL RS232 UART

Voltage : 5V

Current : <50mA

Temperature : -10-70°C

Size : 38.5x19x9mm

Distance : <150mm

name : Value

name : Value

Decoding time : <100 ms

نظرکاربران

ثبت نظر شما

امتیاز دهید