Arduino bluetooth ve android telefon üzerinden kontrolü Bluetooth and control via android phone with Arduino

Arduino devreleri ve uygulamaları

  Arduino bluetooth ve android telefon üzerinden kontrolü Bluetooth and control via android phone with Arduino

Çoğumuz Arduino projesini cep telefonu ile kontrol etmek ister. Bu konuda imdadımız Ardudroid yazılımı yetişiyor.

Ardudroid yazılımı ile Arduinomuzu bluetooth üzerinden haberleştirerek dilediğimiz veriyi akıllı telefonumuzdan arduinoya gönderip alabiliriz.

  • Dijital port kontrolü
  • PWM kontrolü
  • Analog port kontrolü
  • Serial veri alış/verişi 
  1. Öncelikle Android yazılımımızı Playstore dan “ArduDroid” olarak aratıp android telefonumuza kuruyoruz.
  2. Yada aşağıdaki linkden de indirilebilir. http://www.techbitar.com/ardudroid-simple-bluetooth-control-for-arduino-and-android.html 
  3. Sonra aşağıdaki yazılımı Arduinomuza gömüyoruz.

Kod:

define START_CMD_CHAR ‘*’
define END_CMD_CHAR ‘#’
define DIV_CMD_CHAR ‘|’
define CMD_DIGITALWRITE 10
define CMD_ANALOGWRITE 11
define CMD_TEXT 12
define CMD_READ_ARDUDROID 13
define MAX_COMMAND 20 // max command number code. used for error checking.
define MIN_COMMAND 10 // minimum command number code. used for error checking.
define IN_STRING_LENGHT 40
define MAX_ANALOGWRITE 255
define PIN_HIGH 3
define PIN_LOW 2
String inText;
void setup() {
Serial.begin(9600);
Serial.println(“ArduDroid 0.12 Alpha by TechBitar (2013)”);
Serial.flush();
}
void loop()
{
Serial.flush();
int ard_command = 0;
int pin_num = 0;
int pin_value = 0;
char get_char = ‘ ‘; //read serial
// wait for incoming data
if (Serial.available() < 1) return; // if serial empty, return to loop().
// parse incoming command start flag
get_char = Serial.read();
if (get_char != START_CMD_CHAR) return; // if no command start flag, return to loop().
// parse incoming command type
ard_command = Serial.parseInt(); // read the command
// parse incoming pin# and value
pin_num = Serial.parseInt(); // read the pin
pin_value = Serial.parseInt(); // read the value
// 1) GET TEXT COMMAND FROM ARDUDROID
if (ard_command == CMD_TEXT){
inText =””; //clears variable for new input
while (Serial.available()) {
char c = Serial.read(); //gets one byte from serial buffer
delay(5);
if (c == END_CMD_CHAR) { // if we the complete string has been read
//kodunuzuburayagirebilirsiniz
break;
}
else {
if (c != DIV_CMD_CHAR) {
inText += c;
delay(5);
}
}
}
}
// 2) GET digitalWrite DATA FROM ARDUDROID
if (ard_command == CMD_DIGITALWRITE){
if (pin_value == PIN_LOW) pin_value = LOW;
else if (pin_value == PIN_HIGH) pin_value = HIGH;
else return; // error in pin value. return.
set_digitalwrite( pin_num, pin_value); // Uncomment this function if you wish to use
return; // return from start of loop()
}
// 3) GET analogWrite DATA FROM ARDUDROID
if (ard_command == CMD_ANALOGWRITE) {
analogWrite( pin_num, pin_value );
//kodunuzuburayayazabilirsiniz
return; // Done. return to loop();
}
// 4) SEND DATA TO ARDUDROID
if (ard_command == CMD_READ_ARDUDROID) {
// char send_to_android[] = “Place your text here.” ;
// Serial.println(send_to_android); // Example: Sending text
Serial.print(” Analog 0 = “);
Serial.println(analogRead(A0)); // Example: Read and send Analog pin value to Arduino
return; // Done. return to loop();
}
}
// 2a) select the requested pin# for DigitalWrite action
void set_digitalwrite(int pin_num, int pin_value)
{
switch (pin_num) {
case 13:
pinMode(13, OUTPUT);
digitalWrite(13, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 12:
pinMode(12, OUTPUT);
digitalWrite(12, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 11:
pinMode(11, OUTPUT);
digitalWrite(11, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 10:
pinMode(10, OUTPUT);
digitalWrite(10, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 9:
pinMode(9, OUTPUT);
digitalWrite(9, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 8:
pinMode(8, OUTPUT);
digitalWrite(8, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 7:
pinMode(7, OUTPUT);
digitalWrite(7, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 6:
pinMode(6, OUTPUT);
digitalWrite(6, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 5:
pinMode(5, OUTPUT);
digitalWrite(5, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 4:
pinMode(4, OUTPUT);
digitalWrite(4, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 3:
pinMode(3, OUTPUT);
digitalWrite(3, pin_value);
//kodunuzuburayagirebilirsiniz
break;
case 2:
pinMode(2, OUTPUT);
digitalWrite(2, pin_value);
//kodunuzuburayagirebilirsiniz
break;
// default:
// if nothing else matches, do the default
// default is optional
}
}

NOT: Direnç kullanmadan bağlantı yaptığınız takdirde de çalışmaktadır.

NOT – 2: Eğer Ardudroid ile kendi kodlarınızı da çalıştırmak istiyorsanız, kod içerisinde kodunuzuburayagirebilirsiniz etiketini aratıp kendi kodlarınızı girebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir