البلوتوث اردوينو



في كثير من التطبيقات الحياتية المختلفة , نهتم في موضوع التحكم بالأجهزة عن بُعد لاسلكياً Wirless  , كالتحكم بالبيوت الذكية Smart Home و الروبوتات Robot و غيرها الكثير .


تتعد طرق التحكم عن بعد , فهناك التحكم بواسطة الأشعة تحت الحمراء IR  او موجات الراديو RF أو عن طريق الايثرنت Ethernet أو GSM , xbee و غيرها .

سأتناول بالتفصيل كل نوع على حدا , و سأبدأ بطريقة تندرج تحت بند RF ألا و هي البلوتوث Bluetooth .

 في البداية ما هو البلوتوث Bluetooth ؟ 


هي تقنية اتصالات  في نطاق الموجات الراديو  القصيرة صممت لنقل البيانات لمسافات قصيرة من المتر الواحد إلى المائة متر وبأستهلاك كميات ضئيلة من الطاقة وتستخدم هذه التقنية بشكل كبير في نقل البيانات بين الأجهزة المحمولة وفى الملحقات الطرفية للحاسب

ما سنقوم به اليوم هو ربط الأردوينو بالبلوتوث و جعل الأردوينو ينقل البيانات من و إلى الحاسوب  .
ماذا سنحتاج في هذه التجربة ؟ 
المعدات :

سنحتاج لتنفيذ هذه التجربة إلى :
1) بطاقة اردوينو 
2)قطعة بلوتوث Bluetooth module HC-05 
3)مصدر تغذية خارجي "بطارية 9فولت "
4) بلوتوث usb "اختياري في الأجهزة التي لا تمتلك بلوتوث "
5) اسلاك توصيل Solderless jumper
6) BreadBoard

البرمجيات :

ستحتاج لتنفيذ هذه التجربة لبرمجية الأردوينو الأصدار 1.0.1 او أعلى .

برمجية  Tera Term


في البداية طريقة التوصيل :

هذا المخطط ادناه يوضح طريقة التوصيل .

يمكن ان تكون التغذية اما 3.3 فولت أو 5 فولت حسب الموديل المستخدم 

سنقوم في البداية بتعريف جهاز البلوتوث HC-05 المربوط مع الأردوينو مع جهاز الحاسوب .



اسم الجهاز هو HC-05 و الpairing code هو 1234 

بعد ان تتم عملية الربط Pairing بنجاح , يأتي دور البرنامج tera term 

قم بفتح برنامج Tera Term و حدد خيار Serial  الموجود اسفل الشاشة .

يجب عليك معرفة الcom port  الخاص بالبلوتوث في جهاز الحاسوب , و يمكن معرفته عبر الضغط على اجهزة البلوتوث في لوحة التحكم و فتح اعدادات البلوتوث 



بعد ان تحدد رقم الCom port  في لوحة Tera term الرئيسة اضغط OK ستلاحظ أن الLED  الموجود على قطعة البلوتوث توقف عن الترميش المستمر السريع fast blink و اصبح يضيء بشكل ابطئ , و ستظهر لك شاشة البرنامج و يمكنك رؤية البيانات المرسلة و المستقبلة ظاهرة عليها .

سيظهر تطبيق البرنامج على شاشة المخرجات كما في الشكل :


// This program shown how to control arduino from PC Via Bluetooth
// Connect ...
// arduino>>bluetooth
// D11   >>>  Rx 
// D10   >>>  Tx
//Written By AIT-LASRI YOUNES
//forhttps://www.facebook.com/arduino.electromaroc/

// you will need arduino 1.0.1 or higher to run this sketch 

#include <SoftwareSerial.h>// import the serial library

SoftwareSerial Genotronex(10, 11); // RX, TX
int ledpin=13; // led on D13 will show blink on / off
int BluetoothData; // the data given from Computer

void setup() {
  // put your setup code here, to run once:
  Genotronex.begin(9600);
  Genotronex.println("Bluetooth On please press 1 or 0 blink LED ..");
  pinMode(ledpin,OUTPUT); 
}

void loop() {
  // put your main code here, to run repeatedly: 
   if (Genotronex.available()){
 BluetoothData=Genotronex.read();
   if(BluetoothData=='1'){   // if number 1 pressed ....
   digitalWrite(ledpin,1);
   Genotronex.println("LED  On D13 ON ! ");
   }
  if (BluetoothData=='0'){// if number 0 pressed ....
  digitalWrite(ledpin,0);
   Genotronex.println("LED  On D13 Off ! ");
  }
}
delay(100);// prepare for next data .. 
}
  


----------------------------------------------------

// This program shown how to control arduino from PC Via Bluetooth
// Connect ...
// arduino>>bluetooth
// D11   >>>  Rx 
// D10   >>>  Tx
//Written By Mohannad Rawashdeh
//for http://www.genotronex.com/

// you will need arduino 1.0.1 or higher to run this sketch 

#include <SoftwareSerial.h>// import the serial library

SoftwareSerial Genotronex(10, 11); // RX, TX
int ledpin=13; // led on D13 will show blink on / off
long previousMillis = 0;        // will store last time LED was updated

// the follow variables is a long because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long interval = 1000;           // interval at which to blink (milliseconds)
int ledState = LOW;             // ledState used to set the LED
long Counter=0; // counter will increase every 1 second
void setup() {
  // put your setup code here, to run once:
  Genotronex.begin(9600);
  Genotronex.println("Bluetooth On please wait....");
  pinMode(ledpin,OUTPUT); 
}

void loop() {
  // put your main code here, to run repeatedly: 
  unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED 
    previousMillis = currentMillis;   
     Counter+=1;
   
    Genotronex.println(Counter);
   
    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(ledpin, ledState);
  }

}
   


EmoticonEmoticon