涂鴉Wi-Fi&BLE SoC開發(fā)幻彩燈帶
視頻開發(fā)
https://www.bilibili.com/video/BV1k34y1p76m

引言
隨著物聯(lián)網(wǎng)應(yīng)用技術(shù)的發(fā)展,人們的生活融入著越來越多網(wǎng)絡(luò)化、數(shù)字化的行為方式。物聯(lián)網(wǎng)應(yīng)用技術(shù)的一個(gè)重要分支便是智能家居,這一分支對(duì)于改善人們的生活水平至關(guān)重要。近些年來,消費(fèi)者對(duì)家居的舒適性、便捷性有了一定的要求。針對(duì)現(xiàn)階段己有的智能家居系統(tǒng)成本高、功耗大、集成度低等缺陷,分析并選取合適的平臺(tái)、傳感器和無線組網(wǎng)方式,設(shè)計(jì)了一款成本低、功耗低、集成度高的智能家居系統(tǒng),該系統(tǒng)具有較好的應(yīng)用和參考價(jià)值。 本系統(tǒng)采用涂鴉智能涂鴉模組二次開發(fā)版本,綜合涂鴉Wi-Fi&BLE通信組網(wǎng)技術(shù),以及傳感器的應(yīng)用技術(shù),實(shí)現(xiàn)家居環(huán)境的智能聯(lián)網(wǎng),下圖為涂鴉智能的Wi-Fi&BLE SoC NANO主控板(BK7231N)。?

?

涂鴉模組二次開發(fā)產(chǎn)品
本章節(jié)介紹涂鴉模組二次開發(fā)方案項(xiàng)目流程,涂鴉IoT平臺(tái)為客戶提供一站式物聯(lián)網(wǎng)解決方案,涵蓋設(shè)備智能化、云服務(wù)、App 軟件開發(fā)、運(yùn)營維護(hù)等各方面,助力各行業(yè)客戶實(shí)現(xiàn)研發(fā)端、生產(chǎn)端、銷售端、運(yùn)營端全產(chǎn)業(yè)互聯(lián)網(wǎng)化。 當(dāng)您確定好產(chǎn)品需求后,需要將產(chǎn)品具體化到IoT平臺(tái)上,便于您管理產(chǎn)品并擁有產(chǎn)品運(yùn)營能力。
產(chǎn)品開發(fā)流程
涂鴉模組二次開發(fā)方案開發(fā)周期短、成本低,您在IoT工作臺(tái)上配置完成后,模塊即會(huì)攜帶完整的控制程序,免去外置MCU及繁瑣的程序開發(fā),助您快速實(shí)現(xiàn)產(chǎn)品智能化,創(chuàng)建項(xiàng)目,標(biāo)準(zhǔn)類目選擇“照明”,選擇“幻彩燈帶”。?

選擇開發(fā)方案,根據(jù)下圖指示選擇“自定義方案”,這里我們是對(duì)涂鴉模組進(jìn)行二次開發(fā),所以選擇“自定義方案”。?

按照自己將要開發(fā)的產(chǎn)品和模組填寫產(chǎn)品名稱,選擇對(duì)應(yīng)的通信協(xié)議,配置完成后點(diǎn)擊“創(chuàng)建產(chǎn)品”。 這里準(zhǔn)備使用CBU模組開發(fā)一個(gè)可以幻彩燈帶的產(chǎn)品。CBU模組是一款Wi-Fi&Bluetooth LE雙模模組,選擇的通信協(xié)議是“WiFi-藍(lán)牙”。?

根據(jù)產(chǎn)品想要實(shí)現(xiàn)的功能,選擇對(duì)應(yīng)的功能點(diǎn),選擇完成后點(diǎn)擊“確認(rèn)”。 如果有些你需要的功能點(diǎn)在標(biāo)準(zhǔn)功能點(diǎn)里面沒有,可以在標(biāo)準(zhǔn)功能點(diǎn)選擇完成后,自定義你需要的功能點(diǎn)。(標(biāo)準(zhǔn)功能點(diǎn)可以在公版面板上很好的顯示和操作。如果選擇了自定義功能點(diǎn),可能無法在面板上顯示和操作)。?

在設(shè)備交互中選擇自己喜歡的APP界面,也可以自己進(jìn)行定義。?

點(diǎn)擊“硬件開發(fā)”,選擇“TuyaOS”,選擇“CBU Wi-Fi&Bluetooth 模組”(如果你使用的是其他模組,選擇對(duì)應(yīng)的模組即可)。?

箭頭①指向的“新增自定義固件”是指上傳你已經(jīng)開發(fā)好的產(chǎn)品固件(如何開發(fā)將會(huì)在后面的內(nèi)容進(jìn)行講解)。 點(diǎn)擊箭頭②指向的“ty_iot_light_app_sdk_bk7231n”下載該模組的SDK。?

應(yīng)用場(chǎng)景
涂鴉三明治 Wi-Fi&BLE SoC NANO主控板(BK7231N)采用上海博通開發(fā)的高性價(jià)比的 Wi-Fi &BLE 雙模芯片 BK7231N。開發(fā)板包含 Wi-Fi 芯片BK7231N、按鍵、LED 指示燈、 I/O 接口、電源和USB轉(zhuǎn)串口芯片等。 I/O 口及各接口功能定義如下所示:?

1:MICROUSB(CN1) :即是 5V DC 輸入口,也擴(kuò)展了 2 個(gè)串口功能。 2:撥碼開關(guān)(S1): 撥碼切到 ON 方向?qū)?,通?USB 轉(zhuǎn)串口芯片的雙串口和芯片串口之間的鏈路。 3: 指示燈(D3):3.3V 電源指示燈。 4:按鍵(S2):通過 P9 檢測(cè),初始化高電平,按下為低電平。 5:指示燈(D2):通過 P16 控制,低電平點(diǎn)亮。 6:按鍵(RST):復(fù)位按鍵,按下后芯片復(fù)位。
原理圖及PCB
涂鴉三明治 Wi-Fi&BLE SoC NANO 主控板(BK7231N)的原理圖如下所示:?

涂鴉三明治 Wi-Fi&BLE SoC NANO 主控板(BK7231N) 的 PCB 如下圖,頂層:?

底層:?

Wi-Fi&BLE SoC NANO主控板(BK7231N)接口說明
涂鴉三明治 Wi-Fi&BLE NANO 主控板(BK7231N)內(nèi)置 USB 轉(zhuǎn)串口芯片,單路 USB 口可擴(kuò)展出 2 個(gè)串口??赏ㄟ^撥碼開關(guān)(S1)切換模組的兩路串口是否連接到 USB 轉(zhuǎn)串口芯片上。撥碼開關(guān)引腳說明如下表所示。

撥碼切到 ON 方向?qū)ǎ〝?USB 轉(zhuǎn)串口芯片的雙串口和芯片串口之間的鏈路。 芯片 UART 引腳用于與MCU通信或普通 I/O 口使用時(shí),需將相應(yīng)的撥碼位置撥到斷開的位置,即數(shù)字字母方向。 電腦 COM 口與 USB 芯片串口和芯片 BK7231N 對(duì)應(yīng)關(guān)系。?

通常情況下A是用來下載程序用的,B是用來打印日志的?

燒錄授權(quán)接線方式

將撥碼開關(guān)(S2)的 1、2 路都撥至 ON 方向,BK7231N 的串口 UART1 與上位機(jī)鏈路導(dǎo)通。 注意:若出現(xiàn)“獲取RF標(biāo)志位失敗”的情況,可在授權(quán)階段,將串口2的RXD引腳(P01引腳)和GND短接。
環(huán)境搭建
環(huán)境搭建請(qǐng)參考涂鴉智能配置說明:?
https://developer.tuya.com/cn/docs/iot/Module-SDK-development_tutorial?id=Kauqptzv5yo8a
從涂鴉 IoT 開發(fā)平臺(tái)下載 SDK 進(jìn)行驗(yàn)證
在涂鴉IoT 開發(fā)平臺(tái)上成功創(chuàng)建自定義開發(fā)的產(chǎn)品后,在硬件開發(fā)中選擇 TuyaOS,即可下載該模組的 SDK。此前需聯(lián)系涂鴉工作人員開通白名單授權(quán),聯(lián)系方式放在文末。?

將下載好的 SDK 復(fù)制到 Windows 和 Ubuntu 的共享文件夾中,在 Ubuntu 虛擬機(jī)中輸入下列命令進(jìn)行編譯:
執(zhí)行成功如下所示:?

模組二次開發(fā)流程
啟動(dòng)流程介紹
在開始開發(fā)前,需要了解 SDK 的初始化流程。這里需要重點(diǎn)關(guān)注四個(gè)函數(shù)pre_app_init()、pre_device_init()、app_init()和device_init()。啟動(dòng)流程如下圖所示。?

修改代碼
產(chǎn)品PID定義
可以根據(jù)下面的提示填寫產(chǎn)品的 PID 信息,也可以不對(duì)代碼進(jìn)行任何更改,跳過該步驟直接進(jìn)入下一步編譯生成固件。 將apps下的include/light_system目錄下的light_system.h中的PRODUCT_KEY修改為您創(chuàng)建得到的 PID,F(xiàn)IRMWARE_KEY是固件key,可以填NULL。?

燈珠數(shù)量定義
在/home/share/samba/ty_iot_light_app_sdk_bk7231n_0.1.1/app/xh0623_demo_pixel_light_ty/include/src/light_system/light_init.c中可以進(jìn)行修改。?

燈帶長度定義
在/home/share/samba/ty_iot_light_app_sdk_bk7231n_0.1.1/app/xh0623_demo_pixel_light_ty/include/src/light_upload/light_upload.c中可以進(jìn)行修改,其中DPID_LED_NUM是燈珠數(shù)量,DPID_LED_LENGTH是燈帶長度,單位為厘米。?
編譯和生成產(chǎn)物介紹
在 Ubuntu 終端中將路徑切換到有 build_app.sh 的路徑下,輸入下列命令進(jìn)行編譯。?
例:我這里處于home/share/samba/ty_iot_light_app_sdk_bk7231n_0.1.1路徑下,開始執(zhí)行下列命令。

執(zhí)行后如下所示。?

生成產(chǎn)物
編譯完成后,將生成的固件按照不同版本放在所編譯的工程目錄 output 文件夾內(nèi)。 例:如果我們編譯的是 apps 文件夾中的 xh0623_demo_pixel_light_ty工程,編譯版本為1.0.0,那么生成的固件將會(huì)放在 apps/xh0623_demo_pixel_light_ty/output/1.0.0 中。?

編譯后的產(chǎn)物如上圖所示,這里主要關(guān)注的
xh0623_demo_pixel_light_ty_QIO_1.0.0.bin、xh0623_demo_pixel_light_ty_UA_1.0.0.bin和xh0623_demo_pixel_light_ty_UG_1.0.0.bin這三個(gè)文件。

上傳固件
自定義開發(fā)固件如果不上傳到云平臺(tái),直接將 UA 文件燒錄到已授權(quán)的模組中,會(huì)導(dǎo)致配網(wǎng)一直無法成功。 進(jìn)入涂鴉 IoT 平臺(tái),在開發(fā)的產(chǎn)品中找到“硬件開發(fā)”,按照下圖指示點(diǎn)擊“新增自定義固件”,填寫相關(guān)固件信息。 “固件標(biāo)識(shí)名”必須和您編譯時(shí)的 apps 下的工程文件夾的名稱一致。 如果固件標(biāo)識(shí)名填寫為 wifi_one_light,上傳的固件應(yīng)為 SDK 包中 apps 目錄下的 wifi_one_light 文件夾中編譯所生成的固件。 “Flash 大小”為 16Mbit 也就是 2M 大小。不同模組的 flash 大小可以在涂鴉文檔中心 中查看相關(guān)模組的 flash 大小。 1byte(字節(jié)) = 8bit(位)。 16Mbit / 8 = 2M。 相關(guān)信息填寫完成后(沒有被②的框框圈到使用默認(rèn)設(shè)置即可),點(diǎn)擊“上傳固件”,進(jìn)入“上傳固件“步驟。?

“固件版本”需要和編譯時(shí)輸入的版本號(hào)對(duì)應(yīng)一致。“生產(chǎn)固件”上傳包含 QIO 的 bin 文件,“用戶區(qū)”上傳包含 UA的bin 文件,“升級(jí)固件”上傳包含 UG 的 bin 文件。運(yùn)行模式選擇 QIO。點(diǎn)擊保存。 注意:該順序不一定固定,在后續(xù)固件管理中就不是按照“生產(chǎn)固件”,“用戶區(qū)固件”和“升級(jí)固件”的順序來排序,所以一定要看清楚是什么類型的固件在進(jìn)行上傳。?

點(diǎn)擊“進(jìn)行固件上架”。?

選擇“不限范圍”,點(diǎn)擊“確認(rèn)上架”。 注意:這里選擇不限范圍是為了方便個(gè)人開發(fā)。如果是公司將要量產(chǎn)的產(chǎn)品,請(qǐng)嚴(yán)格限定固件的使用范圍。

燒錄授權(quán)
通過涂鴉 IoT 開發(fā)平臺(tái)涂鴉模組二次開發(fā)方案成功生成固件,或使用自定義開發(fā)方案生成固件并上傳到涂鴉 IoT 開發(fā)平臺(tái)后,下一步需要對(duì)模組進(jìn)行燒錄授權(quán)。 本文將詳細(xì)講解 3 種不同的燒錄授權(quán)方式: 自定義開發(fā)燒錄授權(quán):適用于發(fā)布階段,使用自定義開發(fā)方式創(chuàng)建的產(chǎn)品。 三明治開發(fā)板方式燒錄授權(quán):僅適用于涂鴉三明治開發(fā)板的燒錄授權(quán)。 使用原廠工具燒錄:適用于開發(fā)階段。方案的特點(diǎn)是授權(quán)一次,重復(fù)燒錄。
燒錄準(zhǔn)備工作
燒錄授權(quán)所需工具如下:
PMS 賬號(hào)
CBU Nano開發(fā)板或涂鴉WiFi模組+usb轉(zhuǎn)UART串口工具
云模組燒錄授權(quán)工具
原廠燒錄工具
PMS 賬號(hào)
PMS賬號(hào)申請(qǐng)網(wǎng)址:https://pms.tuya.com/login?
PMS是涂鴉智慧生產(chǎn)管理系統(tǒng),一個(gè)輕量化的生產(chǎn)管理系統(tǒng),助力中小微生產(chǎn)企業(yè)實(shí)現(xiàn)降本、提質(zhì)、增效和減存,完成數(shù)字化轉(zhuǎn)型。?
登錄涂鴉PMS系統(tǒng)。登錄成功后,依次點(diǎn)擊知識(shí)庫管理->軟件下載->生產(chǎn)解決方案開始下載「生產(chǎn)解決方案」。?

安裝過程中,程序安裝的位置可以根據(jù)自身需求進(jìn)行設(shè)置,建議不要有中文路徑,避免出現(xiàn)一些意想不到的問題。?
安裝完成后,啟動(dòng)「生產(chǎn)解決方案」,登錄的賬號(hào)和密碼與涂鴉PMS系統(tǒng)(涂鴉智造)的賬號(hào)和密碼一樣。?
由于是開發(fā)CBU Wi-Fi & Bluetooth 模組,故選擇生產(chǎn)測(cè)試->云模組即可。?

選擇文件->設(shè)置,進(jìn)行燒錄設(shè)置,授權(quán)波特率最好設(shè)置在9600。

授權(quán)設(shè)置
點(diǎn)擊產(chǎn)品->三明治開發(fā)板->綁定開發(fā)板進(jìn)行綁定。?

一般情況下,開發(fā)板背部都有一張標(biāo)簽,上面附帶了ID和密碼。?

點(diǎn)擊申請(qǐng)新的授權(quán)碼,即可選擇需要添加的產(chǎn)品。?

使用云模組燒錄授權(quán)平臺(tái)燒錄
設(shè)置完畢之后將授權(quán)碼輸入到生產(chǎn)憑證中,選擇燒錄模式。?

點(diǎn)擊運(yùn)行,在對(duì)開發(fā)板進(jìn)行復(fù)位就可以進(jìn)行下載。?

原廠工具燒錄UA文件
使用該方法只能燒錄應(yīng)用區(qū)固件,無法給模組進(jìn)行授權(quán)操作??梢允褂迷摲椒ńo已經(jīng)授權(quán)過的模組進(jìn)行燒錄,避免每次更新代碼生成固件后都要上傳到涂鴉loT平臺(tái)使用「云模組燒錄授權(quán)平臺(tái)」工具進(jìn)行燒錄授權(quán)。?
下降鏈接如下:https://images.tuyacn.com/smart/shiliu_zone/SOC_Develop/tools/bk_writer_gui_V1.6.3.rar?
使用此方法只能燒錄應(yīng)用區(qū)固件,無法給模組進(jìn)行授權(quán)操作??梢允褂迷摲椒ńo已經(jīng)授權(quán)過的模組進(jìn)行燒錄,避免每次更新代碼生成固件后都要上傳到涂鴉 IoT 開發(fā)平臺(tái)使用云模組工具進(jìn)行燒錄授權(quán)。
按照下圖步驟,在箭頭 ① 所指向的燒錄對(duì)象中,根據(jù)實(shí)際燒錄的模組選擇對(duì)應(yīng)的芯片型號(hào),可在文檔中心查看相關(guān)模組規(guī)格書,確認(rèn)模組使用的芯片型號(hào)。 單擊箭頭 ② 指向的瀏覽按鈕,選擇成功編譯生成的包含了 UA 字樣的 bin 文件(該文件就是應(yīng)用區(qū)固件,這里選擇的固件就是wifi_one_light)。?
在箭頭 ③ 和箭頭 ④ 指向的起始地址中填入0x00011000,操作長度中填入0x00119000。
在箭頭 ⑤ 指向的位置選擇正確的燒錄串口,將箭頭 ⑥ 指向的通訊波特率調(diào)整為最高,可以加快燒錄速度。?
單擊箭頭 ⑦ 指向的燒錄,給模組通斷電或復(fù)位模組使模組重啟,開始燒錄。燒錄完成后,更改后的代碼就成功燒錄到模組中。你可以不再使用云模組工具對(duì)該模組再次進(jìn)行授權(quán)操作。?
燒錄設(shè)置如下所示。?

燒錄完成如下所示。?

涂鴉APP
可以在涂鴉手機(jī)APP中對(duì)模組進(jìn)行添加。 一般情況下可以自動(dòng)識(shí)別出來。?

若沒有識(shí)別,點(diǎn)擊照明,燈帶進(jìn)行添加。?

若APP無法搜索到模組,需要對(duì)模組進(jìn)行重置,查看原理圖可以知道P9管腳對(duì)應(yīng)用戶按鍵。?

查看/home/share/samba/ty_iot_light_app_sdk_bk7231n_0.1.1/app/xh0623_demo_pixel_light_ty/include/src/light_button/light_button_init.c下有個(gè)按鍵配置代碼,可以看到對(duì)按鍵點(diǎn)擊4次可以進(jìn)入復(fù)位模式。?

幻彩燈帶功能介紹
涂抹功能
用戶可以根據(jù)自己的喜好給燈帶進(jìn)行設(shè)置,配置為自己喜歡的顏色組合,例如配置為藍(lán)綠紅。?

實(shí)際配置如下所示。?

還有豐富的色卡組合。?

場(chǎng)景設(shè)置
用戶可以根據(jù)自己的喜好定義場(chǎng)景。?

例如設(shè)置為海上焰火,效果如下所示。?

音樂律動(dòng)
音樂律動(dòng)分為本地模式和APP模式,在本地模式下有搖滾、爵士、古典、滾動(dòng)、能量、頻頻。 以爵士為例,設(shè)置之后可以選擇靈敏度來改變燈帶頻率。?

實(shí)際演示如下所示。?

在APP模式下,燈光根據(jù)手機(jī)麥克風(fēng)采集到的音樂隨之律動(dòng)。 如設(shè)置為音樂律動(dòng),顯示如下所示。?

其他功能
用戶可以給幻彩燈帶進(jìn)行設(shè)置,指定打開時(shí)間。 同時(shí)也可以定義燈帶的長度。?

掃碼加入白名單
這款SDK目前需要白名單授權(quán),有需求的同仁可以掃碼聯(lián)系涂鴉工作人員開通白名單。?
