الثلاثاء، 28 فبراير 2017

انشئ بنفسك RFID باستخدام اردوينو

سوف نتعلم بعض الأساسيات حول تكنولوجيا RFID واستخدام  اردوينو MEGA مع وحدة تفاعل   ID12LA.
RFID لتقف على تحديد الهوية بترددات الراديو. إذا لم تكن قد لاحظت بعد، انها وجدت في كثير من الأماكن. هذه التقنية هي بالقرب منك الآن!
تم العثور على تكنولوجيا RFID عادة في الفنادق والمكاتب والمصارف والمخازن، وما إلى ذلك حتى يتم زرع رقائق RFID في الحيوانات الأليفة للتأكد من أنهم يمكن تحديد وعاد إلى البيت إذا ضاع. غالبا ما تقارن الباركود. ولكن حتى إذا كان لديه نفس استخدامها بوصفها الباركود، وهما يختلفان في عدد قليل من الطرق.

في هذه المقالة، ونحن نذهب لتعلم بعض الأساسيات حول تكنولوجيا RFID واستخدام MEGA اردوينو إلى اللعب حولها مع وحدة تتفاعل الشعبية، وID12LA. سوف يفاجأ من قبل كيف سيكون من السهل لدمج هذه التقنية في المشروع الالكترونيات القادم!


الهاردوير

Arduino MEGA اذا لم يكن لديك ميغا فليست مشكلة
  • ID12LA
 ID12LA Breakout PCB
اللوح الصغيرة
بعض الأسلاك 
لحام وقصدير

نظرية

قبل أن نتمكن من البدء في أي نوع من البرامج أو التخطيط الأجهزة، فمن الضروري أن يكون هناك فهم أساسيات جدا من RFID.
في أي نظام RFID، وسوف يكون هناك جهاز التي سيكون لها المعلومات، وتسمى عادة علامة أو مرسل، وجهاز آخر من شأنها أن "نظرة" أو "بمعنى" هذه المعلومات، وعادة ما يسمى القارئ أو المحقق. سوف تحتاج كل من المكونات لديك هوائي الخاصة بهم على التواصل و، وهذا يتوقف على نوع التكنولوجيا وتتفاعل، ويمكن تبادل المعلومات واحد أو في كلا الاتجاهين.

لفهم هذا أفضل، ونحن بحاجة إلى فهم هذين النوعين تختلف اختلافا واضحا من تكنولوجيا RFID: السلبي والإيجابي.

دعونا نبدأ مع السلبي. في نظام السلبي، العلامة تتكون من هوائي والدوائر لإيواء . ولكن لا يوجد مصدر الطاقة (أي بطارية)، لذلك كيف يمكن للدوائر داخل الحصول على مدعوم؟
الجواب يكمن في القارئ. في نظام RFID السلبي، فإن القارئ لديها هوائي سوف تنبعث منها طاقة الترددات اللاسلكية التي من شأنها أن تحفز تيار في الدوائر والعلامة. لذلك كلما العلامة تتحرك من خلال المجال الكهرومغناطيسي للقارئ، فإنه يحصل بالطاقة ومن ثم تبث مباشرة كود فريدة من نوعها. في نفس الوقت، والقارئ هو الاستماع أيضا لهذا الرمز.
في اي مدى يحدث كل ذلك؟ ذلك يعتمد على القارئ والعلامة، ولكن ذلك يعتمد إلى حد كبير على وتيرة الذي يبث التعليمات البرمجية. الترددات الثلاثة الرئيسية لتتفاعل 
 هي:
التردد المنخفض: ~ 125 كيلو هرتز. تشتمل عادة على مجموعة من بضعة سنتيمترات
تردد عال: 13.56 ميغاهيرتز. يبلغ مداه يصل الى متر
تردد فائق: ~ 865 ميغاهيرتز. لديها مجموعة من حوالي 30 مترا
مع كل هذا يقال، وID12LA في مشروعنا هو   نوع القارئ الذي يتكون من المدمج في الهوائي والدوائر التي يمكن فك شفرة العلامة وبصق البيانات التسلسلية أن لدينا اردوينو يمكن أن نفهم. بل هو أيضا 125 كيلو هرتز وهو ما يعني أننا بحاجة العلامات التي يمكن استجوابه على هذا التردد.
السلبي RFID قد يبدو ان الامر سيكون له عيوبه بسبب مجموعتها قراءة قصيرة ولكن هذه الأنظمة غير مكلفة بشكل عام. أيضا، منذ العلامات ليس لها البطاريات، فإنها يمكن أن تستمر لفترة طويلة من دون خدمة.

وفيما يلي نوع من 125 كيلو هرتز، علامة سلبية أن ID12LA  :





تنشيط RFID 


كما كنت قد خمنت، هذه  دائما مزودة بالطاقة، وبالتالي يكون لها بطارية على متن الجهاز لنقل التعليمات البرمجية الخاصة بهم.
وبسبب هذا، جنبا إلى جنب مع خيار تشغيل إما 433 ميغا هرتز أو 915 ميغاهيرتز، لديها طويلة جدا قراءة المدى يصل إلى بضع مئات من الأمتار! ولأن لديها البطاريات على الجهاز، فإنها يمكن أن تقترن مع التقنيات الأخرى مثل أجهزة استشعار درجة الحرارة وحدات تتبع نظام تحديد المواقع التي يمكن تفصيل لكثير من أنواع مختلفة من التطبيقات.
وأخيرا، هناك نوعان من الأساليب العلامة 
اشارة المستجيب هي مماثلة لنظام السلبي من حيث بروتوكول الاتصالات. القارئ سوف يرسل إشارة إلى العلامة لطلب رمزها.
وهناك سمة  تفعل عكس ذلك ويرسل إشارة بين الحين والآخر من تلقاء نفسها، ولكن هذا يقلل عمر البطارية.
في الأنظمة إما سلبية أو نشطة، هل يمكن أن يكون العلامة التي هي للقراءة فقط أو للكتابة. قراءة فقط يعني فقط أنه لا يمكنك تغيير بيانات العلامة. للكتابة يعني أنه يمكنك اختيار ما البيانات لوضع داخل العلامة.

يمكن أن تتفاعل به نشطة أيضا الحصول على كبيرة جدا. أقل من نوع واحد من شكل عاملا. على وجه التحديد، وصدمات القوية واحد:


توصيل ID12LA مع اردوينو


وهذا يعني أنه بمجرد قراءة علامة، ويمكن إرسال المعلومات من القارئ في شكل تسلسلي، في 9600 بود، 0 بت التماثل، و 1 بت إيقاف. هذا هو الإعداد الاتصال التسلسلي غير المتزامن  وسيجعل الاتصال اردوينو سريعا.
كل مرة يرسل القارئ من البيانات إلى اردوينو، نحن بحاجة إلى وسيلة لمعرفة متى لبدء التقاط البيانات. تبحث في كيفية ارسال القارئ من البيانات، نجد أنه يستخدم بدء الطابع تحكم النص. في الأساس، وعندما الذاكرة المؤقتة لديه بعض البيانات فيه، يمكننا أن ننظر أولا إلى معرفة ما إذا كان هذا حرف تحكم في قائمة الانتظار. إذا كان الأمر كذلك، وبعد ذلك يمكننا المضي قدما وتسجيل الامر التالي. إن لم يكن، وسوف نستمر في القراءة حتى نراه أو الذاكرة المؤقتة فارغا.
على افتراض أننا نقرأ في بداية  تحكم النص، يمكننا أن قراءة  في أحرف ASCII 10 القادمة من الذاكرة المؤقتة. ثم، لأحرف ASCII 5 المقبلة (2 لاختباري (1)، لإرجاع (1)، لتغذية خط، و 1 لنهاية الطابع تحكم النص)، ونحن سوف قراءتها في ولكن ليس حفظه في أي مكان في برنامجنا.

ومع ذلك، لضمان البث لدينا كان صحيحا،  سوف تحقق ضعف أن نرى نهاية الطابع تحكم النص وينظر. على الرغم من أنه قد نادرا ما يكون هذا هو الحال، قد تفشل نقل وعلينا رمي كل ما فعلناه من النافذة من أجل سلامة النظام.
بمجرد قراءة العلامة وحفظها في مكان ما في برنامجنا، يمكننا استخدام هذه البيانات لكل ما نريد! تطبيق نموذجي هو مراقبة الدخول. كنت تأخذ العلامة المحفوظ ومقارنتها بقاعدة بيانات من العلامات التي تعتبر سارية المفعول (في حالتنا، نحن فقط استخدام العلامة المحفوظ واحد). المشكلة هي، كيف لنا أن نعرف ما هو رمز العلامة قبل أن حفظه في قاعدة البيانات؟ أنها ليست مثل العلامة يأتي مع ورقة من الشركة المصنعة.
كمحاولة للتغلب على هذه والبدء في وضع قاعدة بيانات لأنفسنا، ونحن سوف تحتاج إلى قراءة في رمز ملصق عليه لرصد المسلسل. في المقطع رمز اردوينو، وسوف توفر . وعندما يحدث ذلك، فإننا بحاجة لكتابة هذا الرمز في الأسفل ثم تغيير برنامجنا لتخزين هذا الرمز على تجميع. هذا هو بالأحرى الطريقة اليدوية لفعل ذلك ولكن هذا هو من أجل تعلم أساسيات RFID.
حسنا، لذلك دعونا نلخص ما يجب القيام به رمز اردوينو:
مراقبة المخزن المؤقت التسلسلي للبيانات المتاحة.
عند وجود البيانات وقراءة وحفظه مع بعض التحقق من صحة ضمان سلامة الاتصالات.
لصق البيانات إلى جهاز تسلسلي (في المقام الأول من أجل الإعداد الأولي) ومقارنة هذه العلامة إلى علامات المحفوظة لدينا.
تنفيذ إجراء

التسليك







كود اردوينو


char tag1[10] = {'X','X','X','X','X','X','X','X','X','X'};

//char tag1[10] = {'3','6','0','0','6','6','0','0','5','C'};




void setup() 
{
  Serial.begin(9600);
  Serial1.begin(9600);

  tagDetected = false;
}

void loop() 
{
  if (Serial1.available() > 0)
  {
    delay(250);
    
    if (Serial1.peek() != 2)
    {
      tagDetected = false;
      
    }  
    else
    {
      tagDetected = true;
     
      
      Serial.print("Your tag says it is: ");
      Serial.flush();
      printTag(ourTag);
    }
  }
  else
  {
    tagDetected = false;
  }
  
  if (tagDetected)
  {
    if (isValidTag(ourTag))
    {
      Serial.println("Come on in and have some freshly baked cookies!!!\n");
      Serial.flush();
    }
    else
    {
      Serial.println("No idea who you are but I have released the hounds!!!\n");
      Serial.flush();
    }
  }
}

void flushSerial1Buffer() 
{  
  while (Serial1.available() > 0)
  {
    Serial.read();
  }
}

void fetchTagData(char tempTag[]) 
{  
  Serial1.read();
  
  {
    tempTag[counter] = Serial1.read();
  }
 
  Serial1.read();
  Serial1.read();
  Serial1.read();
  Serial1.read();
  
  
  if (Serial1.read() != 3)
  {    {
      tempTag[counter] = '0';
    } 
  }  
  else
  {
    flushSerial1Buffer();
  }
}


boolean isValidTag(char tempTag[]) 
{  
  boolean result;

      
  return result;
}


boolean compareTags(char tagA[], char tagB[])
{
  boolean result = true;

  {
    if (tagA[counter] != tagB[counter])
    {
      result = false;
      break;
    }
  }
  
  return result;
}

/////////////////
// printTag //
/////////////////
void printTag(char tag[])
{
 
  {
    Serial.print(tag[counter]);
  }
  Serial.println("");
}

تطبيقات RFID

تتفاعل مع التحكم في الوصول - طبيعية جميلة واضحة ولكن مع بعض الخيال، يمكنك تكييفه لأفكار مختلفة.


لتنزيل الكود اضغط على تحميل وادخل باحدى حساباتك كي تستطيع التحميل


ساهم بدعم المدونة

استعمال if الشرطية في اردوينو

if يستخدم جنبا مع جنب مع عامل المقارنة للشرط عند تحقق السبب سوف يقوم البرنامج بتنفيذه
حسب المثال الاتي
if (someVariable > 50)
{
  // do something here
}
البرنامج سيقوم بفحص المتغيرات المشروطة , اذا كان كذلك فسيقوم بتنفيذه

إذا كان البيان بين قوسين هو الصحيح، يتم تشغيل البيانات داخل الأقواس. إن لم يكن، 

يتخطى البرنامج خلال التعليمات البرمجية.

حسب المثال


if (x > 120) digitalWrite(LEDpin, HIGH); 

if (x > 120)
digitalWrite(LEDpin, HIGH); 

if (x > 120){ digitalWrite(LEDpin, HIGH); } 

if (x > 120){ 
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH);
البيانات التي يجري تقييمها داخل الأقواس تتطلب استخدام عامل واحد أو أكثر:


عوامل المقارنة

1-       x == y (x is equal to y)                  
2-        x != y (x is not equal to y)
 3-            x <  y (x is less than y)  
 4-          x >  y (x is greater than y) 
 5-    x <= y (x is less than or equal to y) 
 6-      x >= y (x is greater than or equal to y)
في الحالة الاولى x مساوي في القيمة مع y. في الحالة الثانية x لا يساوي y ,
 اما في الحالة الثالثة x اصغر من y , الحالة الرابعة x اكبر 
قيمة من y . الحالة الخامسة x اصغر اويساوي قيمة y . 
الحالة الخامسة x اكبر قيمة او يساوي y.

الاخطاء الشائعة
حذار من غير قصد باستخدام علامة المساواة واحدة if (x = 10) وانما يستخدم (if (x == 10 لكون عند استعمال علامة مساواة 
واحدة فالبرنامج يفهم ان قيمة x مساوي ل 10




arduino program- برنامج اردوينو للاجهزة المكتبية

الاثنين، 27 فبراير 2017

مقارنة بين لوحات اردوينو


Arduino Board Comparison Chart


ماذا يمكن صنعه بالاردوينو ؟!

بما أن الاردوينو متحكم دقيق وهو مفتوح المصدر فلا يمكن حصر الامثلة والمشارع التي يمكننا بالفعل عملها بهذه الدارة ,
من الامثلة على المشاريع التي يمكنك بالفعل القيام بها ما يلي :
 

1- اتتمتة المنازل الذكية والتحكم بها Home Automation
2- المركبات الالية والروبوتات Robotics
3- طابعات ثلاثية الابعاد 3D printers
4- وحدات قياس الحالة الجوية والزلازل
5- الطائرات المتحكم بها عن بعد 
6- اقمار صناعية Satellite 
والكثير الكثير من التطبيقات التي لا استطيع ان اذكرها هنا لضخامة عددها  

Basics of Arduino

Arduino is an electronic board development Development Board is composed of an electronic circuit with open source microcontroller on a single plate is Bermojtaha by computer is designed to make the process of using electronics in interactive multi-disciplinary projects more easily.
Arduino is used primarily in the design of electronic interactive projects, or projects aimed at building different environmental sensors (such as temperature, wind, Aldguet..k) and can be connected to the Arduino different programs on the personal computer.
And it relies Alardueno programmed in the programming language open source processing, characterized Coded own software reached Arduino they resemble language (C ++ C ++ programming language) is one of the easiest programming languages ​​used in the book, micro controllers programs


اساسيات الاردوينو

آردوينو (بالإنجليزية: Arduino) هي عبارة عن لوحه تطوير إلكترونية Development Board تتكون من دارة إلكترونية مفتوحه المصدر مع متحكم دقيق على لوحة واحدة يتم ببرمجتها عن طريق الكمبيوتر وهي مصممة لجعل عملية استخدام الإلكترونيات التفاعلية في مشاريع متعددة التخصصات أكثر سهولة.
ويستخدم اردوينو بصوره أساسيه في تصميم المشاريع الإلكترونية التفاعلية أو المشاريع التي تستهدف بناء حساسات بيئية مختلفة (مثل درجات الحرارة، الرياح، الضغط..الخ) ويمكن توصيل اردوينو ببرامج مختلفة علي الحاسب الشخصي. 
وتعتمد الاردوينو في برمجتها على لغة البرمجة مفتوحه المصدر بروسيسنج ، وتتميز الأكواد البرمجية الخاصة بلغه اردوينو أنها تشبهه لغه (سي++ C++ programming language) وتعتبر من أسهل لغات البرمجة المستخدمة في كتابه برامج المتحكمات الدقيقة.


كما سبق فالاردوينو هي متحكم دقيق microcontroller مفتوحة المصدر Open source , وتعني " مفتوح المصدر " ان بامكان أي شخص اعادة انتاج وتصميم المنتج دون قيود الملكية الفكرية سواء أكانت برمجيات software او عتاد Hardware




تنزيل برنامج ايردرويد

تنزيل برنامج ايردرويد 







Download air droid program


Download air droid program