close

使用材料:

Arduino leonardo、藍芽模組(HC-06)、4 mode RELAY、andriod系統手機

AD  

藍芽HC-06(正)  藍芽HC-06(反)    

4 mode realy    

 

所需軟體:

arduino

MIT App Inventor 2

 

動作說明:

當手機和arduino連線後,可以控制RELAY,並控制LED開關。

影片:http://youtu.be/5jvHeRVICIY?list=UUlAWf2hmQgr9VZOsq8ajfDA

 IMG_2964      

 

電路圖:

藍芽

TXD 連到PIN10

RXD 連到PIN11

RELAY

INT1 連到PIN7

INT2 連到PIN6

INT3 連到PIN5

INT4 連到PIN4

BTRELAY電路  

※RELAY的工作原理和接法以後會PO上來

※※LED一定要加電阻,不然會燒掉喔...... 

arduino程式及說明:

 藉由手機回傳的"字"轉換成ASCII碼,並以switch case 的方式判斷和控制

#include 
#include 
SoftwareSerial I2CBT(10,11);//定義PIN10及PIN11分別為RX及TX腳位

void setup() {
  Serial.begin(9600); //Arduino起始鮑率:9600
  I2CBT.begin(9600); 
  //藍牙鮑率:9600每個藍牙晶片的鮑率都不太一樣,請先查閱datasheet
  pinMode(7, OUTPUT);  //設定 pin7 為輸出,RELAY1就接在這
  pinMode(6, OUTPUT);  //設定 pin6 為輸出,RELAY2就接在這
  pinMode(5, OUTPUT);  //設定 pin5 為輸出,RELAY3就接在這
  pinMode(4, OUTPUT);  //設定 pin4 為輸出,RELAY4就接在這
  //預設全部RELAY在常閉NC
  digitalWrite(7,HIGH); 
  digitalWrite(6,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(4,HIGH);
}

void loop() {
  
  byte cmmd[20];
  int insize;	
  while(1){
    if ((insize=(I2CBT.available()))>0){  //判斷是否有訊息傳入訊息
      Serial.print("input size = ");
      Serial.println(insize);
      for (int i=0; i<insize; i++){
        Serial.print(cmmd[i]=char(I2CBT.read()));  //顯示訊息
        Serial.print(" ");
      }
    }
    switch (cmmd[0]) { //讀取第一個字
    case 97: //97為"a"的ASCII CODE
      digitalWrite(7,LOW);  //RELAY1常開 點亮LED
      break;

    case 98://98為"b"的ASCII CODE
      Serial.println("Get b");
      digitalWrite(7,HIGH);   //RELAY1常閉 熄滅LED
      break;

    case 99: //99為"c"的ASCII CODE
      digitalWrite(6,LOW);  //RELAY2常開 點亮LED
      break;

    case 100://100為"d"的ASCII CODE
      Serial.println("Get d");
      digitalWrite(6,HIGH);   //RELAY2常閉 熄滅LED
      break;

    case 101: //101為"e"的ASCII CODE
      digitalWrite(5,LOW);  //RELAY3常開 點亮LED
      break;

    case 102://102為"f"的ASCII CODE
      Serial.println("Get f");
      digitalWrite(5,HIGH);   //RELAY3常閉 熄滅LED
      break;

    case 103: //103為"g"的ASCII CODE
      digitalWrite(4,LOW);  //RELAY4常開 點亮LED
      break;

    case 104://104為"h"的ASCII CODE
      Serial.println("Get h");
      digitalWrite(4,HIGH);   //RELAY4常閉 熄滅LED
      break;
    } //Switch
  } //while
}//loop

 

 ANDRIOD程式及說明:

andriod_block  

畫面一開始的設定和藍芽連線

program1.PNG

設定按鈕

 

program2.PNG

重複4次

program3.PNG

斷開連結

program4.PNG  

 

 

 

 

arrow
arrow

    不專業工作室 發表在 痞客邦 留言(9) 人氣()