物聯網開發硬體應用
Would you like to react to this message? Create an account in a few clicks or log in to continue.
物聯網開發硬體應用

提升國內高職學生物聯網開發硬體應用入門技術 待進入科技大學再升級為物聯網開發硬體設計人員


您沒有登錄。 請登錄註冊

MCS 上傳溫溼度到雲端

向下  內容 [第1頁(共1頁)]

1MCS 上傳溫溼度到雲端 Empty MCS 上傳溫溼度到雲端 周四 10月 19, 2017 9:43 pm

Admin


Admin

專案說明

使用 LinkIt 7697 + 溫溼度感測器,收集溫溼度資訊並上傳到 MCS 雲端顯示。

MCS 上傳溫溼度到雲端 09110
此範例主要是演示 顯示器通道 (Display Channel) 如何使用。請先詳讀 範例 C01, 了解基本 MCS 的基本概念, 本範例不再重複介紹。
硬體連接

可參考 B03. Grove 溫溼度感測器, 將溫溼度感測器連接到Grove 擴充版的連接埠 D2
雲端設定

在 MCS 建立一個原型 (Prototype),含有兩個 浮點數顯示通道 代表溫度和相對濕度,並使用這原型來創建一個使操作使用的測試裝置 (Test Device)

▼ 點選 創建 原型
MCS 上傳溫溼度到雲端 09210

▼ 幫原型取個名稱和版本。 硬體平台選擇 "LinkIt 7697", 產業和應用程式隨意選擇。 填完後按下 儲存

MCS 上傳溫溼度到雲端 09310

▼ 原型已創建成功, 點擊 詳情 進入

MCS 上傳溫溼度到雲端 09410
▼ 點擊 新增 來加入新的通道資料
MCS 上傳溫溼度到雲端 09510

▼ 新增 "顯示器型態" 的資料通道MCS 上傳溫溼度到雲端 09910


MCS 上傳溫溼度到雲端 09610

▼ 新增一個溫度的資料通道,幫此資料通道取個名稱(隨意), 並取一個 Id (此 Id 會用於程式中來控制此通道), 然後選擇 "整數" 的資料型態並選擇單位為 "攝氏"。 最後 儲存 此通道。
MCS 上傳溫溼度到雲端 09710

▼ 再新增一個相對溼度的資料通道, 選擇 "浮點數" 的資料型態並選擇單位為 "百分比"。 最後 儲存 此通道。
MCS 上傳溫溼度到雲端 09810
▼紅色圈圈為新增的兩個浮點數的 顯示通道, 紅色箭頭為這 資料通道 Id (會用在程式內)。 接下來就要用這原型創建一個測試裝置 (橘色箭頭)
MCS 上傳溫溼度到雲端 09911
▼幫這測試裝置取個裝置名稱, 並按下 創建
MCS 上傳溫溼度到雲端 091010
▼測試裝置新增完成, 畫面上的四個紅色箭頭所指的 "資料通道 Id", "DeviceId", "DeviceKey" 為之後開發板上軟體開發時會用到的重要資料

MCS 上傳溫溼度到雲端 091110

積木畫布

初始化
建立 Wi-Fi 連線, 連到 AP (Wi-Fi SSID 和密碼請填寫要連接 AP 的資料)
建立 MCS 連線, 填入 DeviceID 和 DevieKey, 和上面步驟建立的雲端 測試物件 做連接
新增兩個 "整數" "顯示控制通道" (Float DisplayChannel) 物件, 填入正確的 控制通道 Id

重複執行
第一步要加上 和 MCS 同步。 每次執行這一個積木, 程式會去和雲端做資料同步
將溫溼度傳感器的數值更新到雲端對應的顯示通道
嘗試去握著傳感器改變溫度, 或是吹氣改變濕度,可以觀察 MCS 控制台 上的數值在改變

MCS 上傳溫溼度到雲端 091210

產生出的 Arduino 程式如下
#include <LWiFi.h>
#include "MCS.h"
#include "DHT.h"

int t;
int h;

char _lwifi_ssid[] = "MediaTek_Labs";
char _lwifi_pass[] = "84149961";

MCSDevice mcs("Drsls7CQ", "kKUGahHDR5Hnp5Nn");
MCSDisplayInteger temp("temp");
MCSDisplayInteger humid("humid");

DHT __dht2(2, DHT22);

void setup()
{
Serial.begin(9600);

mcs.addChannel(temp);
mcs.addChannel(humid);
Serial.println("Wi-Fi 開始連線");
while (WiFi.begin(_lwifi_ssid, _lwifi_pass) != WL_CONNECTED) { delay(1000); }
Serial.println("Wi-Fi 連線成功");
while(!mcs.connected()) { mcs.connect(); }
Serial.println("MCS 連線成功");
Serial.begin(9600);
__dht2.begin();
}

void loop()
{
while (!mcs.connected()) {
mcs.connect();
if (mcs.connected()) { Serial.println("MCS 已重新連線"); }
}
mcs.process(100);

t = __dht2.readTemperature();
h = __dht2.readHumidity();
temp.set(t);
humid.set(h);

Serial.print("攝氏溫度 : ");
Serial.println(t);
Serial.print("相對溼度 :");
Serial.println(h);

delay(1000);
}


https://iotboard.666forum.com

回頂端  內容 [第1頁(共1頁)]

這個論壇的權限:
無法 在這個版面回復文章