物聯網無疑早已成為當今的一大主流領域,各大廠商都要在其中分一杯羹。中國移動以極快的速度推出了兩款開發板麒麟座與麒麟座mini,開發板使用的都是中國移動開放雲平臺OneNET為雲伺服器,為各種跨平臺物聯網應用、行業解決方案提供簡便的海量連接、雲端存儲、消息分發和大數據分析等優質服務,從而降低物聯網企業和個人(創客)的研發、運營和運維成本,使物聯網企業和個人(創客)更加專注於應用。
OneNET在物聯網中作為PaaS層,為SaaS層和IaaS層搭建連接橋梁,分別向上下遊提供中間層核心能力。
接下來就來看看其中一款功能全面的麒麟座開發板。包裝是比較中規中矩的,盒子上印有」中國移動」字樣。
別看包裝簡潔,但其中是很有料的,首先是開發板。
不要以為只有開發板,再看下面,電源、ST-Link仿真器,LCD、天線和排針。
開發板上的資源是很豐富的,傳感器各類很多,提供有兩種聯網方式。
MCU使用的是STM32F103,並有如下功能:GPRS、電源、WIFI、傾角傳感器、LCD屏、溫度傳感器、LED燈、按鍵、SWD接口、USB接口。
MCU採用的是ST的STM32F103RET6,LQFP64封裝,主頻72MHz,512KB FLASH,64K RAM,51通用IO口。
兩種聯網方式之一為ESP8266的WIFI模塊,通過無線wifi進行連接OneNET雲平臺。
還有一種方式,是通過M6311模塊。M6311是一款GSM模組提供可靠的M2M通信功能,同時M6311還支持java虛擬機,客戶可以在M6311上通過調用提供的接口函數,進行應用開發,實現非常豐富的功能。
M6311還配有一個外接的天線,目錄天線質量還是不錯的。
兩種方式通J10進行選擇。M側為使用M6311,E側為使用ESP8266。當寫程序時,要對應好,否則就烏龍了。
既然MCU採用的是STM32F103,那麼開發環境當然適用於Keil了,這還是非常普遍的第三方IDE工具,相信沒有網友是不會的吧,官方提供的例程都是在Keil下的。
以最簡單的OneNET_Demo_ESP8266_EDP_Led例程為例,來了解連接OneNet平臺的過程。使用Keil打開工程。進行一次編譯。
工程沒有問題,那麼先把工程放到一邊,看一下OneNET接入過程,大致如下:
那麼就按照上面的步驟進行了,沒有帳號可以註冊一個,我們打開OneNet的開發者中心進行登陸。
登陸後,我們選擇右側的「創建產品」,在產品中可以添加設備,這個設備就是我們的開發板了,所以這個「產品」是一個開始。
產品名稱、產品行業、產品類別、當前產品進度、產品簡介、作業系統、網絡運營商之類的可以按自己的需求進行填寫,但是協議要填寫正確,是EDP協議。
點擊「確定」後,就可以看到我們新創建的產品了。這裡有一個API Key,每個產品都有一個唯一的API Key,這個是很重要的,在STM32的程序中是要使用到的。
點擊這個產品,打開詳細的產品說明界面,其中那個APIKEY是很重要的。點擊「接入設備總數」上的圖標,添加設備。
在接入設備頁面,點擊下面的「立即接入設備」,添加一個設備,即我們的開發板。
這裡要輸入設備的名稱與鑑權信息。
點擊「接入設備」後,就會有設備的概要信息,這裡有一個設備ID,也是很重要的一個值,在程序中也是會用到的。
只有設備還不夠的,還要在設備中添加數據流,就是我們要上傳的數據,雲平臺不就是要收集數據的麼,沒有數據,這一切都沒有意義。
注意一點,可能由於雲平臺更新了,現在數據流的ID最多是10個字符,但是在之前是不限制的。那麼只能更改為10個字符以內的名字ID了。
以上面的方法,添加四個數據流,對應於我們開發板上的4個LED燈。
雲平臺的配置也就告一段落了。我們回到Keil中的STM32的程序中。
更改esp8266.h中的以下宏定義。
在esp8266.c中有一個函數是GetSendBufer(),如下圖,需要注意下面標出的四個字符串。與我們在OneNet雲平臺上新建的數據流的名字是一樣的。這就是其對應關係。由於雲平臺對數據流ID的限制,而STM32的程序並沒有對應更改,所以要注意更改下。
更改完成後,將工程再編譯一下,連接好ST-Link,將程序燒寫進麒麟座開發板上的STM32F103晶片中。
此時,給開發板重新上電或是復位一下。等大約幾秒鐘的時間,只要連接到雲平臺後,開發板上的4個LED就被點亮了。
打開雲平臺上的設備,可以看到設備前有一個綠色的點燈亮起來了,這說明,我們的設備目前是在線狀態。
我們打開數據展示這一個標籤,可以看到已經有68條的數據上傳到了OneNet雲平臺了。
上面的數據展示可以看到上傳到雲平臺的數據,但是都只是數據而已,並不能表現出LED的直觀的狀態,那麼我們可以新建一個應用。如下是建應用時的彈出窗口,我們要輸入應用的名稱,選擇Logo,與應用描述。
新建後,右側的如下標誌進行編輯。
我們選擇開關的控制項,添加四個開關。另外,其他的控制還有文本、圖片、折線圖、儀錶盤、地圖、旋鈕、柱狀圖。
點擊一個開關,在右側會有一個配置欄,這裡要選擇設備與數據流,這裡的開關值設置要更改一下,否則開關狀態是相反的。
EDP命令這裡要在{}之間輸入程序中可以識別的命令。這個命令可以STM32的程序中找到。led.c文件。
那麼現在就可以將應用進行保存。打開預覽時,四個燈都是亮的,都是「ON」的狀態,下面我們點擊第四個燈,顯示命令已經發送後,一會兒,第4個開關就顯示為「OFF」的狀態。
對應看一下開發板,紅色LED已經滅了。
更多的例程以及資料可以查看中國移動的文檔中心,這裡不再一一說明了。
總結
使用過程中,要注意開發板與雲平臺協議要選擇一致,這樣兩都才能實現通信。我們這是試驗了EDP協議的通信過程,對於MQTT、HTTP等等協議都是類似的。由於中國移動提供了各個協議的例程,所以工程師是很容易與雲平臺進行連接的。中國移動的加入,無疑為物聯網之戰又添了一把火。好像網易了有進行智能硬體的相關項目,對於這樣的大的網絡公司的加入,對於整個物聯網的發展會有怎麼的影響呢?我們拭目以待!
全球限量版——「花瓶」GR-PEACH評測