久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【推薦教程1】W5100+arduino+樂(lè)聯(lián)網(wǎng)平臺(tái) 實(shí)現(xiàn)反向控制

 5ccampus 2019-03-14
W5100+arduino+樂(lè)聯(lián)網(wǎng)平臺(tái)實(shí)現(xiàn)反向控制
1 說(shuō)明
案例說(shuō)明:使用Arduino+W5100來(lái)實(shí)現(xiàn)一個(gè)樂(lè)聯(lián)網(wǎng)的應(yīng)用,即通過(guò)樂(lè)聯(lián)網(wǎng)手機(jī)App控制連接到Arduino+W5100上的LED的開(kāi)關(guān),。
硬件:Arduino UNO W5100 shield
APP:樂(lè)聯(lián)網(wǎng) APP open./home/sitecontent/ydkhd
系統(tǒng)平臺(tái):樂(lè)聯(lián)網(wǎng)開(kāi)放平臺(tái)
2 反向控制硬件連線
硬件連線如下圖,,將LED燈的兩個(gè)引腳線連接到Arduino轉(zhuǎn)接板上的端口6和7上面(端口是根據(jù)Arduino程序里面自己選擇定義的,如果選擇其它端口,,則硬件連線必須一致連接到相同端口上),。
 
3 Arduino模板程序獲得與修改
3.1 獲得arduino 代碼
樂(lè)聯(lián)網(wǎng)的相關(guān)Arduino代碼托管在Github上,地址https://github.com/lewei50/leweiclient,, 打開(kāi)鏈接,,點(diǎn)擊Zip下載按鈕,將名稱為master.zip的文件下載到本地,。
下載后解壓,,打開(kāi)你電腦里的Arduino IDE所在文件夾里的libraries文件夾,在里面新建一個(gè)leweiclient的文件夾,,將master壓縮包解壓縮后LeweiClient-master文件夾里的文件全部拷貝到這個(gè)文件夾里,。
3.2 修改usrkey
運(yùn)行Arduino.exe,在頂部菜單File—Examples—Leweiclient里面能看到control和upload,,打開(kāi)control即是反向控制的編程代碼,。
在執(zhí)行代碼前,首先需要到樂(lè)聯(lián)網(wǎng)(http://www./)上注冊(cè)用戶名和密碼,在主頁(yè)右上角有注冊(cè)按鈕,,點(diǎn)擊后填寫(xiě)賬號(hào),、密碼和郵箱以后,再登錄到郵箱里面激活賬號(hào)即可,。登錄進(jìn)入系統(tǒng)后,,通過(guò)點(diǎn)擊左邊管理菜單下“我的賬號(hào)”—“設(shè)置個(gè)人信息”里面可以看到你的userkey,這個(gè)userkey是每個(gè)用戶唯一的,。
如上圖,,這是第一處需要修改的地方將程序里面的define LW_USERKEY后面的數(shù)值改成你實(shí)際個(gè)人賬號(hào)的userkey
其它的變量基本不需要修改,,解釋如下:
LW_GATEWAY:樂(lè)聯(lián)網(wǎng)的配置的網(wǎng)關(guān)標(biāo)識(shí),;
MY_NAME:網(wǎng)關(guān)名稱;
MY_NAME:網(wǎng)關(guān)介紹,;
my_addr[50]:被控制的Arduino UNO板可以采取由無(wú)線路由器DHCP自動(dòng)分配IP地址的方式來(lái)獲取IP,,也可以采用手動(dòng)輸入的靜態(tài)的IP地址,如果采用靜態(tài)IP地址,,則這里輸入http://靜態(tài)IP地址/api,,如圖中,則表示靜態(tài)的IP地址為192.168.1.221,。
port:給Arduino UNO這個(gè)網(wǎng)絡(luò)終端分配的控制端口號(hào)(跨網(wǎng)絡(luò)控制時(shí)候有意義),;
程序中上面的代碼中,如果是“if 0”,,則表示不采用靜態(tài)IP地址的方式,,如果是“if 1”,則表示采用靜態(tài)IP地址,,則繼續(xù)執(zhí)行下面代碼,,解釋如下:
IPAddress myip:這里需要輸入手動(dòng)配置給Arduino UNO板的IP地址,與前面的my_addr[50]里的IP地址要保持一致,;
IPAddress dnsip:這里需要輸入與W5100相連接的路由器的DNS的IP地址,,查詢方法,,登錄進(jìn)入路由器配置界面,,查看WAN口狀態(tài)(不同廠商的路由器查詢方法不一致,,但都能看到WAN口狀態(tài))里面的DNS服務(wù)器選項(xiàng),。
IPAddress dnsip:這里需要輸入與W5100相連接的路由器的IP地址;
IPAddress gateway:這里需要輸入與W5100相連接的路由器的DNS的IP地址
3.3 選擇不同的控制方式
這里是第二處需要修改的地方,,下面看后面的這幾行代碼,,根據(jù)具體情況選擇網(wǎng)關(guān)注冊(cè)方式:
     lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY,MY_NAME, MY_DESC, my_addr, (LeWeiClient::flag)((LeWeiClient::isControlled)|(LeWeiClient::internetAvailable)));
   // lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY,MY_NAME, MY_DESC, my_addr, (LeWeiClient::flag)(LeWeiClient::isControlled));
// lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY,MY_NAME, MY_DESC, my_addr, (LeWeiClient::flag)(LeWeiClient::none));
   上面的代碼其中LW_USERKEY, LW_GATEWAY,MY_NAME, MY_DESC, my_addr等變量的定義前文已有敘述,。這里的三條語(yǔ)句分別適用于三種不同的場(chǎng)景:
3.3.1不設(shè)置控制的情況
如果設(shè)置網(wǎng)關(guān)不具備反向控制的功能的話,,則運(yùn)行下面語(yǔ)句,,其它語(yǔ)句可以注釋掉:
lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY,MY_NAME, MY_DESC, my_addr, (LeWeiClient::flag)(LeWeiClient::none)); 運(yùn)行程序后網(wǎng)關(guān)配置如下:                  
這就表示這種配置下的網(wǎng)關(guān)是不可控的,。
3.3.2手機(jī)與Arduino+W5100在同一網(wǎng)段下
如果控制的手機(jī)和Arduino+W5100的IP地址在同一網(wǎng)段下,則運(yùn)行下面的語(yǔ)句,,
lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY,MY_NAME, MY_DESC, my_addr, (LeWeiClient::flag)(LeWeiClient::isControlled));
LeWeiClient::isControlled:配置網(wǎng)關(guān)是可控的,;
設(shè)置后運(yùn)行該程序后,則在樂(lè)聯(lián)網(wǎng)的管理菜單“我的物聯(lián)網(wǎng)”的“我的網(wǎng)關(guān)列表”點(diǎn)擊“編輯”網(wǎng)關(guān)后里面可以看到網(wǎng)關(guān)的配置情況如下圖,,可以看到“是否可控”選項(xiàng)已經(jīng)勾選,,但是“公網(wǎng)訪問(wèn)”沒(méi)有勾選“允許”。
3.3.3手機(jī)與Arduino+W5100 跨網(wǎng)段
手機(jī)通過(guò)公網(wǎng)控制Arduino+W5100則需要運(yùn)行以下語(yǔ)句:
lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY,MY_NAME, MY_DESC, my_addr, (LeWeiClient::flag)((LeWeiClient::isControlled)|(LeWeiClient::internetAvailable)));其它語(yǔ)句注釋,,其中LeWeiClient::internetAvailable設(shè)置是否允許訪問(wèn)公網(wǎng),。運(yùn)行程序后網(wǎng)關(guān)配置如下:
需要說(shuō)明的是:如果想要實(shí)現(xiàn)跨網(wǎng)段控制,arduino+w5100接入的網(wǎng)絡(luò)路由器要有公網(wǎng)地址,,可以在路由器上面做到Arduino+W5100的NAT映射,。(聯(lián)通基本上符合條件,小區(qū)寬帶的用戶基本上都不符合要求),。NAT映射的設(shè)置需要在路由器配置界面里進(jìn)行配置(一般在“轉(zhuǎn)發(fā)規(guī)則”里的“虛擬服務(wù)器設(shè)置”),如下圖:
3.4 修改實(shí)際的應(yīng)用代碼
這是最后一處需要修改的地方,,紅色部分是我寫(xiě)的應(yīng)用代碼,,可以按照自己的應(yīng)用編寫(xiě)實(shí)際的代碼。
這里建立了兩個(gè)執(zhí)行器,,名稱分別為DADA2,。描述分別為dummy2 dummy1
dummy_act the_act("DA", "dummy actuator", "dummy2");
dummy_act the_act2("DA2", "dummy actuator", "dummy1");
class dummy_act: public LeWeiActuator 
{
   private:char led;  
   public: 
        dummy_act( 
                const char *id, 
                const char *type,  
                const char *name) : LeWeiActuator(id, type, name) 
    {}; 
        virtual bool updateValue(char* id,int val) 
        { 
            Serial.print("dev id = ");  
            Serial.println(id); 
            if(!strcmp(id,"DA"))
            {
              Serial.println("handle da routin"); 
             
              digitalWrite(ledPin_da, val);
            }
            if(!strcmp(id,"DA2"))
            {
              Serial.println("handle da2 routin"); 
                  digitalWrite(ledPin_da2, val);
            }
            Serial.print("update actuator "); 
            Serial.println(val); 
            led=val; 
            return val; 
        } 
        virtual bool getValue(int *val) 
        { 
            static int i = 0; 
            *val = led; 
            return true; 
        } 
}; 
3.5 通過(guò)app來(lái)控制arduino
下載樂(lè)聯(lián)網(wǎng)手機(jī)App:http://open./home/sitecontent/ydkhd
同一網(wǎng)段:
安裝后使用樂(lè)聯(lián)網(wǎng)的賬號(hào)密碼登錄進(jìn)去,,手機(jī)和Arduino+W5100在同一網(wǎng)段,,選擇反向控制,進(jìn)入反向控制界面,,App會(huì)自動(dòng)找到API地址(如果沒(méi)有手動(dòng)輸入也可以),,點(diǎn)擊右上角“查找可控設(shè)備”,則進(jìn)入控制界面,,如果你的LED燈已經(jīng)在Arduino板上連線好了,,就可以點(diǎn)擊可控設(shè)備列表的相關(guān)設(shè)備進(jìn)行LED亮滅控制了。  
               
不同網(wǎng)段:
3.6 通過(guò)web的控制arduino(需要跨網(wǎng)支持)
如果已經(jīng)可以完成app跨網(wǎng)段的控制,,可以再近一步進(jìn)行這個(gè)通過(guò)web控制arduino的實(shí)驗(yàn),。為后面制定階段性任務(wù)執(zhí)行打基礎(chǔ)(比如說(shuō)在web上面定義一個(gè)執(zhí)行計(jì)劃,每天6點(diǎn)關(guān)燈,,18點(diǎn)開(kāi)燈)
添加兩個(gè)控制設(shè)備,,縮寫(xiě)分別為DA 和 DA2(與前面建立的兩個(gè)執(zhí)行器縮寫(xiě)名一定要一致)
如果一切正常,設(shè)備應(yīng)該顯示在線狀態(tài)(已打開(kāi)或者已關(guān)閉)
4 結(jié)束語(yǔ)
以上介紹了樂(lè)聯(lián)網(wǎng)的反向控制Arduino的一個(gè)應(yīng)用,,希望能夠讓大家對(duì)樂(lè)聯(lián)網(wǎng)的物聯(lián)網(wǎng)應(yīng)用有更進(jìn)一步的了解,,并能借鑒這個(gè)應(yīng)用啟發(fā)您的思路,,一起在樂(lè)聯(lián)網(wǎng)上實(shí)現(xiàn)自己的各類(lèi)創(chuàng)意。后續(xù),,我們會(huì)推出通過(guò)數(shù)值的變化來(lái)控制設(shè)備實(shí)現(xiàn)不同的變化的更為復(fù)雜的控制方案,,盡請(qǐng)期待!
如果你需要更詳細(xì)的技術(shù)交流或者疑問(wèn)咨詢,,可以加入樂(lè)為物聯(lián)技術(shù)支持群:59162154,;
或關(guān)注樂(lè)為物聯(lián)新浪微博 @樂(lè)為物聯(lián);
或關(guān)注樂(lè)聯(lián)網(wǎng)微信:搜索公眾賬號(hào) “樂(lè)聯(lián)網(wǎng)”,?;蛘邟呙柘旅娴亩S碼來(lái)添加關(guān)注“樂(lè)聯(lián)網(wǎng)”。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多