物聯網實務 大仁科技大學 資訊工程與娛樂科技系 李文禮
MT(MediaTek) Linkit 7697 Arduino IDE 安裝硬體驅動程式(控制台看的到 com port) V1.81以上 安裝硬體驅動程式(控制台看的到 com port) https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers 安裝SDK(工具 ->開發板看的到 板子名稱) 在 檔案->偏好設定->額外的開發板管理員網址 打入 http://download.labs.mediatek.com/package_mtk_linkit_7697_index.json 在 工具 ->開發板管理員->安裝 測試(檔案->範例->basic->blink)
Library 下載 LDHT 下載(溫濕度) 匯入 https://github.com/LinWeiTing/LDHT 草稿碼->匯入程式碼->加入ZIP程式庫 檔案->範例->LDHT-master->LDHT_Sensor
#include "LDHT.h" #define DHTPIN 4 // what pin we're connected to #define DHTTYPE DHT22 // using DHT11 sensor LDHT dht(DHTPIN,DHTTYPE); float tempC=0.0,tempF=0.0, humi=0.0; void setup() { Serial.begin(9600); dht.begin(); Serial.print("溫濕度感測器類型:"); Serial.print(DHTTYPE); Serial.println("\n"); }
void loop() { if(dht.read()) tempC = dht.readTemperature(); tempF = dht.readTemperature(false); humi = dht.readHumidity(); Serial.println("------------------------------"); Serial.print(”攝氏溫度= "); Serial.print(tempC); Serial.print(“ 華氏溫度 = "); Serial.print(tempF); Serial.print(“ 濕度 = "); Serial.print(humi ); Serial.println("%"); } delay(5000);
結果(工具->序列埠監控視窗)
Arduino 程式將感測資料傳送到 MCS 程式與資料通道之間傳送或接收資料
MCS上建立資料通道 先建立 原型 建立 第一個 data channel 資料通道 建立 第二個以上的 data channel 資料通道 先建立 原型 建立 第一個 data channel 資料通道 建立 第二個以上的 data channel 資料通道 建立 device Data channel 1 Data channel 1 Data channel 2 device Data channel 3 Data channel 4
傳送溫濕度資料到MCS網站 程式與資料通道 #include "MCS.h“ 定義名稱為 mcs 的MCS device變數 MCSDevice mcs(“MCS device_id", “MCS device key") 定義名稱為T 的顯示小數的資料通道變數 MCSDisplayFloat T(“資料通道 id"); 設定資料通道 T 為 device裡面的資料通道 mcs.addChannel(T); 連線到 MCS網站 mcs.connect() Return : true or false mcs.connected() Return : true or false 傳送資料 T.set(溫度值)
WiFi使用 #include <LWiFi.h> 連線到 基地台 WiFi.begin(_SSID, _KEY) Return WL_CONNECTED when connected to a network
#include "LDHT.h" #define DHTPIN 4 // what pin we're connected to #define DHTTYPE DHT22 // using DHT11 sensor LDHT dht(DHTPIN,DHTTYPE); float temperature=0.0, humidity=0.0; // WIFI #include <LWiFi.h> #include "MCS.h" #define _SSID "ASUS-7B48" #define _KEY "“ MCSDevice mcs("DXhQ9OYs", "cSLVEgOE5P5jju0V"); MCSDisplayFloat Temp("temperature_id"); MCSDisplayFloat Humi("humidity_id");
void setup() { Serial.begin(9600); dht.begin(); mcs.addChannel(Temp); mcs.addChannel(Humi); Serial.println("WIFI 連線開始"); //while (WiFi.begin(_SSID, _KEY) != WL_CONNECTED) { delay(2000); } while (WiFi.begin(_SSID) != WL_CONNECTED) { delay(2000); } Serial.println("WIFI 連線成功"); Serial.println("MCS 連線開始"); Serial.println("MCS 連線成功");while(!mcs.connected()) { mcs.connect(); } }
void loop() { while (!mcs.connected()) { mcs.connect(); if (mcs.connected()) { Serial.println("MCS 已重新連線"); } } mcs.process(100); if(dht.read()) temperature = dht.readTemperature(); humidity = dht.readHumidity(); Serial.println(temperature); Serial.println(humidity); Temp.set(temperature); Humi.set(humidity); delay(5000);