“碰一碰”版本的藍牙鍵盤,來啦!

基於Neptune開發板的鍵盤藍牙模塊DIY指南0.3版本,實現“碰一碰”連接、支持Linux下HUAWEI DevEco Device Tool編譯燒錄。手機敲字回覆,總因爲大小寫切換太“隱祕”而接連按錯?登錄某乎回答,手機打字不易,電腦登錄太難?多臺設備同時操作,來回切換多個鍵盤把自己搞得昏頭轉向?這種時候,開發者們可能需要一個增強版外設鍵盤,不僅手機輕鬆連,而且支持多臺設備同時連接。

   

1.介紹

在之前的推文中,我們曾給開發者們帶來基於潤和Neptune開發板(以下簡稱Neptune開發板)的鍵盤藍牙模塊DIY指南0.1版本,將有線鍵盤改造成藍牙鍵盤,實現一個鍵盤被多操作系統/終端設備識別使用的功能。經過幾個月的更新,這次我們爲大家帶來的是基於Neptune開發板的鍵盤藍牙模塊DIY指南v0.3版本,爲大家帶來幾個重磅更新:

1.支持搭載HarmonyOS系統手機“碰一碰”連接

2.支持HUAWEI DevEco Device Tool一站式編譯燒錄

3. 在原有支持4種OS(HarmonyOS、Windows、Linux、Android)的基礎上,新增初步支持ios

4.從原有的支持最多2臺設備增加到現在的支持最多5臺設備自由切換

更多項目更新詳情,可通過下方鏈接查看:

https://gitee.com/openharmony-sig/vendor_oh_fun/tree/master/hihope_neptune-oh_hid

在之前的版本中,我們已經瞭解了硬件環境搭建和USB串口(CH340)獲取等相關信息,這一次讓我們把重點放在開發者們最關注的“碰一碰”的實現和HUAWEI DevEco Device Tool一站式編譯、燒錄步驟上,讓我們一起來了解吧~

   

2.“碰一碰”的實現

2.1從體驗角度詮釋“碰一碰”實現

用戶使用“碰一碰”實現藍牙鍵盤連接的示意圖如下:

image.png
  1. 用戶通過碰一碰NFC標籤拉起FA應用
  2. 獲取藍牙設備(開發板)MAC信息;
  3. 同時,手機中的藍牙掃描將獲取到的藍牙列表與開發板MAC信息進行比對;
  4. 當匹配到相同開發板MAC信息將反饋連接藍牙結果,連接該藍牙設備;
  5. 同時連接成功的結果將通過被拉起的FA應用通知用戶,用戶可在界面上看到成功連接的提示。效果可看視頻
 

2.2從原理角度詮釋“碰一碰”實現

在這個過程中,碰一碰NFC標籤能拉起FA應用和獲取開發板MAC地址的關鍵點在於FA應用信息和開發板MAC地址已經被寫入到NFC標籤中,用戶打開手機上的NFC開關,手機在NFC標籤時即可讀取相關信息拉起FA應用並獲取到開發板的MAC地址用於匹配。

但實際上被寫入NFC標籤的是FA應用的Product ID(需在華爲官方“應用調測助手”APP中申請獲得),申請完成後通過在華爲快服務智慧平臺(以下及圖中均簡略爲HAG)創建、發佈該FA服務,將Product ID與FA應用App包名關聯,開發者將Product ID寫入NFC標籤中,當用戶使用NFC標籤碰一碰時,HAG端將通過Product ID查詢對應的包名並將其拉起。

而藍牙設備則是通過工具獲取設備MAC地址碼,將MAC地址碼寫入NFC標籤,當用戶使用NFC標籤碰一碰時將獲取到寫入其中的MAC地址碼,與手機當前藍牙列表匹配並連接相同MAC地址的藍牙設備。

image.png

下面讓我們來詳細解析一下這個過程,由於我們已有Product ID且服務已發佈,我們將聚焦在如何實現FA應用信息及開發板MAC地址寫入NFC標籤的過程中。

2.3 從動手流程學習“碰一碰”實現

接下來就讓我們來詳細瞭解一下FA應用信息及開發板MAC地址寫入NFC標籤過程。

2.3.1.瞭解寫入NFC的數據樣例結構

我們將爲各位開發者提供一段用於寫入到NFC的數據樣例結構,開發者只需做很小部分的改動即可直接寫入NFC標籤中

數據樣例結構字符串如下:

D20C1A6170702F68776F6E65686F702001004800393935330081060005200685919106286DCD824FEF

其中:

39393533表示9953的Ascill碼,9953即是我們爲該FA應用是已經申請好的Product Id;

286DCD824FEF用於表示BLE設備硬件編碼(MAC地址),後續我們將通過獲取目標BLE設備的MAC地址並將其替換掉;

2.3.2.獲取BLE設備MAC地址

在“華爲應用市場”安裝“BLE調試助手”( 該工具用來獲取目標ble設備的MAC地址),打開改工具,找到藍牙鍵盤,獲取藍牙鍵盤的MAC地址:286DCD7C0E67

image.png

2.3.3替換目標設備的MAC地址

將2.3.2中通過BLE調試助手獲取的MAC地址:286DCD7C0E67替換樣例的MAC地址:286DCD824FEF,組裝後的字符串爲:

D20C1A6170702F68776F6E65686F702001004800393935330081060005200685919106286DCD7C0E67

2.3.4使用HW AirLink工具寫入NFC

1)安裝HW AirLink工具

我們將下載NFC寫入工具HW AirLink,下載鏈接如下:

https://developer.huawei.com/consumer/cn/doc/development/smarthome-Library/download-0000001050287714#ZH-CN_TOPIC_0000001056845319__section17953112220224

下載、解壓後使用打開Windows設備的cmd命令行工具(請保證Windows設備安裝了adb工具)進行安裝,執行如下命令,即可完成安裝:

adb –r –d hilinkcert-tool-1.0.0.3.apk

如圖:

image.png

安裝完畢後,如圖:

image.png

2)輸入邀請碼

打開該工具後,點擊“add”,將要求輸入一個邀請碼,輸入“b4zd8bz3”即可:

image.png

3)置入緩存區

點擊NFC,選擇當中的NFC WRITE,進入NFC數據輸入區,此時狀態爲“緩存區待寫入”:

image.png

勾選“byte code”,將第3步獲取到的組裝後的字符串

D20C1A6170702F68776F6E65686F702001004800393935330081060005200685919106286DCD7C0E67

輸入其中,點擊“置入緩存區”,此時狀態爲“已寫入緩存區”。

4)寫入NFC貼紙

將開發好的FA應用安裝到手機上,打開手機NFC功能,用手機背面(NFC傳感器)靠近指定的NFC標籤,完成寫入。

請注意,寫入時需關閉手機網絡,並且儘量選用空白的NFC標籤進行寫入。

寫入完成後,HW AirLink底部會彈出“寫入成功”彈框,即表示寫入成功。

 

image.png

至此,我們已經清晰瞭解了碰一碰NFC如何拉起FA應用並完成藍牙鍵盤的配對。那麼接下來就讓我們進入第2個關鍵更新——如何在Linux平臺下使用HUAWEI DevEco Device Tool(以下簡稱DevEco Device Tool)一站式完成編譯燒錄。

   

3.一站式編譯燒錄的實現

本次我們將在Linux環境下使用Huawei DevEco Device Tool (V2.2.0 Beta1版) 對藍牙鍵盤模塊對應的W800開發板進行編譯和燒錄。

3.1編譯

3.1.1. HPM環境搭建

HPM(harmony package manager)即Harmony包管理器,它是華爲Harmony推出的組件包管理器,可以方便地從官網獲取所需組件,根據需要只下載當前項目用到的組件,使得工程文件更加精簡。

我們將在Linux環境下搭建環境並進行編譯,選擇在Ubuntu下安裝工具,並根據開發環境準備進行各軟件的下載和配置。關於Ubuntu開發環境準備可參考以下鏈接,這裏我們就不贅述了。

· Ubuntu開發環境準備

https://device.harmonyos.com/cn/docs/ide/user-guides/install_ubuntu-0000001072959308

注意:假如某些步驟執行失敗,請重啓ubuntu再試試。

3.1.2 HPM拉取源碼

hpm開發環境搭建完畢後,在Ubuntu首先輸入:

hpm init -t dist 

實現目錄初始化,如圖:

image.png

輸入:

hpm i @hihope/neptune_bluetoothkeyboard

下載對應組件及依賴包,如圖:

image.png

執行完畢,顯示“Installed”,表示成功下載, 如圖:

image.png

最後,執行編譯命令

hpm dist

如圖:

image.png

執行完畢,顯示:“Build success!”,表示編譯成功,如圖:

image.png

編譯生成的img文件,位於out目錄,如圖:

image.png

打開“out/neptune/wifiiot_neptune/"文件夾,可找到“w800.img”文件,其就是生成的固件,如圖:

image.png

3.2 燒錄

3.2.1.獲取編譯好的固件

同樣的,本次燒錄我們將在Linux環境下完成。我們將對“out/neptune/wifiiot_neptune/"文件夾中的“w800.img”文件進行固件燒錄。同時,我們也爲開發者們提供已經編譯好的固件,可在以下鏈接獲取:

https://gitee.com/openharmony-sig/vendor_oh_fun/tree/master/hihope_neptune-oh_hid

3.2.2固件燒錄

Linux環境下燒錄固件的流程詳細步驟如下:

1)將Neptune開發板通過串口連接到虛擬機

將Neptune開發板通過串口連接到電腦的USB口。如圖:

image.png

在彈出的“檢測到新的USB設備”窗口中,選擇連接到虛擬機,虛擬機名稱選擇Ubuntu64位,點擊確認。

image.png

打開VMware,依次點開:虛擬機->可移動設備->QinHeng USB Serial->在狀態欄中顯示,查看是否顯示,如圖:

image.png

此時,Neptune開發板已經通過串口成功連接虛擬機。

2)新建Device Tool工程

DevEco Device Tool以插件形式部署在Visual Studio Code上,因此我們需要先打開Visual Studio Code中的“Extentions”,找到並打開DevEco Device Tool,點擊 “New DevEco Project” 新建一個工程,輸入工程的相關信息:

工程名稱:Name(自定義)

開發板型號:Board(選w800),當前我們使用的是W800開發板

Bundle(選@hihope/neptune_iot),如圖:

image.png

3)設置燒錄固件位置

點擊Partiton Configuration(步驟①),點擊文件夾圖標(步驟②),如圖所示:

image.png

找到固件所在文件夾位置,(可以自定義路徑,請提前把目標固件拷貝到該位置),如圖:

image.png

選擇目標固件“OpenHarmony_HID_V0.3.img”(步驟①),點擊按鈕:“Open “OpenHarmony_HID_V0.3.img””(步驟②),如圖:

image.png

點擊Save保存。

完成板子選擇和燒錄固件位置設置後,我們需要進行端口和燒錄協議配置。

4)設置端口和燒錄協議

點擊:”w800“, 如圖:

image.png

設置燒錄端口,upload_port,選擇默認值“/dev/ttyUSB0”,如果沒有,可以輸入“/dev/ttyUSB0”

填寫燒錄協議,upload_protocol,選擇“xmodem”,即選擇串行通信的文件傳輸協議。

設置upload_partitions,選擇”partition:w800_app“, 即選擇需要燒錄的文件是哪一個。選擇結果如圖:

image.png

配置完畢後,點保存配置Save即可。

5)查看已經打開的工程

點擊Open,打開工程。點擊Visual Studio Code左上角的Explorer圖標,查看已經打開的工程:

image.png

移除不相干的項目,防止編譯異常,如圖:

image.png

6)燒錄固件

點擊DevEco,在彈出的PROJECT TASKS中選擇Upload,如圖:

image.png

根據提示“Please reset the board”,單擊開發板的RST按鍵,如圖:

image.png

此時會顯示正在燒錄,待進度條顯示100%且下方出現“SUCCESS”字樣,表示燒錄成功,如圖:

image.png

4.結尾

經歷了多個版本的更新,本次基於Neptune開發板的鍵盤藍牙模塊0.3版本將爲開發者們帶來碰一碰拉起FA,通過藍牙實現手機與鍵盤連接,從而讓鍵盤成爲手機外設,控制手機輸入,而實現該版本的程序已經燒錄其中,NFC標籤的寫入也已實現,大家可以通過gitee上下載詳細的“操作文檔”來了解~同時開發者們可以在Linux環境下使用DevEco Device Tool對開發板(W800)進行編譯燒錄,感興趣的開發者們趕緊試試這個新版本吧~

HarmonyOS開發之旅

▼▼▼玩轉開發板開源社區鏈接▼▼▼

https://gitee.com/openharmony-sig/vendor_oh_fun

▼▼▼掃碼註冊華爲賬號,開啓HarmonyOS開發之旅,獲取最新學習資源。▼▼▼

▼▼▼PC端下載DevEco Studio▼▼▼

▼▼▼體驗全場景分佈式開發樂趣▼▼▼

https://device.harmonyos.com/cn/ide#download

歡迎廣大夥伴和開發者朋友加入HarmonyOS

每一位開發者都是我們要匯聚的星星之火

一起創造萬物互聯時代的無限可能

 

原文鏈接:https://developer.huawei.com/...
原作者:HarmonyOS Device

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章