欢迎光临haoDIY - DIY制作从这里开始!

diy音响功放音箱胆机电子单片机电脑科技小发明机器人制作_haoDIY

haodiy微信
当前位置: 主页 > 最新DIY >

人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

时间:2017-10-27 21:44来源:未知 作者:admin 点击:
在家居生活中,亮度是保护我们眼睛最重要的灵药,如果亮度不足,不但没有安全感,对视力的保健更是一大杀手。我们如果在家里看到这样的情形,当然可以马上调整光线,但是如果我们在外面上班,就不太容易查觉到这个隐藏的问题。 如果我们能够用创客神器Arduin
人类的未來:透過THINGSPEAK网站监控居家亮度【转译】
在家居生活中,亮度是保护我们眼睛最重要的灵药,如果亮度不足,不但没有安全感,对视力的保健更是一大杀手。我们如果在家里看到这样的情形,当然可以马上调整光线,但是如果我们在外面上班,就不太容易查觉到这个隐藏的问题。
如果我们能够用创客神器Arduino来照顾我们的眼睛,透过手机上网,直接使用浏览器监控我们家的亮度,那该有多好?所以本月我们要使用Arduiono,透过简单的上网扩充卡,和网际网络中顶尖的物联网平台:ThingSpeak网站。

主要材料

Arduino 開發板 太網路模組

所需工具

电脑

制作步骤

  • 第1步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    ThingSpeak网站
    ThingSpeak网站是一个专业的物联网网站,可以利用这个网站先行开发。(若有不懂之处,可以参考网路资源和网站文章)该网站提供许多免费的资源,瞬间就让我们的家庭进化成先进的智慧家庭。所以本篇要告诉大家,如何简单、快速、有效的建立一个居家亮度监控的物联网。

    建立帐号
    先到ThingSpeak网站建立帐号,进入网站后到主页,先点选下图红框区,建立一个帐号(有帐号的读者可以跳过本节)。

  • 第2步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    先登入ThingSpeak网站后,依下图红框处,先行查看目前的Channel。

  • 第3步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    创建新Channel
    进入网站后,选择Channel区,由下图红框区所示,没有任何东西,代表需要先行创建新的Channel。

  • 第4步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    如由下图红框区所示,点选New Channel菜单来创建新的Channel。

  • 第5步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    下图为创建新的Channel信息的简单介绍画面。

  • 第6步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    可以参考下图红框区,将必要的信息填入。

  • 第7步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    输入数据后,将画面卷轴拉至下方后,参考下图红框处,选Save Channel的菜单,将此Channel存盘。

  • 第8步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    由下图所示,完成Channel创建后,可以看到这个Channel的画面。

  • 第9步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    取得Channel写入密钥
    进入网站建立一个新的Channel之后,先点选下图红框区,查看Channel的API Key的数据。

  • 第10步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    由下图红框区处,可以看到本Channel写入密钥,本书示例是『UR42ZTYTE4PBQ8Y2』。

  • 第11步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    实做亮度监控之物联网
    首先,组立W5100以太网路模块是非常容易的一件事,如下图所示,只要将W5100以太网路模块堆叠到任何Arduino开发板之上就可以了。

  • 第12步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    之后,再将组立好的W5100以太网路模块(如下图所示),只要将USB线插入Arduino开发板,再将RJ 45的网路线一端插入W5100以太网路模块,另一端则插入可以上网的集线器(Switch HUB)的任何一个区域网接口(Lan Port)就可以了。為了取得亮度的值,作者使用 BH1750FVI 亮度模組來偵測亮度,可依照下表之 BH1750FVI 亮度模組接腳表,將 BH1750FVI 亮度模組接在 W5100 以太網路模組堆疊卡之上。

  • 第13步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    BH1750FVI 亮度模組接腳表:

  • 第14步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    我們遵照前幾章所述,將 Arduino 開發板的驅動程式安裝好之後,打開 Arduino 開發板的開發工具:Sketch IDE 整合開發軟體,攥寫一段程式,如下表所示之 ThingSpeak 之亮度監控程式,我們就可以讓 W5100 以太網路模組堆疊卡變成一台簡易的物聯網之亮度監控伺服器來運作了。

    ThingSpeak 之亮度監控程式(範例原始碼網址):

    Arduino_to_ThingSpeak (Arduino_to_ThingSpeak)
    /*https://github.com/iobridge/ThingSpeak-Arduino-Examples/blob/master/Ethernet/Arduino_to_ThingSpeak.ino 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 (https://thingspeak.com/docs) 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 – https://thingspeak.com/users/new

    * 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 (http://www.nothans.com)

    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 (client.connect(server, 80))

    {

    Serial.println(“Connected to ThingSpeak…");

    Serial.println();



    client.print(“POST /update HTTP/1.1\n");

    client.print(“Host: api.thingspeak.com\n");

    client.print(“Connection: close\n");

    client.print(“X-THINGSPEAKAPIKEY: “+writeAPIKey+"\n");

    client.print(“Content-Type: application/x-www-form-urlencoded\n");

    client.print(“Content-Length: “);

    client.print(tsData.length());

    client.print(“\n\n");
    client.print(tsData);



    lastConnectionTime = millis();



    resetCounter = 0;



    }

    else

    {

    Serial.println(“Connection Failed."); 

    Serial.println();



    resetCounter++;



    if (resetCounter >=5 ) {resetEthernetShield();}
    lastConnectionTime = millis();

    }

    }
    void resetEthernetShield()

    {

    Serial.println(“Resetting Ethernet Shield."); 

    Serial.println();



    client.stop();

    delay(1000);



    Ethernet.begin(mac, ip, gateway, subnet);

    delay(1000);

    }

    void setup()

    {

    // Start Serial for debugging on the Serial Monitor

    Serial.begin(9600);

    lightMeter.begin();

    // Start Ethernet on Arduino

    // start the Ethernet connection:

    if (Ethernet.begin(mac) == 0) {

    Serial.println(“Failed to configure Ethernet using DHCP");

    // no point in carrying on, so do nothing forevermore:

    // try to congifure using IP address instead of DHCP:

    Ethernet.begin(mac, ip, dnServer, gateway, subnet);
    }

    // give the Ethernet shield a second to initialize:

    delay(1000);

    Serial.println(“connecting…");



    }

    //String analogValue0 = String(lightMeter.readLightLevel(), DEC);

    void loop()

    {

    String analogPin0 = String(analogRead(A0), DEC);



    // Print Update Response to Serial Monitor

    if (client.available())

    {

    char c = client.read();

    Serial.print(c);

    }



    // Disconnect from ThingSpeak

    if (!client.connected() && lastConnected)

    {

    Serial.println();

    Serial.println(“…disconnected.");

    Serial.println();



    client.stop();

    }



    // Update ThingSpeak

    if(!client.connected() && (millis() – lastConnectionTime > updateInterval))

    {

    updateThingSpeak(“field1="+analogPin0);

    }



    lastConnected = client.connected();

    }

    為了讓上述程式可以順利運做,依下圖黃色區將讀者取得的 ThingSpeak 寫入金鑰,填入自己的『ThingSpeak 寫入金鑰』,程式方能順利執行。

  • 第15步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    如下图所示,可以看到本次实验-ThingSpeak之亮度监控程序结果画面。

  • 第16步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    由下图红框区处,可以查阅Channel写入数据。读者可以看到,我们已经成功将简单的亮度监控服务器的数据,送到ThinkSpeak物联网平台,并可以查看资料。

  • 第17步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    Import/Export Channel数据
    进入网站后,先点选下图红框区,切换到Channel的数据。

  • 第18步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    看到下图红框区,可以将ThinkSpeak上Channel的数据输出到PC个人电脑。

  • 第19步:

    人类的未來:透過THINGSPEAK网站监控居家亮度【转译】

    当按下上图的『Download』图标后,我们就可以看到该Channel的数据输出成为CSV的数据,并由下图所示,转成CSV的数据在EXCEL显示出来,透过EXCEL的任何操作,算出其统计数据或转成图表。


赞一下
(0)
0%
一般般
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片
栏目列表
推荐DIY