“碰一碰”版本的藍芽鍵盤,來啦!
基於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臺裝置自由切換
更多專案更新詳情,可透過下方連結檢視:
在之前的版本中,我們已經瞭解了硬體環境搭建和USB串列埠(CH340)獲取等相關資訊,這一次讓我們把重點放在開發者們最關注的 “碰一碰”的實現和HUAWEI DevEco Device Tool一站式編譯、燒錄步驟上,讓我們一起來了解吧~
2. “碰一碰”的實現
2.1 從體驗角度詮釋“碰一碰”實現
使用者使用“碰一碰”實現 藍芽鍵盤連線的示意圖如下:
- 使用者透過碰一碰NFC標籤拉起FA應用
- 獲取藍芽裝置(開發板)MAC資訊;
- 同時,手機中的藍芽掃描將獲取到的藍芽列表與開發板MAC資訊進行比對;
- 當匹配到相同開發板MAC資訊將反饋連線藍芽結果,連線該藍芽裝置;
- 同時連線成功的結果將透過被拉起的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地址的藍芽裝置。
下面讓我們來詳細解析一下這個過程,由於我們已有Product ID且服務已釋出,我們將聚焦在如何實現FA應用資訊及開發板MAC地址寫入NFC標籤的過程中。
2.3 從動手流程學習“碰一碰”實現
接下來就讓我們來詳細瞭解一下FA應用資訊及開發板MAC地址寫入NFC標籤過程。
2.3.1. 瞭解寫入NFC的資料樣例結構
我們將為各位開發者提供一段用於寫入到NFC的資料樣例結構,開發者只需做很小部分的改動即可直接寫入NFC標籤中
資料樣例結構字串如下:
D20C1A6170702F68776F6E65686F702001004800 393935330081060005200685919106 286DCD824FEF
其中:
39393533 表示 9953的Ascill碼,9953即是我們為該FA應用是已經申請好的Product Id;
286DCD824FEF 用於表示BLE裝置硬體編碼(MAC地址),後續我們將透過獲取目標BLE裝置的MAC地址並將其替換掉;
2.3.2. 獲取BLE裝置MAC地址
在“華為應用市場”安裝“BLE除錯助手”( 該工具用來獲取目標ble裝置的MAC地址),開啟改工具,找到藍芽鍵盤,獲取藍芽鍵盤的MAC地址:286DCD7C0E67
2.3.3 替換目標裝置的MAC地址
將2.3.2中透過BLE除錯助手獲取的MAC地址: 286DCD7C0E67替換樣例的MAC地址: 286DCD824FEF,組裝後的字串為:
D20C1A6170702F68776F6E65686F702001004800393935330081060005200685919 106286DCD7C0E67
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
如圖:
安裝完畢後,如圖:
2)輸入邀請碼
開啟該工具後,點選“add”,將要求輸入一個邀請碼,輸入“b4zd8bz3”即可:
3) 置入快取區
點選NFC,選擇當中的 NFC WRITE ,進入NFC資料輸入區,此時狀態為“快取區待寫入”:
勾選“byte code”,將第3步獲取到的組裝後的字串
D20C1A6170702F68776F6E65686F702001004800393935330081060005200685919106286DCD7C0E67
輸入其中,點選“置入快取區”,此時狀態為“已寫入快取區”。
4)寫入NFC貼紙
將開發好的FA應用安裝到手機上,開啟手機NFC功能,用手機背面(NFC感測器)靠近指定的NFC標籤,完成寫入。
請注意,寫入時需關閉手機網路,並且儘量選用空白的NFC標籤進行寫入。
寫入完成後,HW AirLink底部會彈出“寫入成功”彈框,即表示寫入成功。
至此,我們已經清晰瞭解了碰一碰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
實現目錄初始化,如圖:
輸入:
hpm i @hihope/neptune_bluetoothkeyboard
下載對應元件及依賴包,如圖:
執行完畢,顯示“Installed”,表示成功下載, 如圖:
最後,執行編譯命令
hpm dist
如圖:
執行完畢,顯示:“Build success!”,表示編譯成功,如圖:
編譯生成的img檔案,位於out目錄,如圖:
開啟“out/neptune/wifiiot_neptune/"資料夾,可找到“w800.img”檔案,其就是生成的韌體,如圖:
3.2 燒錄
3.2.1. 獲取編譯好的韌體
同樣的,本次燒錄我們將在Linux環境下完成。我們將對 “out/neptune/wifiiot_neptune/" 資料夾中的“w800.img”檔案進行韌體燒錄。同時,我們也為開發者們提供已經編譯好的韌體,可在以下連結獲取:
3.2.2 韌體燒錄
Linux 環境下燒錄韌體的流程詳細步驟如下:
1)將Neptune開發板透過串列埠連線到虛擬機器
將Neptune開發板透過串列埠連線到電腦的USB口。如圖:
在彈出的“檢測到新的USB裝置”視窗中,選擇 連線到虛擬機器,虛擬機器名稱選擇Ubuntu64位,點選確認。
開啟VMware,依次點開:虛擬機器->可移動裝置->QinHeng USB Serial->在狀態列中顯示,檢視是否顯示,如圖:
此時,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),如圖:
3)設定燒錄韌體位置
點選Partiton Configuration(步驟 ①) ,點選資料夾圖示(步驟 ②) ,如圖所示:
找到韌體所在資料夾位置,(可以自定義路徑,請提前把目標韌體複製到該位置),如圖:
選擇目標韌體“OpenHarmony_HID_V0.3.img”(步驟①),點選按鈕:“Open “OpenHarmony_HID_V0.3.img””(步驟②),如圖:
點選Save儲存。
完成板子選擇和燒錄韌體位置設定後,我們需要進行埠和燒錄協議配置。
4)設定埠和燒錄協議
點選:”w800“, 如圖:
設定燒錄埠,upload_port,選擇預設值“/dev/ttyUSB0”,如果沒有,可以輸入“/dev/ttyUSB0”
填寫燒錄協議, upload_protocol ,選擇“ xmodem ”,即選擇序列通訊的檔案傳輸協議。
設定upload_partitions,選擇”partition:w800_app“, 即選擇需要燒錄的檔案是哪一個。選擇結果如圖:
配置完畢後,點儲存配置Save即可。
5)檢視已經開啟的工程
點選Open,開啟工程。點選Visual Studio Code左上角的Explorer圖示,檢視已經開啟的工程:
移除不相干的專案,防止編譯異常,如圖:
6)燒錄韌體
點選DevEco,在彈出的PROJECT TASKS中選擇Upload,如圖:
根據提示“Please reset the board”,單擊開發板的RST按鍵,如圖:
此時會顯示正在燒錄,待進度條顯示100%且下方出現“SUCCESS”字樣,表示燒錄成功,如圖:
4. 結尾
經歷了多個版本的更新,本次 基於Neptune開發板的鍵盤藍芽模組0.3版本將為開發者們帶來碰一碰拉起FA,透過藍芽實現手機與鍵盤連線,從而讓鍵盤成為手機外設,控制手機輸入,而實現該版本的程式已經燒錄其中,NFC標籤的寫入也已實現,大家可以透過gitee上下載詳細的“操作文件”來了解~同時開發者們可以在Linux環境下使用 DevEco Device Tool 對開發板(W800)進行編譯燒錄,感興趣的開發者們趕緊試試這個新版本吧~
HarmonyOS開發之旅
▼▼▼玩轉開發板開源社群連結▼▼▼
▼▼▼掃碼註冊華為賬號,開啟HarmonyOS開發之旅,獲取最新學習資源。▼▼▼
▼▼▼PC端下載DevEco Studio▼▼▼
▼▼▼體驗全場景分散式開發樂趣▼▼▼
https://device.harmonyos.com/cn/ide#download
歡迎廣大夥伴和開發者朋友加入HarmonyOS
每一位開發者都是我們要匯聚的星星之火
一起創造萬物互聯時代的無限可能
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0202624226147860150?fid=0101587865002800104
原作者: HarmonyOS Device
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2783494/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Macbook如何連線藍芽鍵盤?Mac藍芽
- 平板藍芽鍵盤怎麼切換輸入法 ipad藍芽鍵盤切換中英文藍芽iPad
- 一碰就知道三圍的智慧尺
- win10系統如何連線藍芽鍵盤 win10系統藍芽鍵盤連線電腦的方法Win10藍芽
- mac mini純鍵盤操作連線藍芽滑鼠Mac藍芽
- 雷柏XK100藍芽鍵盤怎麼樣?雷柏XK100藍芽鍵盤詳細評測藍芽
- 基於Neptune開發板的鍵盤藍芽模組DIY指南藍芽模組
- 如何在 macOS Big Sur上重設藍芽?技巧來啦!Mac藍芽
- win10 k480鍵盤藍芽掉線怎麼連線_win10 k480鍵盤藍芽掉線解決方法Win10藍芽
- 玩轉OpenHarmony智慧家居:如何實現樹莓派“碰一碰”裝置控制樹莓派
- Tap Strap可穿戴藍芽鍵盤:戴上它動動手指就能打字了藍芽
- win10系統下藍芽鍵盤斷斷續續如何解決Win10藍芽
- win10藍芽鍵盤已連線無法使用該怎麼辦?Win10藍芽
- iOS藍芽開發 Bluetooth藍芽CoreBluetooth 藍芽中心裝置的實現 藍芽外設的實現 有DemoiOS藍芽
- 藍芽藍芽
- 冷得不想碰手機?戴上這個藍芽帽就可以打電話藍芽
- 藍芽鍵盤怎麼連線電腦(羅技、洛斐、黑爵等多品牌通用)藍芽
- Win10系統藍芽鍵盤已連線但無法使用如何解決Win10藍芽
- V2.0 版本的 《JavaGuide面試突擊版》來啦!帶著它的線上閱讀版本來啦!JavaGUIIDE面試
- 國慶藍芽耳機選購盤點,百元級別最值得入手的真無線藍芽耳機藍芽
- Android藍芽使用詳解(普通藍芽)Android藍芽
- 藍芽模組藍芽模組
- iOS 藍芽iOS藍芽
- ios 藍芽iOS藍芽
- Android藍芽那點事——深入瞭解藍芽BlE藍芽 《總結篇》Android藍芽
- Android藍芽協議-藍芽掃描 startDiscoveryAndroid藍芽協議
- Mac如何一鍵藍芽連線切換軟體?Mac藍芽
- 藍芽HFP 藍芽電話剖析(二) --- AT command集合藍芽
- ESP32藍芽學習--藍芽概念學習藍芽
- 【版本釋出公告】HMS Core 6.6.0來啦
- 利用藍芽來傳送圖片等檔案藍芽
- java+藍芽Java藍芽
- iOSBluetooth(藍芽)iOS藍芽
- 藍芽4.0 BLE藍芽
- 白色藍芽耳機藍芽
- 電腦藍芽怎麼連線 電腦連線藍芽的方法藍芽
- MASA MAUI Plugin 安卓藍芽低功耗(一)藍芽掃描UIPlugin安卓藍芽
- MASA MAUI Plugin IOS藍芽低功耗(三)藍芽掃描UIPluginiOS藍芽