實現的功能:
l APP控制月球燈
l 本地月球燈控制
l APP控制“大白”顏色,實現各種顏色變身
l 門狀態感測器狀態APP顯示
l 網路狀態指示燈,連線伺服器長亮,斷開後閃爍
l 配網按鍵
l 雲端定時功能
l 雲端報警提示功能
l 雲端歷史資料檢視
l 遠端升級介紹
視訊演示:https://www.bilibili.com/video/BV1jg411P7f6
一、介面展示
二、 塗鴉開發概述
零程式碼開發
提供視覺化功能配置介面,無需任何程式設計經驗,只需要線上配置好產品的功能,及可自動生成韌體
MCU SDK開發
在MCU上進行程式碼開發,通過串列埠和塗鴉模組進行通訊,從而實現與平臺通訊
模組SDK開發
開發者利用塗鴉提供的SDK對模組進行二次開發,靈活性強,節省成本
先註冊一個賬號:
三、硬體選型
Wi-Fi&BLE SoC NANO主控板(BK7231N)
l Wi-Fi &BLE 雙模晶片
l 1:MICROUSB(CN1) :即是 5V DC 輸入口,也擴充套件了 2 個串列埠功能。
l 2:撥碼開關(S1): 撥碼切到 ON 方向導通,通斷 USB 轉串列埠晶片的雙串列埠和晶片串列埠之間的鏈路。
l 3: 指示燈(D3):3.3V 電源指示燈。
l 4:按鍵(S2):通過 P9 檢測,初始化高電平,按下為低電平。
l 5:指示燈(D2):通過 P16 控制,低電平點亮。
l 6:按鍵(RST):復位按鍵,按下後晶片復位。
原理圖:
兩個串列埠:
其中
l A可以作為程式下載使用的
l B通常是用來列印日誌的
參考:
https://developer.tuya.com/cn/docs/iot/tuya-sandwich-wifi-and-ble-soc-board-BK7231N?id=Kao72e6net3bs
對標的模組為:
l 內建低功耗 32 位 CPU,可以兼作應用處理器
l 主頻達 120MHz
l 工作電壓:3.0V~3.6V
l 內建2Mbyte 快閃記憶體和 256 KB RAM
l 外設:5×PWM,2×UART,1×SPI
l Wi-Fi 連通性
n 802.11 b/g/n
n 通道1-14@2.4GHz
n 支援WEP,WPA/WPA2,WPA/WPA2 PSK (AES) 安全模式
n 802.11b模式下最大+16dBm的輸出功率
n 支援STA/AP/STA+AP工作模式
n 支援SmartConfig和AP兩種配網方式(包括Android和IOS裝置)
n 板載PCB天線,天線峰值增益2.2dBi
n 工作溫度:-40℃ to 105℃
l 藍芽連通性
n 藍芽模式支援6 dBm 發射功率
n 完整的藍芽共存介面
n 板載PCB天線,天線峰值增益2.2dBi
https://developer.tuya.com/cn/docs/iot/cbu-module-datasheet?id=Ka07pykl5dk4u
四、 建立一個產品(模組SDK開發)
建立產品步驟:
- 選擇品類
- 選擇開發方式為“自定義方案”
- 配置功能點(DP點)
- 製作介面,推薦使用Studio皮膚製作
- 硬體開發選型,點選“TuyaOS”,選擇支援模組SDK開發的模組
- 下載模組的SDK和領取授權碼
五、程式設計環境搭建
Ubuntu虛擬機器環境搭建
https://developer.tuya.com/cn/docs/iot/SoC-redevelopment_Windows?id=Kauqrxxka0wv6
安裝編譯工具
sudo apt-get update sudo apt-get upgrade -y sudo apt-get install net-tools build-essential wget git python libc6-i386
共享資料夾
共享Linux資料夾,可以實現在Windows中程式設計,在Linux中編譯
Samba安裝
sudo apt-get install samba cifs-utils samba-common
在使用者目錄(/home/dong/)下建立共享資料夾,並且給資料夾可讀可寫可執行許可權
mkdir share chmod 777 -R share
修改samba配置
sudo gedit /etc/samba/smb.conf
在檔案最後面新增配置資訊
[share] path = /home/dong/share available = yes browseable = yes public = no writable = yes
設定共享資料夾登入賬號
sudo smbpasswd -a dong
重啟服務
sudo service smbd restart
Windows操作
查詢Linux IP ,使用如下進行訪問
六、SDK使用及程式編寫
下載剛剛建立產品的模組SDK
複製到Linux共享目錄下,通過命令解壓
tar -zxvf b1daf5huhq0w.tar.gz
l apps資料夾:用於存放示例工程和後續建立的工程放置處
l platforms資料夾:用於存放模組的原廠庫和工具,在編譯時會由build_app.sh進行下載
l sdk資料夾:塗鴉模組SDK的標頭檔案和庫檔案
l build_app.sh:編譯指令碼
官方例程:
git clone https://github.com/Tuya-Community/bk7231n_light1_io_xx.git
文件:https://developer.tuya.com/cn/docs/iot/quick-start?id=Kaytf7h5yhp8y
在有build_app.sh檔案下編譯:
指令格式:
sh build_app.sh ./apps/工程名目錄名/ 工程名(工程名目錄名) 版本號
示例:
sh build_app.sh ./apps/bk7231n_light1_io_dxd/ bk7231n_light1_io_dxd 1.5
編譯成功:
編譯成功後在工程目錄下會建立“output”資料夾,並且裡面有對應的版本
輸出
l QIO是生產韌體,生產時下載
l UA是使用者韌體,本地除錯用原廠工具燒錄時使用
l UG是升級韌體
程式介紹:
https://developer.tuya.com/cn/docs/iot/redevelopment?id=Kaytfdoorwc24
七、 韌體燒錄&授權
上傳韌體
必須要上傳一個韌體,然後進行授權燒錄一次,如果直接用原廠工具燒錄,不上傳韌體,硬體會始終無法配對
上架前:
上架後:
韌體標識名是非常重要的,編譯時的“工程名目錄名”,這個授權之後就是繫結關係了,後續如果更改,需要雲端也下架更改,比較麻煩。原廠工具燒錄時也必須同名編譯。
獲取授權碼
每個硬體都要有個獨立的授權碼,才能正常連線到雲平臺,就像硬體身份證一樣
方式一(模組):
如果是第一次使用平臺,可以獲取兩個免費的授權碼
方式二(開發板):
開發板可以通過ID和PASSWD獲取一個授權碼,這個開發板上一般會有貼紙
燒錄方式1,雲模組燒錄平臺,新板子必須經過一次
這裡是燒錄也是授權,燒錄的韌體是上傳到雲平臺的韌體
將編譯輸出的韌體上傳到產品下,獲取啟用碼(生產憑證)
申請一個PMS賬號
需要將我們的生成憑證在此確認
下載雲模組燒錄軟體進行燒錄
https://github.com/TuyaInc/TUYA_PTS_SDK/raw/master/Tools/TYDA_Setup_Online.exe
點選執行即可開始下載,點選後需要手動復位模組
原廠工具燒錄
在使用原廠工具燒錄前,為了確保APP可以正常控制裝置,必須進過一次“雲模組”燒錄,後續就不需要每次更改後上傳雲平臺,直接下載會更加方便些,燒錄的韌體是使用者韌體(UA)
下載原廠工具
https://images.tuyacn.com/smart/shiliu_zone/SOC_Develop/tools/bk_writer_gui_V1.6.3.rar
這是個免安裝的軟體
- 選擇燒錄的模組的晶片,建立產品時可以檢視到
- 選擇燒錄的UA檔案
- 起始地址
- 地址長度
- 選擇燒錄串列埠,燒錄波特率可以大一些
- 點選燒錄,後要進行手動復位
燒錄可能會遇到的問題
使用雲模組燒錄授權平臺時,燒錄到一半可能會出現這個問題,使用Wi-Fi&BLE SoC NANO主控板時,若出現“獲取RF標誌位失敗”的情況,可在授權階段,將串列埠2的RXD引腳(P01引腳)和GND短接。
更多異常解決:
https://developer.tuya.com/cn/docs/iot/flash-and-authorize?id=Kaytfatwdbfj2
八、設計思路
設計思路
https://www.bilibili.com/video/BV1jg411P7f6
九、個人導航
【B站 | 東小東bili】 https://space.bilibili.com/162091292
【部落格園 | 東小東 】https://www.cnblogs.com/dongxiaodong/
【CSDN | 東小東部落格】https://blog.csdn.net/dongxiaodongvip
【微信 | 東小東】dongxiaodongwx