“只需要在對應的事件處理邏輯中添加傳感器的控制函數,就可以完成產品的開發。”
這些日子得空,研究了不同智能硬件設備雲平台的工具。發現一個好用的工具——MCU代碼自動生成工具,確實能節省不少開發時間。使用MCU代碼自動生成工具,不必再關注各種協議,只需將精力放在核心應用開發上。
目前,MCU代碼自動生成工具支持以下幾種型號:
stm32f103c8x、
stm32F407、
stm32F429、
stm32F767平台、
Arduino uno wifi通用平台
(我使用的是STM32F407代碼自動生成工具。)
具體而言,代碼自動生成工具能根據你的產品自動填寫了productkey,根據你設置的數據點來自動生成數據點的結構體。自動生成的代碼實現了機智雲通信協議的解析與封包、傳感器數據與通信數據的轉換邏輯,並封裝成了簡單的API,且提供了多種平台的實例代碼。當設備收到雲端或APP端的數據后,程序會將數據轉換成對應的事件並通知到應用層,開發者只需要在對應的事件處理邏輯中添加傳感器的控制函數,就可以完成產品的開發。
要強調的一點是,已經根據用戶定義的產品數據點信息,並針對STM32、ESP8266等平台,生成了對應的機智雲串口協議層代碼,用戶只需要調用相應的API接口或添加相應的邏輯處理即可。基於MCU代碼自動生成工具生成的代碼代碼框架如下圖所示:
需要開發的部分為:
1)下行處理:動作執行,例如LED燈開關、電機轉速控制等。
2)上行處理:數據采集,例如溫濕度數據采集,紅外傳感器狀態獲取等。
3)配置處理:配置入網及恢復出廠設置。
此外,因自動生成的代碼在各平台之間使用了統一的協議封裝,故二次開發所完成的修改也幾乎相同。需要開發的部分
1)下行處理之傳感器驅動開發:首先要完成的是傳感器驅動開發,然后在Gizwits目錄下的gizwits_product.c文件中的gizwitsEventProcess()函數中處理相應事件即可
2)上行處理之傳感器數據采集:首先要完成的是傳感器驅動開發,然后在user目錄下main.c文件中的userHandle()函數中實現傳感器數據采集,用戶只需並將采集到的數值賦值給對應用戶區的設備狀態結構體數據位即可
3)配置處理:除了數據的上行與下行處理外,還需要做:配置入網及恢復出廠設置。(機智雲提供了API實現配置入網及恢復出廠配置。)
此外,機智雲提供了一個“智能燈”幫助理解“MCU代碼自動生成工具”
