Standard SDK: [RTL8195] QQ物聯 – 手機QQ與Ameba相互通訊
QQ物聯提供的雲端服務可將QQ帳號體系、好友關係鏈、QQ消息通道及音視頻服務等核心能力與設備相連接,不再需要單獨的APP, 可通過手機QQ來與設備進行通訊。
Ameba目前已經提供支持QQ物聯平台的解決方案,可在http: //iot.open.qq.com/wiki/#!SDK/RTOS_SDK_Download.md中看到相關的Realtek 8711 的庫文件。
為方便用戶使用,我們同時提供了範例在 v3.4b_patch_qqlink 中。 (申請公測賬號需要1-3個工作日)
材料準備
- Ameba x 1
- Patch file for QQ-Link: v3.4b_patch_qqlink
QQ 物聯準備
可结合http://iot.open.qq.com/wiki/#!CASE/Air_Purifier.md的步驟來完成準備。- 申請公測 進入鏈接http://iot.open.qq.com/?from=management ,選擇“申請公測”,為您的QQ號取得QQ物聯的公測資格。公測申請提交到白名單開通,大約需要1-3個工作日時間。
- 配置平台
在白名單開啟後,可進入“開發配置平台” http://iot.open.qq.com/ 對設備進行註冊及配置。
進入 配置平台 – 設備 之後,點擊 添加設備 按鈕,填寫“設備名稱“及選擇“設備類型”後即可開始快速註冊一個新設備:
完成後,我們已經獲得了該產品獲得重要信息:pid 和 server key。
點擊編輯設置設備的信息
即可開始對設備的相關信息進行設置
1.設備信息
- 設備型號: 您可以自由填寫。
- 操作系統: RTOS
- 聯網方式: WiFi
- 配網方式 QQLink(配合example使用)
- QQLink: 可通過手機QQ將設備配置WiFi網絡
- WiFi Router: 設備自行連接WiFi,手機QQ要連接同一WiFi在局域網內搜索設備
- 公鑰上傳 點擊網頁上的”公鑰&證書工具下載(Win 7 Only)”鏈接,然後運行”密鑰生成工具”(CreateKeySnLicenceTool),點擊下圖中的”生成公私鑰對”按鈕,會在您指定的目錄下生成一對非對稱密鑰文件: ec_key.pem (需妥善保管)和public.pem。之後點擊上傳按鈕上傳public.pem 就可以了。
- 初始化信息
要完成手機QQ與Ameba的對接,需要幾個關鍵信息。 PID, SN, LICENSE以及二維碼。具體的名詞解釋可參考http://iot.open.qq.com/wiki/#!FUNC/ExplanationOfTerms.md。
- pid(product id:產品ID) 成功添加設備後即可獲得,可在設備配置頁面的上方找到。 進入http://iot.open.qq.com,選擇相應的設備,點擊“編輯”,即可在頁面上方獲取“設備PID”。
- sn(serial number:序列號) 依然使用生成公私密鑰時使用的工具(CreateKeySnLicenceTool),若沒有,可到http://iot.open.qq.com/wiki/#!SDK/RTOS_SDK_Download.md的“工具下載”中下載“key_tools” 可選擇“使用自有序列號”,序列號格式要求:長度必須是16個字符的字母、數字或者連詞符的組合; 也可以選擇隨機生成。 然後點擊下方的“生成SN”,所有生成的SN將會保存至所填的“選擇路徑”下。
- license(sn對應的認證簽名) 生成license時需要使用到“設備信息”中和公鑰一起產生的私鑰ec_key.pem。 添加私鑰,然後點擊“生成Licence”,在每個SN對應的文件夾中,就會存有對應license的txt 文檔。點擊“驗證文件簽名是否正確”對SN和license進行驗證。
- 二維碼 每一個SN會對應一個二維碼,內容為http://iot.qq.com/add?pid=<PID>&sn=<SN> 您可以到http://liantu.com/或使用其他二維碼生成工具來獲取二維碼。 以“聯圖網”為例,點擊左側的“網址”圖標,輸入URL內容,將PID和SN改為對應的值,點擊“保存圖片”即可獲得二維碼。
- 下載手機QQ 可以在http://im.qq.com/下載最新的手機QQ版本,支持智能硬件接入的手機QQ的版本為: Android QQ : 要求5.7版本以上 iPhone QQ : 要求5.7 版本以上
範例說明
- 將QQLink patch加入 Ameba project
- 將QQLink patch中的文件添加到SDK對應的位置
- qqlink 文件夾複製到SDK下“\component\common\application”中
- atcmd_qqlink_example.c 複製到SDK下“\component\common\api\at_cmd\”中
- lib_rtlstd.a文件替換SDK中的“\component\soc\realtek\8195a\misc\bsp\lib\common\IAR\lib_rtlstd.a”
- 在IAR中添加相關文件
- 在IAR project中,在“console”文件夾中添加“atcmd_qqlink_example.c” 右鍵單擊“console”文件夾,選擇“Add”下的“Add Files”,加入剛剛複製到“component\common\api\at_cmd”中的“atcmd_qqlink_example.c”。
- 在IAR project中,添加“link”文件夾 單擊右鍵,選擇“Add”下的“Add Group”, “Group name”為“qqlink”。
- 添加“…\qqlink\ v1.1.101\src”中的C文件以及lib文件到“qqlink”文件夾 右鍵單擊“qqlink”,選擇“Add”下的“Add Group”,添加“…\qqlink\ v1.1.101\src”中的所有C文件, 若為芯片為RTL8711AF, 添加“Lib_txdevice_1.1.101_sram.a”; 若為RTL8711AM或RTL8195AM, 添加“Lib_txdevice_1.1.101_sdram.a”
- 將QQLink patch中的文件添加到SDK對應的位置
- 修改相關設定並編譯
有四個文檔需要修改:
- platform_opts.h ($sdk\project\realtek_ameba1_va0_example\inc)
添加:
#define CONFIG_QQ_LINK 1
关闭“fast reconnect”:#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0
关闭“simple config”:#define CONFIG_INCLUDE_SIMPLE_CONFIG 0
- example_entry.c ($sdk\component\common\example\)
在
example_entry()
中添加:void example_entry(void) { ... ... #if CONFIG_QQ_LINK example_qq_link(); #endif ... ... }
- update.c ($sdk\component\common\utilities)
打开WRITE_OTA_ADDR:
#define WRITE_OTA_ADDR 1
- qq_device.c ($sdk \component\common\application\qqlink)
- 將void device_run()中info.product_id = XXXXXXXXX;的 info.product_id的數值改為在QQ物聯中您的設備的PID值。
- uint8_t CLIENT_PUB_KEY[] 和uint8_t AUTH_KEY[]的值
需要用到密鑰生成工具以及服務器公鑰,點擊設備編輯頁面中的“服務器公鑰下載”
下載後打開密鑰生成工具,點擊“生成共享密鑰和客戶端公鑰”,用記事本打開剛剛下載的服務器公鑰,將其複製到“請輸入服務器公鑰:”中,點擊“生成” ,即可獲得”client_pub_key”和”ecdh_key”.
uint8_t CLIENT_PUB_KEY[] = “client_pub_key”後面的內容, uint8_t AUTH_KEY[] = “ecdh_key”後面的內容
完成如上修改後,點擊make,然後將其download到Ameba中。
- platform_opts.h ($sdk\project\realtek_ameba1_va0_example\inc)
添加:
- 使用步骤 1. 如果是第一次使用,Ameba會提示沒有“SN/LICENSE”,因此需要用AT commad “ATCQ”將您生成好的一組SN 和LICENSE存入flash。 2. AT commad “ATCQ” 使用方法: 因為license較長,因此將其分為part1和part2兩部分存入。您可輸入ATCQ來查看其用法。 • ATCQ=sn,xxxxxxxxxx • ATCQ=licensepart1,xxxxxxxxxxxxx • ATCQ=licensepart2,xxxxxxxxxxxxx 3. Reset Ameba, “**********RTOS SDK 1.1.101**********”的字樣將會顯示,並且Ameba 開始scan channel 4. 將手機連上可連接網絡的WiFi,並打開手機QQ(需版本5.7以上)。 5. 在QQ聯繫人列表中,打開“我的設備”,點擊“發現新設備”,準備好Ameba中儲存的SN和PID所對應的二維碼,用“掃一掃”來鎖定設備(二維碼的內容為http://iot.qq.com/add?pid=<PID>&sn=<SN>) 6. 掃描二維碼後,再添加新設備頁麵點擊“我已確認”,然後輸入WiFi的相關信息點擊“下一步”進行配置。 7. Ameba在搜索到網絡配置信息後,會鎖定channel,然後連接WiFi。 8. 配置好後,手機將會搜索到該設備,並提示進行綁定,點擊“確認綁定”,即可將設備添加到手機QQ的通訊錄中。 Ameba的log也會顯示“[device_on_bind_status] : Bind status[bound].” 9. 點擊“進入設備”可看到顯示電量的界面,也可點擊右上方的信息按鈕,進入聊天模式,example中,ameba會回復用戶它剛收到的信息
- OTA 在設備編輯頁面選擇OTA固件管理,點擊”上傳OTA包”, 將IAR 編譯後的固件上傳。固件為ota.bin ($ sdk\ project\realtek_ameba1_va0_example\EWARM-RELEASE\Debug\Exe),並設置版本號為100。 若有更新,將最新的ota.bin上傳,並更改版本號為大於100的數值。在手機QQ中,點擊設備的“設置”,選擇“檢查設備更新”,若檢測到不是最新版本,可選擇“下載更新文件”來升級固件。 在下載沒有完成時,可隨時點擊紅色x來停止下載。 下載完成後,手機QQ會顯示“重啟設備安裝更新”,Ameba的log會顯示 “Ota download succeed”。 下載完成後,點擊“重啟設備安裝更新” ,再點擊“確認”後,Ameba會reset進入新的固件。
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用條款