搜尋程式碼

Arduino 代碼同 HC-06 藍牙 AC 燈膽影片

Arduino 代碼同 HC-06 藍牙 AC 燈膽影片

喺呢個教學入面,我哋會探討點樣用HC-06藍牙模組同Arduino嚟控制一個AC燈膽。呢個項目容許你透過藍牙連接嘅裝置發送指令嚟開關燈膽。呢個遙距控制功能令到佢成為一個實用又有趣嘅項目,啱晒想將藍牙功能整合入Arduino項目嘅初學者。

HC-06-module

跟住呢個教學列出嘅步驟,你就可以設定硬件、寫程式,然後由你嘅智能手機或平板電腦控制盞燈。如果你需要進一步嘅澄清,記得睇吓同呢個教學相關嘅影片(影片喺0:00)。

硬件解說

呢個項目嘅主要組件包括HC-06藍牙模組、一塊Arduino板,同埋一個用嚟控制AC燈膽嘅繼電器模組。HC-06模組負責建立藍牙連接,令你嘅裝置可以無線同Arduino通訊。佢有四個針腳:VCC(電源)、GND(接地)、TX(傳送)同RX(接收)。

繼電器模組充當一個開關嚟控制AC燈膽。佢連接去燈膽嘅電源線,容許佢根據從Arduino收到嘅訊號嚟接通電路(開燈)或者斷開電路(關燈)。Arduino就係成個操作嘅大腦,負責解讀從藍牙模組發送嚟嘅指令,並相應咁控制繼電器。

數據表細節

製造商HC
零件編號HC-06
邏輯/IO電壓3.3 V – 6 V
供電電壓3.3 V – 6 V
輸出電流(每通道)20 mA
峰值電流(每通道)50 mA
PWM頻率指引唔適用
輸入邏輯閾值0.2 V(低)/ 0.7 V(高)
電壓降 / RDS(on) / 飽和0.5 V
熱限制85 °C
封裝模組
備註 / 變體藍牙2.0

  • 確保電壓水平正確,以免損壞模組。
  • 如果模組用喺高負載應用,就要用適當嘅散熱。
  • 保持TX同RX針腳正確連接,以免出現通訊問題。
  • 再三檢查繼電器規格,以配合AC燈膽嘅電壓同電流額定值。
  • 處理AC電壓時要實施適當嘅隔離,以加強安全。

接線指示

HC-06_bluetooth_wiring

要將HC-06藍牙模組同繼電器接線到Arduino,首先將HC-06嘅VCC針腳連接去Arduino嘅5V針腳,然後將GND針腳連接去Arduino嘅接地。跟住將HC-06嘅TX針腳連接去Arduino嘅數碼針腳10,RX針腳就連接去數碼針腳11。呢個設定容許Arduino同藍牙模組通訊。

至於繼電器模組,將控制針腳(通常標示為IN)連接去Arduino嘅數碼針腳2。繼電器嘅VCC針腳都應該連接去5V電源,接地針腳就去共同接地。確保將AC燈膽嘅電線連接去繼電器嘅常開(NO)同共同(COM)端子,先可以有效咁控制燈膽嘅電源。

程式碼示例同講解

Arduino程式一開始就包含SoftwareSerial程式庫,呢個容許喺其他數碼針腳上進行串列通訊。藍牙模組初始化時,TX針腳連接去針腳10,RX針腳連接去針腳11:

SoftwareSerial BT(10, 11); // 建立一個「虛擬」串列埠/UART

呢個設定令Arduino可以有效咁同HC-06模組通訊。繼電器嘅控制針腳定義如下:

#define SW 2 // 將針腳2定義為控制針腳

setup()函數初始化藍牙連接,並將繼電器控制針腳設定為輸出:

void setup() { pinMode(SW, OUTPUT); BT.begin(9600); }

loop()函數入面,Arduino檢查有冇收到藍牙指令。如果收到'1',繼電器就會啟動嚟開燈:

if (a=='1') { digitalWrite(SW, LOW); BT.println("Light on"); }

相反,如果收到'2',繼電器就會停用嚟關燈:

if (a=='2') { digitalWrite(SW, HIGH); BT.println("Light off"); }

如果想知更多細節同完整程式碼,請參考文章下面載入嘅完整程式。

示範 / 預期效果

當所有嘢正確設定好之後,你就可以用藍牙指令嚟開關AC燈膽。輸入'1'會開燈,輸入'2'就會關燈。喺發送指令之前,確保你嘅藍牙裝置已經同HC-06模組配對。如果指令冇被識別,檢查吓你嘅接線,並確保HC-06正確連接(影片喺3:30)。

影片時間戳

  • 00:00 - 項目介紹
  • 01:45 - 硬件設定
  • 04:30 - 程式碼解說
  • 06:15 - 應用程式示範
  • 08:00 - 疑難排解貼士

圖片

HC-06-module
HC-06-module
HC-06_bluetooth_wiring
HC-06_bluetooth_wiring
52-This is the Arduino code for an HC-06 Bluetooth AC bulb ON/OFF.
語言: C++
/*
 * This is the Arduino code for the HC-06 Bluetooth module
 * to measure the distance using Arduino for a robotic car and other applications
 * Watch the video https://youtu.be/-E9J9ExdZ20
 * 
 * Written by Ahmad Nejrabi for Robojax Video
 * Date: January 1, 2018, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */

// original source code: https://github.com/tronixlabsAU/HC06
#include <SoftwareSerial.h>

SoftwareSerial BT(10, 11); 
// creates a "virtual" serial port/UART
// connect BT module TX to D10
// connect BT module RX to D11
// connect BT Vcc to 5V, GND to GND

#define SW 2 // define pin 2 as control pin
// by Robojax for Robojax.com, January 1, 2018
void setup()  
{
    
  // set digital pin to control as an output
  pinMode(SW, OUTPUT);

  // set the data rate for the SoftwareSerial port
  BT.begin(9600);

  // Send test message to other device
  BT.println("Hello from Arduino");
}

char a; // stores incoming character from other device

void loop() 
{
  if (BT.available())
  // if text arrived from BT serial...
  {
    a=(BT.read());
    if (a=='1')
    {
      digitalWrite(SW, LOW);// Turn LIGHT ON
      BT.println("Light on");
    }
    if (a=='2')
    {
      digitalWrite(SW, HIGH);// Turn LIGHT OFF
      BT.println("Light off");
    }
    if (a=='?')
    {
      BT.println("Send '1' to turn LIGHT on");
      BT.println("Send '2' to turn LIGHT off");
    }   
    
  }
}

你可能需要嘅嘢

資源與參考資料

文件📁

Fritzing 文件