![image](https://64.media.tumblr.com/89efbd0e89aafeb12ccc4b94c311bb7a/tumblr_inline_nwb2m77yIG1t2mjil_540.png)
作者:Kit Wan
在 Arduino 和 mbed 出現之前,製造物聯網和傳感裝置不是一個容易的工作;現在很容易買到此類硬件,那麼問題將是如何如何採集和分析物聯網數據。
本文將展示如何使用 DATA.SPARKFUN.COM 和 analog.io 的免費在線工具簡單的以 WIZnet 的 mbed 板來構建的一個物聯網平台,以半小時就打造一個展示辦公室濕度和溫度的華麗圖表。
我在這裡使用的硬件是 WIZnet 出品的 WIZwiki-W7500 為主板與 YwRobot 的 Easy Module Shield 為傳感器的子板。
![image](https://64.media.tumblr.com/5974208d2714a7bba6fc97655dd2a4f6/tumblr_inline_nw8vvcA93k1t2mjil_540.jpg)
上面的圖片是整個系統的結構
![image](https://64.media.tumblr.com/9e0fad770486f8c562026a447cf9b736/tumblr_inline_nw8rcv8n3R1t2mjil_540.jpg)
WIZnet 的 WIZwiki-W7500
![image](https://64.media.tumblr.com/dbcf8afc199712551d3a9310bf31aa98/tumblr_inline_nw8rg7Znms1t2mjil_540.jpg)
YwRobot 的 Easy Module Shield V1
傳感器是常見的 DHT11。
我們需要有一個雲服務來記錄傳感器數據流。在這裡,我們將使用 Sparkfun.com的免費服務。首先,到 data.sparkfun.com 註冊一個賬號。
![image](https://64.media.tumblr.com/afa0e922b74d70d21616a3817f547bba/tumblr_inline_nw8t4nFfeG1t2mjil_540.png)
按一下 CREATE
![image](https://64.media.tumblr.com/10acb5d45778cda23b0281cecdd2fafb/tumblr_inline_nw8vpyy26D1t2mjil_540.png)
填寫好信息,然後按 Save 鍵,遵循所有的步驟,你會看到下面的頁面。
![image](https://64.media.tumblr.com/54c8e5693510482c37ecc25f1ace5691/tumblr_inline_nw9a29GE7T1t2mjil_540.png)
公鑰 (Public Key) 、私鑰 (Private Key) 和刪除鍵 (Delete Key) 將如上產生。
軟件方面,如果想知道如何在 mbed 平台編譯程序詳細步驟,請參考 ARM mbed 快速入門指南。這裡使用的是 mbed.org 軟件庫 Data_Sparkfun_io 裡面已經包含了要來啟動的示例代碼需,只需要很少設定。
![image](https://64.media.tumblr.com/c3b82bc01372dca7192add92bc6a90a8/tumblr_inline_nw8sdsDPcy1t2mjil_540.png)
首先從 mbed 編譯器導入 Data_Sparkfun_io。
然後,打開 main.cpp
![image](https://64.media.tumblr.com/bb3a09387ea9ec0d2bb8ae5eaeb6d00d/tumblr_inline_nw8swajznJ1t2mjil_540.png)
main.cpp 可以如下修改。主要是貼上兩個鍵 (Key) 和修改 fieldNames1[] 如下:
char publicKey[] = “Your Public Key goes here”; //“insert_your_publicKey”
char privateKey[] = “Your Private Key goes here”; //“insert_your_privateKey”;
uint8_t NUM_FIELDS = 2;
char fieldNames1[] = “humidity”;
char fieldNames2[] = “temp”;
這個程序主要使用 DHCP 來獲得 IP 和建立網絡環境。然後,它會檢查按鈕 SW2 D3,如果按下按鈕,會發出的濕度和溫度到 data.sparkfun.com。
![image](https://64.media.tumblr.com/79a20192b1a9b8d37521bfa8135298cd/tumblr_inline_nwameboWrd1t2mjil_540.jpg)
此外,我們可以在串口終端檢查狀態或調試信息。由於我使用的是Mac,我使用串口終端軟件 SerialTools,這可以從App Store下載。
下面是在串行終端顯示資料的樣本:
![image](https://64.media.tumblr.com/765956f2f1f421adb53406d24e591b29/tumblr_inline_nw8vr8yymg1t2mjil_540.png)
如果按 SW2 D3 按鈕,一組數據將被發送,您可以從 Streams URL 看到。
![image](https://64.media.tumblr.com/f56698b57376b162eada1b094607f0c9/tumblr_inline_nwanfj2UIA1t2mjil_540.png)
下一步是導入數據流進去 analog.io。
![image](https://64.media.tumblr.com/65952681f680c6c2901acbfb691dcaa5/tumblr_inline_nwant2BNOl1t2mjil_540.png)
登錄 analog.io,如果你沒有帳戶請先按 Sign Up 註冊。
![image](https://64.media.tumblr.com/66160adef03fd675480dd1cb8833b41d/tumblr_inline_nwany2JN2U1t2mjil_540.png)
登錄後進入主界面內。
![image](https://64.media.tumblr.com/2a5c708c2f3c31c6cf805f8794a9594a/tumblr_inline_nwaydkl7b71t2mjil_540.png)
按“+ Import Stream” 按鈕。
![image](https://64.media.tumblr.com/7694905a8902780afbdcb9eb6d64a496/tumblr_inline_nwayovzUsA1t2mjil_540.png)
選擇 Sparkfun 為 主機(Host) 和輸入你的公鑰(Public Key)。
![image](https://64.media.tumblr.com/9ff08fd82913e5d4721248d2714764c4/tumblr_inline_nwb1qy6ng21t2mjil_540.png)
大功告成,現在你可以看到從物聯網設備中的數據繪製的圖表。
在這設置中,系統使用的是 D3 開關來進行環境參數(濕度和溫度)的採樣,我們可修改 main.ccp 以讀獲取開關狀態,並使用定時器等進行自動環境參數記錄。