實現的功能:
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 支持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