在本文中,將演示如何使用Arduino(Arduino UNO)和藍芽模組HC-05構建一個物聯網專案來控制LED燈。在這個專案中,我們將使用Android智慧手機將藍芽信號傳送到藍芽模組。
在這個專案中,使用了三個主要元件; Android智慧手機,藍芽收發器和Arduino。
Android應用程式可通過按ON按鈕將序列資料傳送到藍芽模組HC-05。藍芽模組HC-05用於序列通訊。它從應用程式接收資料並通過藍芽模組的TX引腳傳送到Arduino的RX引腳。Arduino中上傳的程式碼檢查收到的資料。如果接收資料為1
,則LED變為ON,如果接收的資料為0
,則LED變為OFF。
數位電路圖
Bluetooth Module HC-05 Arduino UNO
TX --------------------------------> RX (Pin 0)
RX --------------------------------> TX (Pin 1)
VCC --------------------------------> 5v
GND --------------------------------> GND
LED Pin Arduino UNO
Pin 1 --------------------------------> GND
Pin 2 --------------------------------> Pin 13
要進行Arduino板的程式設計,需要下載Arduino軟體。可以從Arduino官方網站: https://www.arduino.cc/ 下載。如下圖所示:
根據您的作業系統相容性(Windows Installer)下載Arduino軟體。
點選下載(Download),如下所示:
下載成功後,執行安裝程式並按照說明進行操作。
當它要求安裝驅動程式軟體時,單擊然後安裝:
安裝後,開啟軟體,如果它生成安全警報,則允許它。
為Arduino UNO主機板寫一個程式,如果接收的資料等於1
,LED亮,如果資料等於0
,則LED熄滅。參考程式碼如下:
char data = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the baud for serial data transmission
pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
if(data == '1') // Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == '0') // Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
}
}
儲存上面程式並進行編譯。
通過Arduino UNO USB線將Arduino裝置連線到膝上型電腦(或顯示器)。在Arduino UNO上傳程式時,刪除Arduino UNO裝置(如藍芽模組和LED)的所有其他連線。
編譯程式碼後,將其上傳到Arduino UNO裝置中。在Arduino上傳程式碼之前,UNO裝置確保選擇了Arduino串列埠,否則會生成錯誤訊息「未選擇串列埠」。
要選擇序列埠,請開啟「裝置管理器」 -> 「埠」 -> 「Arduino Uno」,然後上傳程式碼。
點選「ON」按鈕,它將資料1
傳送到藍芽模組,這些資料從藍芽模組傳輸到Arduino裝置,並開啟LED。點選「OFF」時,Android應用程式將資料0
傳送到藍芽模組,此資料從藍芽模組傳輸到Arduino,並關閉LED。