Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
電子工程系車用電子與資訊組
Arduino藍牙傳輸應用
吳錫修
sswu@nkut.edu.tw
Revised on July 18, 2018
藍牙簡介、藍牙模組設定、 Bluetooth Controller
App、手機遙控Arduin...
Makeeachdaycount
 藍牙 (Bluetooth)是⼀種短距、低功耗無線技術標準,也是⽬前智慧型
手機標準配備
 藍牙使用2.402-2.480GHz的ISM (Industrial Scientific Medical) 頻...
Makeeachdaycount
 藍牙裝置分為主控 (master) 與從端 (slave)
 主控:可以探索並與其它藍牙裝置配對連線,例如電腦或手機的藍牙裝置
 從端:被動等待被連結,例如藍牙滑鼠、藍牙耳機等
 藍牙技術聯盟定義了許...
Makeeachdaycount
 工作頻率2.4~2.48GHz ISM band
 傳輸距離10 m
 傳輸速率 2Mbps (Bluetooth 2.0)
 通常預設配對密碼0000或1234,UART 9600bps
 不同廠...
Makeeachdaycount
 Arduino的輸出∕入腳位邏輯電壓是5V。如果藍牙模組背板標示傳送和
接收的邏輯電位是3.3V,使用時RxD端必須串接1K電阻或以電路分壓
藍牙模組 2/2
5
Arduino TX
Arduino RX...
Makeeachdaycount
 資料傳輸方式是1個bit接著1個bit傳送
 送收雙方須議定傳輸格式,包括傳輸速率、資料位元數、同位元
 傳輸速度 (baud reate),每秒位元數 (bit per second,bps)
 同...
Makeeachdaycount
 FTDI Basic
 USB信號轉換成RS-232
 有5V及3.3V兩種,藍牙模組需使用3.3V模組
藍牙模組設定 1/4
7
Makeeachdaycount
 接線
 VCC--VCC
 GND--GND
 TXD--RXD
 RXD--TXD
 若是HC-05模組,設定時Key須接VCC
藍牙模組設定 2/4
8
Makeeachdaycount
 開啟Serial monitor
藍牙模組設定 3/4
9
選擇連線速率 (使用出廠預設baud rate)
傳送AT命令輸入AT命令
Makeeachdaycount
 AT command
 不同晶片組,AT命令有所差異,務必參照供應商之文件說明
 HC-06
 重設藍牙裝置名稱:AT+NAMEnkeeBT-01
 重設藍牙裝置配對密碼:AT+PIN1234
 ...
Makeeachdaycount
 手機與Arduino的藍牙模組配對
藍牙模組配對
11
Makeeachdaycount
 ⼀款免費的藍牙控制App
 提供四種操作介面
 可自訂要發送的操作控制碼
Arduino bluetooth controller 1/6
12
Makeeachdaycount
 選擇操作介面
 遊戲控制器模式
 ON/OFF開關模式
 數值滑桿模式
 文字終端機模式
Arduino bluetooth controller 2/6
13
Makeeachdaycount
 ON/OFF開關模式
Arduino bluetooth controller 3/6
14
設定命令碼
點擊一下即可設定對應的命令碼,
可以是單一字元或字串
Makeeachdaycount
Arduino bluetooth controller 4/6
15
設定按鈕對應的命令碼
 遊戲控制器模式
 預設命令碼:<按鈕 (L)、 ∧按鈕 (F)、>按鈕 (R)、 ∨按鈕 (B)、SELECT...
Makeeachdaycount
 數值滑桿模式
 最小值0
 最大值255
 拖曳調整時(數值異動)會自動送出數值字串
Arduino bluetooth controller 5/6
16
Makeeachdaycount
 文字終端機模式
Arduino bluetooth controller 6/6
17
在此輸入所要傳送的字串
傳送記錄
Makeeachdaycount
 實驗⽬的
 熟用藍牙通訊
 使用Arduino bluetooth controller App遙控LED開啟及關閉
Lab 手機藍牙遙控 1/3
18
藍牙模組
Makeeachdaycount
 設定使用字元'1'及'2'做為Arduino bluetooth controller ON/OFF開
關控制碼
 參考程式
 注意事項:燒錄時,須先斷開藍牙模組Tx、Rx接線
#define LED ...
Makeeachdaycount
void loop() {
if (Serial.available()>0) { //檢查是否收到控制碼
bt_read = Serial.read();
Serial.println(bt_read);
}...
Makeeachdaycount
 SoftwareSerial函式庫可以讓我們任意指定二個接腳充當UART之Tx及
Rx接腳
 當Arduino需連接多個裝置序列傳輸裝置,使用SoftwareSerial函式庫
非常方便
 Softwa...
Makeeachdaycount
 bool SoftwareSerial.listen()
 使SoftwareSerial端⼝進入偵聽狀態。⼀次只能偵聽⼀個SoftwareSerial端
⼝;到達其他SoftwareSerial端⼝端⼝...
Makeeachdaycount
 bool SoftwareSerial.overflow()
 檢測SoftwareSerial緩衝區 (64bytes) 是否溢出。調用此函數會清除溢出
旗號,這意味著後續調用將傳回false,除非在此...
Makeeachdaycount
 virtual int SoftwareSerial.read()
 取出SoftwareSerial端⼝緩衝區的第⼀個字元。若序列緩衝區無資料則回
傳-1
 virtual int SoftwareS...
Makeeachdaycount
 實驗⽬的
 熟用SoftwareSerial函式庫進行藍牙通訊
 使用Arduino bluetooth controller App遙控LED開啟及關閉
Lab 使用SoftwareSerial藍牙傳...
Makeeachdaycount
 設定使用字元'1'及'2'做為Arduino bluetooth controller ON/OFF開
關控制碼
 參考程式
#include <SoftwareSerial.h> //引用Softwar...
Makeeachdaycount
void loop() {
if (BT.available() > 0) { //檢查是否收到控制碼
bt_read = BT.read();
Serial.println(bt_read); //在Seri...
Makeeachdaycount
 安裝Java SDK
 建議JDK 8
 下載App Inventor 2 Ultimate
 https://sourceforge.net/projects/ai2u/files/
 AI2U-...
Makeeachdaycount
 執行AI2U4364AI2U.exe
 點擊All AI2U Server
 點擊Start Invent
註:如果有其它程式佔用8888 port,須先關閉該程式
App Inventor 2 Ult...
Makeeachdaycount
App Inventor 2 Ultimate離線版 3/4
30
Makeeachdaycount
 點擊Start new project建立新專案
App Inventor 2 Ultimate離線版 4/4
31
Makeeachdaycount
 命令列輸入netstat -nao | find "8888"找出佔用8888埠之程式ID
 工作管理員將程式關閉
排除8888 port被佔用
32
Makeeachdaycount
 實驗⽬的
 熟用App Inventor設計藍牙遙控App
 使用手機透過藍牙遙控LED開啟及關閉
Lab 設計藍牙遙控App 1/8
33
藍牙模組
Makeeachdaycount
 參考程式
 注意事項:燒錄時,須先斷開藍牙模組Tx、Rx接線
#define LED 2 //LED接腳
#define ON '1' //開啟LED命令
#define OFF '2' //關閉LED命...
Makeeachdaycount
void loop() {
if (Serial.available()>0) { //檢查是否收到命令
bt_read = Serial.read();
Serial.println(bt_read);
}
...
Makeeachdaycount
Lab 設計藍牙遙控App 4/8
36
Makeeachdaycount
Lab 設計藍牙遙控App 5/8
37
Makeeachdaycount
Lab 設計藍牙遙控App 6/8
38
Makeeachdaycount
 手機連線下載APK並安裝
 http://163.22.249.40/arduino.html
<html>
<head>
<title>南開科技大學電子工程系</title>
</head>
<body...
Makeeachdaycount
 點擊BTList,選取所配對的Arduino藍牙裝置;點擊ON開啟LED,點
擊OFF關閉LED
Lab 設計藍牙遙控App 8/8
40
Ha terminado este documento.
Descárguela y léala sin conexión.
Próximo SlideShare
What to Upload to SlideShare
Siguiente
Próximo SlideShare
What to Upload to SlideShare
Siguiente
Descargar para leer sin conexión y ver en pantalla completa.

Compartir

Arduino藍牙傳輸應用

Descargar para leer sin conexión

藍牙簡介、藍牙模組設定、 Bluetooth Controller App、手機遙控Arduino、SoftwareSerial函式庫、設計藍牙遙控App

Libros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Arduino藍牙傳輸應用

  1. 1. 電子工程系車用電子與資訊組 Arduino藍牙傳輸應用 吳錫修 sswu@nkut.edu.tw Revised on July 18, 2018 藍牙簡介、藍牙模組設定、 Bluetooth Controller App、手機遙控Arduino、SoftwareSerial函式庫、 設計藍牙遙控App
  2. 2. Makeeachdaycount  藍牙 (Bluetooth)是⼀種短距、低功耗無線技術標準,也是⽬前智慧型 手機標準配備  藍牙使用2.402-2.480GHz的ISM (Industrial Scientific Medical) 頻段, 共79個頻道 (頻寬為1MHz)  藍牙技術聯盟成立於1998年,2002年藍牙成為IEEE 802.15.1標準  藍牙微網 (Piconet) 由⼀個主裝置 (master) 與最多七個作業中的從屬 (slave) 裝置所組成,使用分時雙工 (TDD,Time-Division Duplexing) 方式傳輸 藍牙傳輸簡介 1/2 2 分時雙工
  3. 3. Makeeachdaycount  藍牙裝置分為主控 (master) 與從端 (slave)  主控:可以探索並與其它藍牙裝置配對連線,例如電腦或手機的藍牙裝置  從端:被動等待被連結,例如藍牙滑鼠、藍牙耳機等  藍牙技術聯盟定義了許多Profile (規範),其中序列埠規範 (Serial Port Profile,SPP) 用來取代有線的RS-232序列傳輸 藍牙傳輸簡介 2/2 3
  4. 4. Makeeachdaycount  工作頻率2.4~2.48GHz ISM band  傳輸距離10 m  傳輸速率 2Mbps (Bluetooth 2.0)  通常預設配對密碼0000或1234,UART 9600bps  不同廠牌藍牙模組腳位layout並不相同  與MCU間使用UART介面 藍牙模組 1/2 4 HC06晶片、Slave模式
  5. 5. Makeeachdaycount  Arduino的輸出∕入腳位邏輯電壓是5V。如果藍牙模組背板標示傳送和 接收的邏輯電位是3.3V,使用時RxD端必須串接1K電阻或以電路分壓 藍牙模組 2/2 5 Arduino TX Arduino RX 1K Arduino TX GND 1K 2K Arduino RX
  6. 6. Makeeachdaycount  資料傳輸方式是1個bit接著1個bit傳送  送收雙方須議定傳輸格式,包括傳輸速率、資料位元數、同位元  傳輸速度 (baud reate),每秒位元數 (bit per second,bps)  同位元:偶同位(even parity)或奇(Odd)同位或不加入 UART傳輸 6
  7. 7. Makeeachdaycount  FTDI Basic  USB信號轉換成RS-232  有5V及3.3V兩種,藍牙模組需使用3.3V模組 藍牙模組設定 1/4 7
  8. 8. Makeeachdaycount  接線  VCC--VCC  GND--GND  TXD--RXD  RXD--TXD  若是HC-05模組,設定時Key須接VCC 藍牙模組設定 2/4 8
  9. 9. Makeeachdaycount  開啟Serial monitor 藍牙模組設定 3/4 9 選擇連線速率 (使用出廠預設baud rate) 傳送AT命令輸入AT命令
  10. 10. Makeeachdaycount  AT command  不同晶片組,AT命令有所差異,務必參照供應商之文件說明  HC-06  重設藍牙裝置名稱:AT+NAMEnkeeBT-01  重設藍牙裝置配對密碼:AT+PIN1234  重設藍牙裝置傳輸速率9600bps:AT+BAUD4 藍牙模組設定 4/4 10
  11. 11. Makeeachdaycount  手機與Arduino的藍牙模組配對 藍牙模組配對 11
  12. 12. Makeeachdaycount  ⼀款免費的藍牙控制App  提供四種操作介面  可自訂要發送的操作控制碼 Arduino bluetooth controller 1/6 12
  13. 13. Makeeachdaycount  選擇操作介面  遊戲控制器模式  ON/OFF開關模式  數值滑桿模式  文字終端機模式 Arduino bluetooth controller 2/6 13
  14. 14. Makeeachdaycount  ON/OFF開關模式 Arduino bluetooth controller 3/6 14 設定命令碼 點擊一下即可設定對應的命令碼, 可以是單一字元或字串
  15. 15. Makeeachdaycount Arduino bluetooth controller 4/6 15 設定按鈕對應的命令碼  遊戲控制器模式  預設命令碼:<按鈕 (L)、 ∧按鈕 (F)、>按鈕 (R)、 ∨按鈕 (B)、SELECT按鈕 (N)、START按鈕 (S);右側四個圖形按鈕則未預設命令碼
  16. 16. Makeeachdaycount  數值滑桿模式  最小值0  最大值255  拖曳調整時(數值異動)會自動送出數值字串 Arduino bluetooth controller 5/6 16
  17. 17. Makeeachdaycount  文字終端機模式 Arduino bluetooth controller 6/6 17 在此輸入所要傳送的字串 傳送記錄
  18. 18. Makeeachdaycount  實驗⽬的  熟用藍牙通訊  使用Arduino bluetooth controller App遙控LED開啟及關閉 Lab 手機藍牙遙控 1/3 18 藍牙模組
  19. 19. Makeeachdaycount  設定使用字元'1'及'2'做為Arduino bluetooth controller ON/OFF開 關控制碼  參考程式  注意事項:燒錄時,須先斷開藍牙模組Tx、Rx接線 #define LED 2 //LED接腳 #define ON '1' //開啟LED之控制碼 #define OFF '2' //關閉LED之控制碼 byte bt_read; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); } Lab 手機藍牙遙控 2/3 19
  20. 20. Makeeachdaycount void loop() { if (Serial.available()>0) { //檢查是否收到控制碼 bt_read = Serial.read(); Serial.println(bt_read); } switch (bt_read) { //執行命令 case ON: digitalWrite(LED, HIGH); break; case OFF: digitalWrite(LED, LOW); break; } } Lab 手機藍牙遙控 3/3 20
  21. 21. Makeeachdaycount  SoftwareSerial函式庫可以讓我們任意指定二個接腳充當UART之Tx及 Rx接腳  當Arduino需連接多個裝置序列傳輸裝置,使用SoftwareSerial函式庫 非常方便  SoftwareSerial(uint8_t receivePin, uint8_t transmitPin)  建構SoftwareSerial物件  receivePin 作為UART Rx端之接腳  transmitPin 作為UART Tx端之接腳  void SoftwareSerial.begin (long speed)  設定序列傳輸速率,使用8n1傳輸格式 SoftwareSerial函式庫 1/4 21
  22. 22. Makeeachdaycount  bool SoftwareSerial.listen()  使SoftwareSerial端⼝進入偵聽狀態。⼀次只能偵聽⼀個SoftwareSerial端 ⼝;到達其他SoftwareSerial端⼝端⼝的數據將被丟棄  void SoftwareSerial.end()  停用序列傳輸功能,允許RX和TX接腳做為通用輸入和輸出。調用 SoftwareSerial.begin()可重新啟用序列傳輸  bool SoftwareSerial.isListening()  檢查SoftwareSerial端⼝是否為偵聽狀態  bool SoftwareSerial.stopListening()  結束偵聽SoftwareSerial端⼝。當⼀個SoftwareSerial端⼝進入偵聽狀態, 其它SoftwareSerial端⼝會自動結束偵聽 SoftwareSerial函式庫 2/4 22
  23. 23. Makeeachdaycount  bool SoftwareSerial.overflow()  檢測SoftwareSerial緩衝區 (64bytes) 是否溢出。調用此函數會清除溢出 旗號,這意味著後續調用將傳回false,除非在此期間已收到並丟棄了另⼀ 個數據  int SoftwareSerial.peek()  讀取SoftwareSerial緩衝區的第⼀個字元,但並不將其從緩衝區中移除。 若序列緩衝區無資料則回傳-1  virtual size_t SoftwareSerial.write(uint8_t byte)  寫入資料到SoftwareSerial端⼝。這些資料會以位元組或⼀連串位元組形 式發送 SoftwareSerial.write(45); //輸出'-' SoftwareSerial.write("Hello"); //輸出'H','e','l','l','o' SoftwareSerial函式庫 3/4 23
  24. 24. Makeeachdaycount  virtual int SoftwareSerial.read()  取出SoftwareSerial端⼝緩衝區的第⼀個字元。若序列緩衝區無資料則回 傳-1  virtual int SoftwareSerial.available()  檢查SoftwareSerial端⼝是否有收到資料  virtual void SoftwareSerial.flush()  等待SoftwareSerial端⼝緩衝區資料傳送完畢  另外也可使用print()及println()方法,用法與Serial函式庫相同 SoftwareSerial函式庫 4/4 24
  25. 25. Makeeachdaycount  實驗⽬的  熟用SoftwareSerial函式庫進行藍牙通訊  使用Arduino bluetooth controller App遙控LED開啟及關閉 Lab 使用SoftwareSerial藍牙傳輸 1/3 25 藍牙模組
  26. 26. Makeeachdaycount  設定使用字元'1'及'2'做為Arduino bluetooth controller ON/OFF開 關控制碼  參考程式 #include <SoftwareSerial.h> //引用SoftwareSerial函式庫 #define LED 2 //LED接腳 #define ON '1' //開啟LED之控制碼 #define OFF '2' //關閉LED之控制碼 byte bt_read; //建構SoftwareSerial物件,D9作為Rx,D10作為Tx SoftwareSerial BT(9, 10); void setup() { Serial.begin(9600); //設定Serial傳輸速率 BT.begin(9600); //設定SoftwareSerial傳輸速率 pinMode(LED, OUTPUT); } Lab 使用SoftwareSerial藍牙傳輸 2/3 26
  27. 27. Makeeachdaycount void loop() { if (BT.available() > 0) { //檢查是否收到控制碼 bt_read = BT.read(); Serial.println(bt_read); //在Serial Monitor顯示收到的控制碼 } switch (bt_read) { //執行對應命令 case ON: digitalWrite(LED, HIGH); break; case OFF: digitalWrite(LED, LOW); break; } } Lab 使用SoftwareSerial藍牙傳輸 3/3 27
  28. 28. Makeeachdaycount  安裝Java SDK  建議JDK 8  下載App Inventor 2 Ultimate  https://sourceforge.net/projects/ai2u/files/  AI2U-portable-v4.6-64bit.zip  解壓縮 App Inventor 2 Ultimate離線版 1/4 28
  29. 29. Makeeachdaycount  執行AI2U4364AI2U.exe  點擊All AI2U Server  點擊Start Invent 註:如果有其它程式佔用8888 port,須先關閉該程式 App Inventor 2 Ultimate離線版 2/4 29
  30. 30. Makeeachdaycount App Inventor 2 Ultimate離線版 3/4 30
  31. 31. Makeeachdaycount  點擊Start new project建立新專案 App Inventor 2 Ultimate離線版 4/4 31
  32. 32. Makeeachdaycount  命令列輸入netstat -nao | find "8888"找出佔用8888埠之程式ID  工作管理員將程式關閉 排除8888 port被佔用 32
  33. 33. Makeeachdaycount  實驗⽬的  熟用App Inventor設計藍牙遙控App  使用手機透過藍牙遙控LED開啟及關閉 Lab 設計藍牙遙控App 1/8 33 藍牙模組
  34. 34. Makeeachdaycount  參考程式  注意事項:燒錄時,須先斷開藍牙模組Tx、Rx接線 #define LED 2 //LED接腳 #define ON '1' //開啟LED命令 #define OFF '2' //關閉LED命令 byte bt_read; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); } Lab 設計藍牙遙控App 2/8 34
  35. 35. Makeeachdaycount void loop() { if (Serial.available()>0) { //檢查是否收到命令 bt_read = Serial.read(); Serial.println(bt_read); } switch (bt_read) { //執行命令 case ON: digitalWrite(LED, HIGH); break; case OFF: digitalWrite(LED, LOW); break; } } Lab 設計藍牙遙控App 3/8 35
  36. 36. Makeeachdaycount Lab 設計藍牙遙控App 4/8 36
  37. 37. Makeeachdaycount Lab 設計藍牙遙控App 5/8 37
  38. 38. Makeeachdaycount Lab 設計藍牙遙控App 6/8 38
  39. 39. Makeeachdaycount  手機連線下載APK並安裝  http://163.22.249.40/arduino.html <html> <head> <title>南開科技大學電子工程系</title> </head> <body> <p align="center"> <font size="5"> <a href="LED_Controller.apk">Arduino藍牙控制</a> </font> </p> </body> </html> Lab 設計藍牙遙控App 7/8 39
  40. 40. Makeeachdaycount  點擊BTList,選取所配對的Arduino藍牙裝置;點擊ON開啟LED,點 擊OFF關閉LED Lab 設計藍牙遙控App 8/8 40
  • sshiouwu

    Jul. 18, 2018

藍牙簡介、藍牙模組設定、 Bluetooth Controller App、手機遙控Arduino、SoftwareSerial函式庫、設計藍牙遙控App

Vistas

Total de vistas

7.259

En Slideshare

0

De embebidos

0

Número de embebidos

7

Acciones

Descargas

101

Compartidos

0

Comentarios

0

Me gusta

1

×