找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2829|回復: 0
打印 上一主題 下一主題
收起左側(cè)

基于GoKit的產(chǎn)品開發(fā)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:111475 發(fā)表于 2016-3-30 23:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      

  
        
編制人
      
        
Sean
      
        
審核人
      
        
      
批準
        
產(chǎn)品名稱
      
        
      
        
產(chǎn)品型號
      
        
      
文檔編號
        
會簽日期
      
        
      
        
版本
      
        
0.9.0
      
GizWits
修訂記錄
  
        
修改時間
      
        
修改內(nèi)容
      
        
版本
      
        
修改人
      
        
備注
      
        
2014-09-30
      
        
創(chuàng)建
      
        
0.9.0
      
        
Sean
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      

      
目錄
1.      開發(fā)GoKit       1
1.1.      開發(fā)過程(思路)       1
1.2.      了解GoKit       1
1.3.      定義新產(chǎn)品       1
1.4.      選擇產(chǎn)品模板       1
1.5.      調(diào)整產(chǎn)品參數(shù)       2
1.6.      生成MCU協(xié)議       3
1.7.      生成虛擬設備       3
1.8.      GoKit工程與調(diào)試       4
1.9.      協(xié)議細節(jié)       4
1.9.1.      WIFI模塊獲取MCU基本信息       4
1.9.2.      WIFI讀取MCU屬性       5
1.9.3.      設定LEDR       5
1.9.4.      設定LEDG       6
1.9.5.      設定電機轉(zhuǎn)速       7
1.9.6.      MCU主動上報狀態(tài)       7
2.      GoKit為例,開發(fā)新產(chǎn)品       8

      1.開發(fā)GoKit1.1.開發(fā)過程(思路)
1)了解GoKit - 了解GoKit能夠支持的硬件功能
2)定義新產(chǎn)品 - 基于這些硬件功能設計一個簡單產(chǎn)品
3)選擇產(chǎn)品模板 - 選擇一個已有的類似產(chǎn)品作為模板快速定義產(chǎn)品
4)調(diào)整產(chǎn)品參數(shù) - 根據(jù)自己產(chǎn)品的需要對模板中的各屬性字段(數(shù)據(jù)點)進行添加、刪除或修改
5)生成MCU協(xié)議與示例代碼 - 產(chǎn)品數(shù)據(jù)點保存后,立即生成完成的MCU開發(fā)協(xié)議以及對應的示例代碼
6)生成虛擬設備 - 如果您沒有GoKit開發(fā)板,不需要再做任何的MCU開發(fā),生成的虛擬設備已經(jīng)具備你所設計的產(chǎn)品功能
7)GoKit工程與調(diào)試 - 在您創(chuàng)建的GoKit工程中,添加示例代碼,即可完成MCU協(xié)議數(shù)據(jù)的解析和組包,您只需完成對IO口的操作即可
8)協(xié)議細節(jié) - 當然,如果您想詳細了解MCU協(xié)議,我們會給您一一介紹
1.2.了解GoKit
    GoKit能夠提供的硬件功能為:
1)一顆STM32F103C8T6芯片,LPFQ封裝,提供JTAG編程接口;
2)一個紅外探測器,可以探測是否有阻擋;
3)一個R、G、B可編程全彩LED燈;
4)一個可編程電機;
5)一個溫濕度傳感器;
6)一個復位按鍵和四個自定義按鍵,可以根據(jù)需要自行設定,比如按鍵改變電機轉(zhuǎn)速、按鍵改變LED顏色等;
    此外,GoKit提供USB串口,可以更方便的對MCU進行調(diào)試或者升級。
1.3.定義新產(chǎn)品
    基于GoKit提供的以上功能,我們可以設計一些簡單且實用的產(chǎn)品,比如小狗寵物屋,我們設計這款產(chǎn)品功能如下:
1)當小狗在屋里的時候,LED亮綠色,當小狗不在屋的時候,LED亮紅色,當小狗連續(xù)一個小時不在屋的時候,上報一條報警給主人;
2)當溫度達到或者超過28度的時候,打開寵物屋的排風扇(電機),當溫度降到28以下的時候,關閉寵物屋的排風扇(電機);
    以上兩個功能就可以很好的完成一個智能產(chǎn)品,當然,你也可以定義很多有趣的產(chǎn)品,比如兒童玩具之類的。    接下來我們可以以一個已有的產(chǎn)品模型為基礎進行快速開發(fā);
1.4.選擇產(chǎn)品模板
    我們選擇GoKit開發(fā)模板,會自動出現(xiàn)已經(jīng)定義好的數(shù)據(jù)點,如下圖所示:
1.5.調(diào)整產(chǎn)品參數(shù)
小狗寵物屋這個產(chǎn)品中,我們需要關心的屬性有:
1)LED的顏色R值(紅色)
2)LED的顏色G值(綠色)
3)環(huán)境溫度
4)電機轉(zhuǎn)速
5)紅外探測
這五個屬性值保留,并使用默認的配置,其余的屬性可以刪除;
如下圖所示:
五個屬性分別可以進行更詳細的編輯:
1)LED的R值(紅色),用RGB表示發(fā),一共有0-254種紅色(數(shù)據(jù)范圍為0-254),所以,我們用一個字節(jié)就可以描述(數(shù)據(jù)類型為uint8),這個屬性是可以設定也可以讀取的(讀寫類型為可寫),由于沒有負數(shù),也沒有浮點,MCU可以直接用一個字節(jié)描述這個屬性,所以不需要做修正,所以分辨率為1,增量為0;
2)LED的G值定義同上;
3)環(huán)境屬性,我們定義溫度范圍為0-50度,用一個字節(jié)可以表示(數(shù)據(jù)類型是數(shù)據(jù),uint8),這個屬性僅能讀取,不能設置(讀寫屬性是只讀),同樣不需要修正(k=1,m=0);
4)紅外探測屬性,可以探測是否有阻擋(是一個布爾類型),僅能讀取(讀寫類型為只讀);
5)電機轉(zhuǎn)速我們定義范圍0-1000,0表示停止,用兩個字節(jié)描述,不用修正;
1.6.生成MCU協(xié)議
數(shù)據(jù)點保存后,會生成如下的MCU協(xié)議,協(xié)議在下文有詳細解釋:
FF FF 00 05 01 01 00 00 07
FF FF 00 47 02 01 00 00 30 30 30 30 30 30 30 34 30 30 30 30 30 30 30 32 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 64 36 39 61 66 35 39 65 33 38 63 37 31 31 65 34 61 32 39 64 35 32 35 34 30 30 35 32 38 37 36 64 01 2C CA  
                                 
FF FF 00 06 03 02 00 00 02 0d
FF FF 00 10 04 02 00 00 03 55 aa bb cc 80 00 80 23 00 00 42
FF FF 00 0d 03 04 00 00 01 02 00 CC 00 00 00 00 e3
FF FF 00 05 04 04 00 00 0d
FF FF 00 0d 03 05 00 00 01 04 00 00 BB 00 00 00 d5
FF FF 00 05 04 05 00 00 0e
FF FF 00 0d 03 07 00 00 01 10 00 00 00 00 e0 00 08
FF FF 00 05 04 07 00 00 10
FF FF 00 10 05 01 00 00 04 55 aa bb cc 80 00 80 23 01 03 c7
FF FF 00 05 06 01 00 00 0c
1.7.生成虛擬設備
產(chǎn)品屬性(數(shù)據(jù)點)定義好以后,就會自動生成虛擬設備,即使沒有GoKit開發(fā)板,您也可以使用虛擬設備進行調(diào)試,虛擬設備的使用,可以參考文檔中心的快速開始;
    虛擬設備操作頁面如下圖所示:
1.8.GoKit工程與調(diào)試
到此,可以進行代碼開發(fā)了,在后期,我們會提供根據(jù)產(chǎn)品定義自動生成的代碼片段,您可以創(chuàng)建一個標準的MCU工程,在您的工程中添加我們?yōu)槟漠a(chǎn)品生成的代碼片段,這部分代碼片段,完成了協(xié)議的解析,命令的組包,校驗和的計算等各種問題,您只需要傳入屬性值就可以輸出完成的狀態(tài)包,您收到命令后,可以方便的進行命令拆分;具體的試用方法,參見代碼片段中的注釋說明。
通過這些協(xié)議,可以方便的管理GoKit上的各個硬件,只需要在MCU中對響應IO口進行操作即可。
1.9.協(xié)議細節(jié)1.9.1.WIFI模塊獲取MCU基本信息
完整協(xié)議包: FF FF 00 05 01 01 00 00 07
拆分:
FF FF         包頭
00 05         長度,表示后面還有5個字節(jié)
01            wifi要獲取mcu基本信息的命令
01            序列號
00 00        標志位,保持0即可
07            校驗值,從長度到校驗和前的字節(jié)相加值
MCU給WIFI模塊返回基本信息:
完整協(xié)議包:FF FF 00 47 02 01 00 00 30 30 30 30 30 30 30 34 30 30 30 30 30 30 30 32 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 64 36 39 61 66 35 39 65 33 38 63 37 31 31 65 34 61 32 39 64 35 32 35 34 30 30 35 32 38 37 36 64 01 2C CA
拆分:
FF FF        包頭
00 47        長度,表示后面有71個字節(jié)(47為16進制)
01            mcu給wifi返回基本信息的命令
01            序列號,需要和上述wifi的查詢包中的sn相同
00 00        標志位,保持0即可
30 30 30 30 30 30 30 34        機智云協(xié)議版本號
30 30 30 30 30 30 30 32        P0協(xié)議版本號
30 30 30 30 30 30 30 31        MCU硬件版本號
30 30 30 30 30 30 30 31        MCU軟件版本號
64 36 39 61 66 35 39 65 33 38 63 37 31 31 65 34 61 32 39 64 35 32 35 34 30 30 35 32 38 37 36 64                產(chǎn)品的product_key
01 2C        綁定超時時間
CA            校驗值,從長度到校驗和前的字節(jié)相加值   
1.9.2.WIFI讀取MCU屬性
完整的協(xié)議包:FF FF 00 06 03 02 00 00 02 0d
拆分:
FF FF        包頭
00 06        長度,后面有6個字節(jié)
03            wifi向mcu發(fā)送數(shù)據(jù)的命令
02            序列號
00 00        標志位,保持0即可
02            查詢狀態(tài)命令
0d            校驗值,從長度到校驗和前的字節(jié)相加值
MCU返回當前屬性值
完整的協(xié)議包:FF FF 00 10 04 02 00 00 03 55 aa 80 00 01 23 BC
拆分:
FF FF        包頭
00 10        長度,后面有16個字節(jié)
04            mcu向wifi發(fā)送數(shù)據(jù)的命令
02            序列號
00 00        標志位,保持0即可
03            mcu響應wifi的查詢狀態(tài)命令
55            LED的R值
aa            LED的G值
80 00        電機轉(zhuǎn)速
01            紅外探測結(jié)果(最低位一位表示紅外探測結(jié)果,0:探測無,1:探測有)
23            溫度值
BC            校驗值,從長度到校驗和前的字節(jié)相加值
1.9.3.設定LED的R值
完整的協(xié)議包:FF FF 00 0d 03 04 00 00 01 01 CC AA 00 00 00 00 8C
拆分:
FF FF        包頭
00 0d        長度
03            wifi向mcu發(fā)送數(shù)據(jù)的命令
04            序號
00 00        標志位,保持0即可
01            控制類命令
01            控制屬性標志組合,01表示第一個屬性值有效
CC AA 00 00 00 00    屬性數(shù)據(jù)
8C            校驗值,從長度到校驗和前的字節(jié)相加值
說明:
1)wifi給mcu發(fā)送控制指令時,會含有mcu所有的屬性信息,這個屬性信息和mcu給wifi上報的屬性信息格式以及順序完全相同(在定義產(chǎn)品的時候就確定了),wifi可以根據(jù)需要設定控制屬性標志組合,用位表示,最右為第0位,最左為最高位,屬性順序和位順序?qū),將想控制的屬性對應的位?,表示要控制該屬性;
2)本產(chǎn)品中,可以控制的屬性依次有:LED R值、LED G值、電機轉(zhuǎn)速三個屬性;
3)可以單獨控制一個屬性,比如單獨設定LED R值,此時為0x01, 用位描述是0000 0001;
4)也可以一次控制多個屬性,比如同事設定LED R值和G值,此時為03,用位描述是0000 0011;
5)或者同時設定LED R值、G值以及電機轉(zhuǎn)速,此時為0x07,用位描述是0000 0111;
6)此字段的長度根據(jù)定義產(chǎn)品時的可寫屬性個數(shù)自動確定,本產(chǎn)品共有3個可寫屬性,一個字節(jié)即可表示,若定義9個可寫屬性,則自動用2個字節(jié)表示,依次類推;
MCU收到控制命令后的響應
完整的數(shù)據(jù)包:FF FF 00 05 04 04 00 00 0d
拆分:
FF FF        包頭
00 05        長度
04            mcu響應wifi的命令
04            序號,與wifi發(fā)出的數(shù)據(jù)包中的sn相同
00 00        標志位,保持0即可
0d            校驗碼
1.9.4.設定LED的G值
完整的協(xié)議包:FF FF 00 0d 03 04 00 00 01 02 CC AA 00 00 00 00 8C
拆分:
FF FF        包頭
00 0d        長度
03            wifi向mcu發(fā)送數(shù)據(jù)的命令
04            序號
00 00        標志位,保持0即可
01            控制類命令
02            控制屬性標志組合,02表示第二個屬性值有效
CC AA 00 00 00 00    屬性數(shù)據(jù)
8D            校驗值,從長度到校驗和前的字節(jié)相加值
MCU收到控制命令后的響應
同上
1.9.5.設定電機轉(zhuǎn)速
完整的協(xié)議包:FF FF 00 0d 03 04 00 00 01 03 00 00 00 10 00 00 28
拆分:
FF FF        包頭
00 0d        長度
03            wifi向mcu發(fā)送數(shù)據(jù)的命令
04            序號
00 00        標志位,保持0即可
01            控制類命令
03            控制屬性標志組合,03表示第三個屬性值有效
00 00 01 00 00 00    屬性數(shù)據(jù)
28            校驗值,從長度到校驗和前的字節(jié)相加值
MCU收到控制命令后的響應
同上
1.9.6.MCU主動上報狀態(tài)
完整的協(xié)議包:FF FF 00 10 05 01 00 00 04 AA BB 00 01 01 23 A4
拆分:
FF FF        包頭
00 0C        長度
05            mcu主動給wifi發(fā)送數(shù)據(jù)的命令
01            序號
00 00        標志位,保持0即可
04            mcu上報狀態(tài)
AA BB 00 01 01 23    完整的屬性數(shù)據(jù)
A4            校驗值,從長度到校驗和前的字節(jié)相加值
WIFI收到后的響應
完整的協(xié)議包:FF FF 00 05 06 01 00 00 0c
拆分:
FF FF         包頭
00 05        長度
06            wifi響應mcu的數(shù)據(jù)命令
01            序號,和mcu發(fā)出的數(shù)據(jù)包中sn相同
00 00        標志位,保持0即可
0c            校驗碼
2.以GoKit為例,開發(fā)新產(chǎn)品
如果您想做自己的更復雜的產(chǎn)品,可以仿照小狗寵物屋的方法,先確定產(chǎn)品功能,再依靠某個模板建立數(shù)據(jù)模型,然后用虛擬設備或者實體設備進行調(diào)試,協(xié)議和寵物屋類似;只要您定義清楚了設備,就自動生成了虛擬設備和測試APP,并且可以連接M2M平臺進行調(diào)試;當然如果您有硬件并且試用了我們Gagent模塊,馬上就可以用SDK以及demo App進行實體設備的配置、發(fā)現(xiàn)、大小循環(huán)控制。

   


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表