實驗說明:
前面的章節我們已經學會如何通過ESP32和Android手機的藍牙進行數據通訊。接下來我們更進一步來使用藍牙指令遠端控制一些裝置,本篇會使用藍牙來遠端控制LED燈,硬體電路很間單,目的是為了確保能讓您快速上手後,之後您就可以自行開發一些新的功能了。
材料:
- ESP32-E DevKit
- USB 傳輸線
- 直插LED
- 220Ω直插電阻
- 麵包板
- 麵包板跳線
- Android手機或平板
▼ 購買IoT物聯網學習教材:
程式:
#include <BluetoothSerial.h>
BluetoothSerial SerialBT;
int led_1 =16; //紅色LED
int led_2 =17; //黃色LED
int led_3 =5; //綠色LED
void setup() {
Serial.begin(115200);
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(led_3, OUTPUT);
SerialBT.begin("ESP32_BT");
}
void loop() {
String value;
if (SerialBT.available()) {
value = SerialBT.readString();
if(value == "1"){
//收到1,開啟紅色LED
digitalWrite(led_1,HIGH);
Serial.println("收到1,開啟紅色LED");
}
if(value == "2"){
//收到2,關閉紅色LED
digitalWrite(led_1,LOW);
Serial.println("收到2,關閉紅色LED");
}
if(value == "3"){
//收到3,開啟黃色LED
digitalWrite(led_2,HIGH);
Serial.println("收到3,開啟黃色LED");
}
if(value == "4"){
//收到4,關閉黃色LED
digitalWrite(led_2,LOW);
Serial.println("收到4,關閉黃色LED");
}
if(value == "5"){
//收到5,開啟綠色LED
digitalWrite(led_3,HIGH);
Serial.println("收到5,開啟綠色LED");
}
if(value == "6"){
//收到6,關閉綠色LED
digitalWrite(led_3,LOW);
Serial.println("收到6,關閉綠色LED");
}
}
delay(50);
}
說明:
將範例程式編譯並上傳程式碼到ESP32開發板後,接著我們開始設定手機端的部分。
▼首先,請先確保ESP32_BT已被連線,然後點選「Buttons&Slider」進入Buttons頁面。
▼接著要先修改 Button E 與 Buttons F 。請點選右上功能設定按鈕,進入功能設定頁面後,再點選「Command buttons configuration」進入修改Button對應的值。
▼請分別將Button E對應的值設定為5,Button F對應的值設定為6。
▼在手機端APP完成上述設定後,接著您可以試著依序點擊Button,我們即可在ESP32的序列視窗內接收到手機傳來的指令,並觀察ESP32上的LED燈光變化。是不是很好玩啊,再下一篇米羅會介紹如何利用藍牙來做語音辨識遠端控制。