機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

本次教程為連載教程,教程將介紹如何從零去實現機智雲各類產品的開發。首先在正式進入教程之前,我們對機智雲物聯網平臺的構架進行介紹,從下圖我們可以看出,站在一個開發者的角度上來看,一般開發者只需要掌握設備接入,手機應用,企業應用三大部分即可,如果需要更多的服務,可以對數據進行雲分析以及處理,如D3 Engine,RTBD大數據,ECE霧計算等,同時可以通過產品互聯已對接Amazon Echo、Google home、天貓精靈、IFTTT、百度音箱、小愛音箱等第三方平臺,輕鬆配置。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

關於開發者如何根據自己的需求去選擇合適的單片機以及通訊模組,如果產品是在室外,周圍沒有wifi網絡的,可以選擇 移動網絡和NB方案,如果產品在室內使用,可以選擇wifi方案,如果產品是在室內使用,但是又不希望家裡面wifi模塊過多,可以採用網關wifi方案,同樣的室外可以選擇移動網絡網關方案。本次教程我們將對這些方案一一進行產品的開發介紹。

接下來我們將介紹獨立MCU方案和SOC方案。

1.獨立MCU方案:採用單片機加通訊模組構成,其中需要通訊模組支持GAgent固件,機智雲物聯網平臺目前開放固件的模組可以在機智雲下載中心,硬件開發資源,GAgent裡面查看https://download.gizwits.com/zh-cn/p/92/94

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

2.SOC方案:將樂鑫的esp8266作為單片機加通訊模組使用,可應用在一些對尺寸比較嚴格的環境當中,例如插座,球燈之內的產品中,但是由於其GPIO不是特別豐富,對於驅動彩屏之內的引腳就不夠用了,如果只是單純的開關輸出,也可以採用74HC595之類的擴展引腳,使其達到少引腳控制多輸出的效果。SOC方案集成了GAgent協議代碼,同時機智雲支持8Mbit,16Mbit,32Mbit的flash的ESP8266模組。

其餘的介紹我們將通過實際開發介紹去進行詳細講解。

首先,我們先來講一下如何在開發者中心創建一個合適自己的新產品,進入開發者中心

https://dev.gizwits.com/zh-cn/developer/product/,點擊右上角創建新產品

按鈕,將會進入產品創建頁面

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

產品分類,選擇最貼近自己產品的,選錯了也不會影響你的產品開發,此處以開發一個插排為例。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

產品名稱將會決定你的產品默認的名稱,包括APP綁定設備之後默認的顯示名稱。可以再通過綁定之後修改設備別名進行修改。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

技術方案,此處的選擇將會決定產品的通訊方式,以及數據傳輸方式和功耗等。

首先我們來介紹一下wifi/移動網絡方案,此方案為我們最常用的方案,

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

選擇通訊方式:在這個地方我們將會選擇我們的通訊模組,比如我們需要創建一個室內使用的wifi插座或者其他的wifi產品,那我們就選擇wifi方案,數據傳輸方式:(“定長”指在功能數據點上報下發時一併傳輸,“變長”指在功能數據點上報下發時指傳輸改變的功能數據點。比如一個燈有開關、亮度兩個功能數據點,觸發改變亮度這個功能時,定長是兩個功能數據點的狀態數據傳輸,變長則只會傳輸亮度這個功能數據點。兩者各有優勢,定長對於開發更方便,變長則更節省傳輸資源。)此處我的推介就是如果數據點過多就選擇變長,數據點不多就選擇定長。選擇功耗類型:此處如果不是特殊場合和產品儘量選擇正常。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

移動網絡:移動網絡和wif的區別在於一個使用移動網絡模塊上網作為數據傳輸(可選2G或者4G模塊,適合室外產品),一個用wifi模塊連接路由器進行聯網通訊。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

Nb-iot:此處需要注意,通訊網絡請選擇電信或者聯通,選擇移動網絡會導致設備無法刪除。命令下發模式:PSM(power saving mode):終端非業務期間深度休眠,不接收下行數據,只有 終端主動發送上行數據(MO Data)時可接收IoT平臺緩存的下行數據 ,適合對下行數據無時延要求的業務。DRX(Discontinuous Reception)
可以認為下行業務隨時可達終端設備,在每個DRX週期( 1.28s,2.56s,5.12s 或者10.24s ),終端都會檢測一次是否有下行業務到達,適用於對時延有高要求的業務。eDRX(extended Discontinuous Reception)
終端設備兼顧低功耗和對時延有一定要求的業務,在每個eDRX週期內,只有在設置的尋呼時間窗口內,終端可接收下行數據,其餘時間終端處於休眠狀態,不接收下行數據,該模式可在下行業務時延和功耗之間取得平衡。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

選擇合適自己的參數之後點擊保存,即可完成產品的創建。

接下來我們對開發頁面進行一一介紹,後續產品開發我將不在進行功能介紹,只作應用的介紹,所以對此部分需要進行了解,以及各個名詞的作用。

基本信息:產品名稱,產品類型,技術方案,通訊方式前面已經做了詳細介紹,此處不在累說明,Product Key:通常我們稱為PK,產品標識碼,一個32位字符串作為產品唯一識別號,這個標識碼是唯一的,作為產品區分用的,同時也會集成在協議裡面。Product Secret:通常我們稱為PS,機智雲物聯網平臺的產品授權的證明,用以確認用戶的身份和使用權限。請注意痴迷要不要隨意洩露。設備分享功能:開啟後,App才能使用設備分享的功能。需要注意的是,一旦開啟就不能關閉(默認關閉,如果需要打開,點擊基本信息頁面底部的修改進行修改)。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

數據點:數據點是一套機智雲設備通信協議,用於描述設備功能及其參數。點擊右上角創建數據點可以創建新的數據點

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

標識名:數據點及其參數傳輸時的變量名,支持英文字母,數值和下劃線,以英文字母開頭。

讀寫類型:只讀類型:用於設備狀態信息的查詢或主動上報,APP不能控制,可以用於APP不需要操作的數據點,比如設備溫度採集,溼度採集等;可寫類型:接受設備寫操作以改變,控制設備狀態,比如控制一個LED的開關,控制電機速度等;報警類型:當設備發生指定的狀態改變或者達到指定值時,上報報警信號,選擇此選項數據類型將只能選擇布爾值,注意此類型可用只讀布爾值代替;故障類型:當設備發生指定的狀態改變或者達到指定值時,上報故障信息,選擇此選項數據類型將只能選擇布爾值,注意此類型可用只讀布爾值代替。

數據類型:布爾值:值為正確或者錯誤,也就是0和1,可用於開關變量或者報警故障信號,比如一個繼電器開關,LED開關等;枚舉值:自定義的有限集合值,此數據點可用於設備狀態的顯示,比如要表示一個電機的5種狀態:高速運行,中速運行,低速運行,停止,故障,可以創建一個只讀枚舉類型,枚舉範圍為(高速運行,中速運行,低速運行,停止,故障)狀態之間用英文逗號分開,可寫類型舉例,比如要設置一個LED的顏色:紅,黃,綠,藍,紫,就可以創建一個可寫的枚舉類型,枚舉範圍(紅,黃,綠,藍,紫);擴展類型:二進制字符,可用於自定義數據類型或接入擴展元器件,可用於有數據點透傳非特殊情況不推介使用;數值型:比如採集一個溫度或者溼度就可以採用只讀數值類型,比如控制電機速度或者LED亮度,就可以使用可寫數值類型。數據範圍也就是數值的範圍,按需設置即可,分別率,將會決定小數的位數,如果設置0.01就是小數點後2位,0.1就是小數點後1位。1就是沒有小數點。有小數的時候位float類型,單片機內存比較小的慎用此類型。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

虛擬設備:通過虛擬設備模擬真實設備上報數據的行為,可以快速驗證接口功能的開發。在手上沒有設備的時候可以模擬設備和APP,openapi進行通訊,方便APP和其他控制頁面的開發。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

設備日誌:查看設備在線狀態以及是通訊數據

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

開發嚮導:MCU 開發資源:裡面包含了soc文檔以及MCU開發協議文檔,可以自行下載查看,此文檔是根據當前產品生成的。不可跨產品使用。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

APP開發資源和微信開發資源可自行查看。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

應用配置:創建應用時,系統會自動分配App ID與App Secret,在開發app或微信應用時,把App ID和AppSecret寫進去你的App和Web應用中,授權App控制設備。注意在開發web的時候需要用填寫安卓的APP ID。要使用apicloud開發需要創建安卓和蘋果應用,微信開發需要創建微信應用。點擊右上角添加新應用,填寫相關參數之後即可完成創建。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

綁定其他產品:綁定其它產品的應用是為了實現一個App可以控制多款產品的需求而必須進行的操作。例如公司Q有多個產品,分別是A、B、C,但他不想每個產品都單獨一個App,而是希望三個產品都用同一個app。現在提供了「綁定其它產品的應用」功能,選擇其中一個為中心,如產品A為中心,產品B與產品C綁定產品A,開發App時使用產品A的App ID就行。

應用開發:此處可以生成APP的源代碼,安卓(Ashe ES項目),蘋果,apicloud,需要提前在應用配置裡面創建應用,其中apicloud需要同時創建安卓應用和蘋果應用。選擇應用之後輸入PS(前面有介紹是啥玩意)即可生成代源代碼,可以直接編譯或者二次開發修改UI之後再編譯。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

生成代碼之後下載解壓即可。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

MCU開發:通過選擇您的硬件使用的方案指定類型,可以自動生成MCU開發過程中必須的代碼,從而實現不用學習通訊協議,快速開發硬件程序。

獨立MCU方案:也就是單片機加通訊模組方案,所以需要生成單片機代碼,比如我手上有一塊MSP430單片機,那麼就可以生成MSP430代碼。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

比如我手上有一塊STM32F103RBT6,就可以生成STM32F103C8x代碼,然後進行簡單修改或者不修改也可以直接使用,

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image045.jpg

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

假如我手上有一塊聯發科的單片機,在代碼裡面不能直接生成,那麼我們可以直接生成其他平臺代碼,按照通用代碼根目錄下面移植教程進行移植。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

加入我們是ESP8266單片機,就可以生成SOC方案,ESP8266代碼,內存請參考FLASH大小選擇設置。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

ESP8266常見的模組flash大小如下

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

輸入PS生成代碼包即可生成源代碼

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

固件升級:可以遠程對單片機(需要單片機支持,STM32F103參考http://docs.gizwits.com/zh-cn/UserManual/MCUOTA3.0.html)通訊模組的固件(ESP8266參考http://docs.gizwits.com/zh-cn/UserManual/OTA.html)進行升級。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

添加服務:根據自己的需求添加需要的功能,豐富產品的研發、管理和運營能力,部分收費。

機智雲產品開發入門到精通(一丶開發者應瞭解基本知識)

統計相關的模塊請在頁面看介紹,常用的前面已經介紹完畢。



分享到:


相關文章: