App Inventor 透過藍牙遙控 Arduino LED 開關


Jason 正在研究 DIY 一隻6關節機械臂。
前因後果可以看這裏

對我來說這個計劃相當的龐大,所以現時先分成幾個階段實行:

第1階段>透過手機遙控 Arduino 上的 LED 開關。

第2階段>透過手機遙控 Arduino 上的 LED 光暗。

第3階段>透過手機遙控 Arduino 上的 Servo Motor。

第4階段>還在構思中...

好!今天就先為大家介紹第1階段的研究成果,大家有興趣的話也可以跟著做一個哦。
(不過,請先確保自己對 Arduino, App Inventor 有基本的技術力哦!)

首先要準備一下材料:

Arduino UNO R3 x 1
HC-06 Bluetooth Module x 1
LED x 1
杜邦線 DuPont Cables x 適量

製作步驟如下:

[Part 1 硬件的準備工作]

首先將
HC-06 的 VCC 連接到 Arduino 的 5V 接腳;
HC-06 的 GND 連接到 Arduino 的 GND 接腳;
HC-06 的 TXD 連接到 Arduino 的 TX(1) 接腳;
HC-06 的 RXD 連接到 Arduino 的 RX(0) 接腳。

LED 的 + 連接到 Arduino 的 Pin 13;
LED 的 + 連接到 Arduino 的 GND。
(由於我用的 Arduino 有內置電阻,所以沒有加電阻。
如果大家不知道自己的 Arduino 有否內置電阻,可自行加入);



[Part 2 編寫 Arduino 程式部份]

進入 Arduino IDE 並編寫下列程式碼:

--------------------------------------
#include <SoftwareSerial.h>

SoftwareSerial I2CBT(1, 0); // 藍牙 TX, RX pin

int ledPin = 13; // LED pin

void setup() {
  I2CBT.begin(9600); // 藍牙 baud rate
  pinMode(ledPin, OUTPUT); // LED pin 設定為輸出模式
}

void loop() {
  // 檢查是否有資料可供讀取
  if (I2CBT.available() > 0) {
    // 讀取進來的 byte
    int inByte = I2CBT.read();
    // 根據收到的字元決定要打開或關掉 LED
    switch (inByte) {
    case 'a':
      digitalWrite(ledPin, HIGH);
      break;
    case 'b':
      digitalWrite(ledPin, LOW);
      break;
    }
  }
}
--------------------------------------

[Part 3 編寫 App Inventor 2 程式部份]

進入 App Inventor 2 並編寫下列程式碼:





[Part 4 執行手機應用程式]

首先啟動 Arduino 並確保已上傳 Part 2 的程式碼;

然後在手機連接 Arduino 的 HC-06 藍牙模組;

透過 AI2 傳送程式到你的 Android 手機;(我當大家有足夠的水平,所以不詳述步驟啦)

在手機介面按「Connect Bluetooth Device」,然後選擇之前已連線的 HC-06 藍牙模組;

然後就可以在手機按「LED ON」/「LED OFF」控制 LED 的開關了!

[Part 5 下載程式碼]

本篇教學文中所用到的 Arduino 以及 App Inventor 2 程式碼可到此下載