人類的未來:透過THINGSPEAK網站監控居家亮度【轉譯】手工電子DIY教程
在家居生活中,亮度是保護我們眼睛最重要的靈藥,如果亮度不足,不但沒有安全感,對視力的保健更是一大殺手。我們如果在家裡看到這樣的情形,當然可以馬上調整光線,但是如果我們在外面上班,就不太容易查覺到這個隱藏的問題。
如果我們能夠用創客神器Arduino來照顧我們的眼睛,透過手機上網,直接使用瀏覽器監控我們家的亮度,那該有多好?所以本月我們要使用Arduiono,透過簡單的上網擴充卡,和網際網路中頂尖的物聯網平臺:ThingSpeak網站。
主要材料:
Arduino 開發板 | 太網路模組 |
電腦 |
製作步驟:
第1步:
ThingSpeak網站
ThingSpeak網站是一個專業的物聯網網站,可以利用這個網站先行開發。(若有不懂之處,可以參考網路資源和網站文章)該網站提供許多免費的資源,瞬間就讓我們的家庭進化成先進的智慧家庭。所以本篇要告訴大家,如何簡單、快速、有效的建立一個居家亮度監控的物聯網。
建立帳號
先到ThingSpeak網站建立帳號,進入網站後到主頁,先點選下圖紅框區,建立一個帳號(有帳號的讀者可以跳過本節)。
第2步:
先登入ThingSpeak網站後,依下圖紅框處,先行檢視目前的Channel。
第3步:
建立新Channel
進入網站後,選擇Channel區,由下圖紅框區所示,沒有任何東西,代表需要先行建立新的Channel。
第4步:
如由下圖紅框區所示,點選New Channel選單來建立新的Channel。
第5步:
下圖為建立新的Channel資訊的簡單介紹畫面。
第6步:
可以參考下圖紅框區,將必要的資訊填入。
第7步:
輸入資料後,將畫面卷軸拉至下方後,參考下圖紅框處,選Save Channel的選單,將此Channel存檔。
第8步:
由下圖所示,完成Channel建立後,可以看到這個Channel的畫面。
第9步:
取得Channel寫入金鑰
進入網站建立一個新的Channel之後,先點選下圖紅框區,檢視Channel的API Key的資料。
第10步:
由下圖紅框區處,可以看到本Channel寫入金鑰,本書示例是『UR42ZTYTE4PBQ8Y2』。
第11步:
實做亮度監控之物聯網
首先,組立W5100乙太網路模組是非常容易的一件事,如下圖所示,只要將W5100乙太網路模組堆疊到任何Arduino開發板之上就可以了。
第12步:
之後,再將組立好的W5100乙太網路模組(如下圖所示),只要將USB線插入Arduino開發板,再將RJ 45的網路線一端插入W5100乙太網路模組,另一端則插入可以上網的集線器(Switch HUB)的任何一個區域網介面(Lan Port)就可以了。為了取得亮度的值,作者使用 BH1750FVI 亮度模組來偵測亮度,可依照下表之 BH1750FVI 亮度模組接腳表,將 BH1750FVI 亮度模組接在 W5100 乙太網路模組堆疊卡之上。
第13步:
BH1750FVI 亮度模組接腳表:
第14步:
我們遵照前幾章所述,將 Arduino 開發板的驅動程式安裝好之後,開啟 Arduino 開發板的開發工具:Sketch IDE 整合開發軟體,攥寫一段程式,如下表所示之 ThingSpeak 之亮度監控程式,我們就可以讓 W5100 乙太網路模組堆疊卡變成一臺簡易的物聯網之亮度監控伺服器來運作了。
ThingSpeak 之亮度監控程式(範例原始碼網址):
Arduino_to_ThingSpeak (Arduino_to_ThingSpeak)
/*_to_ Arduino –> ThingSpeak Channel via Ethernet The ThingSpeak Client sketch is designed for the Arduino and Ethernet. This sketch updates a channel feed with an analog input reading via the ThingSpeak API () using HTTP POST. The Arduino uses DHCP and DNS for a simpler network setup. The sketch also includes a Watchdog / Reset function to make sure the
Arduino stays connected and/or regains connectivity after a network outage.
Use the Serial Monitor on the Arduino IDE to see verbose network feedback
and ThingSpeak connectivity status.
Getting Started with ThingSpeak:
* Sign Up for New User Account –
* Create a new Channel by selecting Channels and then Create New Channel
* Enter the Write API Key in this sketch under “ThingSpeak Settings"
Arduino Requirements:
* Arduino with Ethernet Shield or Arduino Ethernet
* Arduino 1.0+ IDE
Network Requirements:
* Ethernet port on Router
* DHCP enabled on Router
* Unique MAC Address for Arduino
Created: October 17, 2011 by Hans Scharler ()
Additional Credits:
Example sketches from Arduino team, Ethernet by Adrian McEwen
*/
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BH1750.h>
// Local Network Settings
byte mac[] = {
0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
};
IPAddress ip(192, 168, 30, 200);
IPAddress dnServer(168, 95, 1, 1);
// the router’s gateway address:
IPAddress gateway(192, 168, 30, 254);
// the subnet:
IPAddress subnet(255, 255, 255, 0);
// ThingSpeak Settings
byte server[] = { 184, 106, 153, 149 }; // IP Address for the ThingSpeak API
String writeAPIKey = “UR42ZTYTE4PBQ8Y2 “; // Write API Key for a ThingSpeak Channel
const int updateInterval = 30000; // Time interval in milliseconds to update ThingSpeak
EthernetClient client ;
// Variable Setup
long lastConnectionTime = 0;
boolean lastConnected = false;
int resetCounter = 0;
// Initialize Arduino Ethernet Client
BH1750 lightMeter;
void updateThingSpeak(String tsData)
{
if (ect(server, 80))
{
tln(“Connected to ThingSpeak…");
tln();
t(“POST /update HTTP/1.1n");
t(“Host: n");
t(“Connection: closen");
t(“X-THINGSPEAKAPIKEY: “+writeAPIKey+"n");
t(“Content-Type: application/x-www-form-urlencodedn");
t(“Content-Length: “);
t(th());
t(“nn");
t(tsData);
lastConnectionTime = millis();
resetCounter = 0;
}
else
{
tln(“Connection Failed.");
tln();
resetCounter++;
if (resetCounter >=5 ) {resetEthernetShield();}
lastConnectionTime = millis();
}
}
void resetEthernetShield()
{
tln(“Resetting Ethernet Shield.");
tln();
();
delay(1000);
n(mac, ip, gateway, subnet);
delay(1000);
}
void setup()
{
// Start Serial for debugging on the Serial Monitor
n(9600);
n();
// Start Ethernet on Arduino
// start the Ethernet connection:
if (n(mac) == 0) {
tln(“Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
n(mac, ip, dnServer, gateway, subnet);
}
// give the Ethernet shield a second to initialize:
delay(1000);
tln(“connecting…");
}
//String analogValue0 = String(LightLevel(), DEC);
void loop()
{
String analogPin0 = String(analogRead(A0), DEC);
// Print Update Response to Serial Monitor
if (lable())
{
char c = ();
t(c);
}
// Disconnect from ThingSpeak
if (!ected() && lastConnected)
{
tln();
tln(“…disconnected.");
tln();
();
}
// Update ThingSpeak
if(!ected() && (millis() – lastConnectionTime > updateInterval))
{
updateThingSpeak(“field1="+analogPin0);
}
lastConnected = ected();
}
為了讓上述程式可以順利運做,依下圖黃色區將讀者取得的 ThingSpeak 寫入金鑰,填入自己的『ThingSpeak 寫入金鑰』,程式方能順利執行。
第15步:
如下圖所示,可以看到本次實驗-ThingSpeak之亮度監控程式結果畫面。
第16步:
由下圖紅框區處,可以查閱Channel寫入資料。讀者可以看到,我們已經成功將簡單的亮度監控伺服器的資料,送到ThinkSpeak物聯網平臺,並可以檢視資料。
第17步:
Import/Export Channel資料
進入網站後,先點選下圖紅框區,切換到Channel的資料。
第18步:
看到下圖紅框區,可以將ThinkSpeak上Channel的資料輸出到PC個人電腦。
第19步:
當按下上圖的『Download』圖示後,我們就可以看到該Channel的資料輸出成為CSV的資料,並由下圖所示,轉成CSV的資料在EXCEL顯示出來,透過EXCEL的任何操作,算出其統計資料或轉成圖表。
-
廢舊金屬零件DIY甲殼蟲汽車
印度藝術家哈日用2805件廢舊金屬零件製造的thinkblue甲殼蟲,其中包括800火花塞,200個瓶蓋,60個電子主機板,錄音帶,揚聲器,罐,鍵盤,打字機,以及其他數以百計的材料。這些廢料在藝術家腦中會被打散,成為一個個單獨的形狀、符號,再重新組裝而成,比如用音響喇叭做前大燈,用滑鼠來...
-
【向工匠情懷致敬】耗時29個月,手工電子DIY教程打造微型8缸發動機
來源:譯:開源雜誌主要材料:倉庫廢舊物所需工具:一臺老舊的普通機床電鑽製作步驟:第1步:向喬布斯致敬,向工匠情懷致敬,向耗時2年零5個月手工打造微型8缸發動機的大叔致敬!這款發動機大小隻有常規發動機的1/4,但樣子非常漂亮,其製作過程甚是坎坷和曲折,想必也只有工匠本身才...
-
變形金剛手提錄音機【轉譯】手工電子DIY教程
硬創邦丟丟分享主要材料:錄音機變形金剛(我的這款是原版的復刻版)一個控制晶片的立體聲揚聲器的音量控制和電源開關兩個很小的玩具型揚聲器焊料AAA電池盒所需工具:電烙鐵剝線鉗針嘴鉗剃刀刀片飛利浦螺絲刀熱熔膠槍製作步驟:第1步:自從我第一次看了變形金剛電影,錄音...
-
看圖小編帶你玩轉非洲Maker Faire【轉譯】手工電子DIY教程
非洲MakerFaire在12月的一個週末完美的收場。這場盛事在約翰尼斯堡的Sic-Bono科學中心舉辦。如下面的圖集所看到的,有OmarSoubra舉辦,作品豐富並有眾多參與者。【原址:】主要材料:非洲MakerFaire所需工具:非洲MakerFaire製作步驟:第1步:紙磚是一個簡單且充滿力量的設...
相關文章
- Midnight In The Pumpkin Patch by Kenny Francis
- Mustang Free In The Universe - Childhood Painting by Dawn Senior-Trask
- 室內設計師Jessica Helgerson作品集:White Brick Mediterranean
- 德國版畫工作室之Workshop "Screen Printing
- The Pink House With Green Shutters by Jan Matson
- Spike The Dhog Comes Nose To Nose With A Painted Turtle by Anne Gifford
- Gopher Eating The Kerits - Fantasy by Linda Rae Cuthbertson
- Kindle PaperWhite電子書變磚修復記錄【轉譯】手工電子DIY教程
- Spike The Dhog Watches A Jumping Trout by Anne Gifford
- TOD’S新科女裝總監Alessandra Facchinetti 義大利居家風格