手把手教你用單片機(jī)或arduino玩轉(zhuǎn)物聯(lián)網(wǎng)_第1頁
手把手教你用單片機(jī)或arduino玩轉(zhuǎn)物聯(lián)網(wǎng)_第2頁
手把手教你用單片機(jī)或arduino玩轉(zhuǎn)物聯(lián)網(wǎng)_第3頁
手把手教你用單片機(jī)或arduino玩轉(zhuǎn)物聯(lián)網(wǎng)_第4頁
手把手教你用單片機(jī)或arduino玩轉(zhuǎn)物聯(lián)網(wǎng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、手把手教你用單片機(jī)或arduino玩轉(zhuǎn)物聯(lián)網(wǎng)教程分為 3 篇1、物聯(lián)網(wǎng)公共服務(wù)平臺(tái)介紹篇主要內(nèi)容是介紹物聯(lián)網(wǎng)基本概念,組成,還有物聯(lián)網(wǎng)開放平臺(tái)的介紹,它的主要應(yīng) 用領(lǐng)域,使用范圍,還有一些案例和國(guó)際上發(fā)展的趨勢(shì)。2、Yeelink 平臺(tái)篇主要介紹 Yeelink 平臺(tái)的設(shè)計(jì)理念,使用的開發(fā)工具,系統(tǒng)架構(gòu),能夠提供的服務(wù), 如何注冊(cè)賬號(hào),并進(jìn)行測(cè)試性的嘗試。3、Yeelink 平臺(tái)動(dòng)手篇A. 如何用 arduino+PC 工具實(shí)現(xiàn)光照傳感器數(shù)據(jù)上傳和顯示。B. 如何用 arduino+Ethernet shield 進(jìn)行溫度數(shù)據(jù)的上傳和如何觸發(fā) email 報(bào)警。第一章 物聯(lián)網(wǎng)公共服務(wù)平臺(tái)介紹物

2、聯(lián)網(wǎng)理念如今已經(jīng)逐漸深入人心,并隨著傳感器技術(shù),通信技術(shù)和互聯(lián)網(wǎng)技術(shù)的 發(fā)展逐漸觸及到社會(huì)的每一個(gè)角落,物聯(lián)網(wǎng)存在的意義在于,它徹底改變了人與人 創(chuàng)造的機(jī)器世界和周邊環(huán)境的交流方式,從此,人們能夠更自由,更簡(jiǎn)單的獲取各 種各樣的信息,也更容易的與機(jī)器和進(jìn)行交互,甚至是讓機(jī)器與機(jī)器(M2M)之間, 建立通信和對(duì)話的橋梁,讓機(jī)器更好的為人類服務(wù)。隨著物聯(lián)網(wǎng)主機(jī)進(jìn)入大數(shù)據(jù)(Big Data)時(shí)代,通過對(duì)海量的傳感器數(shù)據(jù)進(jìn)行存儲(chǔ),并提取有價(jià)值的信息和形成模型, 對(duì)科研,城市管理,自然科學(xué)等方面研究,都有著重要的意義。一些大型公司所號(hào) 召的物聯(lián)網(wǎng)應(yīng)用,如 IBM 的智慧星球,Google 的智能眼鏡,N

3、ASA 的星球皮膚等等 項(xiàng)目,都已經(jīng)逐漸獲取了市場(chǎng)和人們的認(rèn)可。那物聯(lián)網(wǎng)具體有哪些表現(xiàn)形式,他又能為人們提供哪些方面的好處呢?最典型的應(yīng) 用,就是使用 RFID 或者二維碼標(biāo)簽,對(duì)各種各樣的物體進(jìn)行唯一性的標(biāo)示,使得物 品從生產(chǎn)和銷售,回收流程中,能夠被自始至終的監(jiān)控,譬如對(duì)農(nóng)產(chǎn)品的產(chǎn)地進(jìn)行 精確回溯,對(duì)生產(chǎn)機(jī)械的制造和運(yùn)行進(jìn)行監(jiān)控,這樣除了能夠?qū)Ξa(chǎn)品的質(zhì)量問題快 速定位外,還賦予了用戶增加更多的能力,比如遠(yuǎn)程對(duì)機(jī)械的工作情況采集甚至控 制。一個(gè)典型意義的物聯(lián)網(wǎng)應(yīng)用,一般要完成傳感器數(shù)據(jù)的采集,存儲(chǔ),和數(shù)據(jù)的加工 和處理這三項(xiàng)工作,舉例來說,對(duì)于駕駛員,希望獲取去目的地的路途上的路況, 為了完

4、成這個(gè)目標(biāo),就需要有大量的交通流量傳感器對(duì)幾個(gè)可能路線上的車流和天 氣狀況進(jìn)行實(shí)時(shí)的采集,并存儲(chǔ)到集中的路況處理服務(wù)器,應(yīng)用在服務(wù)器上通過適 當(dāng)?shù)乃惴?,從而得出大概的到達(dá)時(shí)間, 并將處理的結(jié)果展示給駕駛員。所以,我們 能得出大概的系統(tǒng)架構(gòu)設(shè)計(jì)可以分為如下三部分:1.傳感器硬件和接入互聯(lián)網(wǎng)的通信網(wǎng)關(guān)(負(fù)責(zé)將傳感器數(shù)據(jù)采集起來,發(fā)送到互聯(lián)網(wǎng)服務(wù)器)。2. 高性能的數(shù)據(jù)接入服務(wù)器和海量存儲(chǔ)。3. 特定應(yīng)用,處理結(jié)果展現(xiàn)服務(wù)。從物聯(lián)網(wǎng)的應(yīng)用形態(tài)中,我們能看出,針對(duì)具體應(yīng)用的不同,我們關(guān)心的傳感器數(shù) 據(jù)是各有不同的,譬如,對(duì)安防應(yīng)用來說,我們希望能夠讀取到家庭里布置的門磁, 紅外燈傳感器的數(shù)據(jù),而對(duì)于海

5、洋研究來說,就希望能夠讀取到特定海域的氣候信 息,對(duì)制造風(fēng)電的朋友,則希望能夠獲取設(shè)備的工作狀態(tài),所以,針對(duì)不同的業(yè)務(wù) 類型,傳感器的需求可謂是千差萬別,而數(shù)據(jù)上傳的手段,根據(jù)對(duì)費(fèi)用,便利程度 的要求不同,有 GPRS,wifi,網(wǎng)線,工業(yè)總線等等多種選擇,差別的比較大。在我們成功采集到傳感器數(shù)據(jù)后,需要解決的另外一個(gè)問題就是傳感器數(shù)據(jù)的存儲(chǔ), 幾乎任何一個(gè)典型的物聯(lián)網(wǎng)應(yīng)用,都需要處理大量的數(shù)據(jù),這對(duì)服務(wù)器的設(shè)計(jì)提出 了相當(dāng)高的要求,第一,需要能夠同時(shí)承載數(shù)以萬計(jì),乃至數(shù)十萬的同步網(wǎng)絡(luò)數(shù)據(jù) 傳輸,就是首先要把這些數(shù)據(jù)收好;第二能夠?qū)⑦@些海量級(jí)的數(shù)據(jù),以一定的規(guī)則 存儲(chǔ)好,在存的同時(shí),還要考慮和

6、解決數(shù)據(jù)取回的問題,舉例說,500 個(gè)傳感器, 以 10 秒一條的速度上數(shù)據(jù),在 1 年能夠達(dá)到上億條的數(shù)據(jù)記錄,這時(shí)候,如何實(shí)現(xiàn) 數(shù)據(jù)的快速查詢和取回就變得極具挑戰(zhàn)性,除此之外,服務(wù)器還需要考慮解決安全 性,可維護(hù)性,不間斷的服務(wù)能力等多種問題。數(shù)據(jù)的取回和展示也是一個(gè)非常關(guān)鍵的問題,隨著移動(dòng)互聯(lián)網(wǎng)的興起,人們已經(jīng)不 滿足僅僅從 web 瀏覽器去獲取數(shù)據(jù),更多的希望能從智能手機(jī),平板電腦等媒介, 便利的獲取信息,除了傳感器數(shù)據(jù)給人看之外,物聯(lián)網(wǎng)的傳感器數(shù)據(jù)還可以為遠(yuǎn)程 的機(jī)器或者設(shè)備直接獲取,并按照既定規(guī)則直接執(zhí)行相應(yīng)的動(dòng)作,譬如大型養(yǎng)雞場(chǎng), 根據(jù)雞籠的文檔變化,自動(dòng)調(diào)節(jié)恒溫系統(tǒng);辦公大樓根

7、據(jù)大量光照傳感器的讀數(shù)和 感知各個(gè)樓層的人數(shù),自動(dòng)調(diào)整燈光系統(tǒng)的水平,這些都是典型的機(jī)器直接使用傳 感器數(shù)據(jù)的例子。從上面的介紹我們能看出,盡管存在著形形色色的物聯(lián)網(wǎng)應(yīng)用,但是它們都需要有 一個(gè)基于互聯(lián)網(wǎng)的平臺(tái)加以支撐,而這個(gè)平臺(tái)的穩(wěn)定性,可靠性,易用性,對(duì)該物 聯(lián)網(wǎng)項(xiàng)目的成功實(shí)施,有著非常關(guān)鍵的作用,所以,類如 IBM,CISCO,HP 等 IT 基 礎(chǔ)設(shè)施和解決方案提供商,包括國(guó)內(nèi)的一些科技行業(yè)巨頭和科研院所,都提出了各 種各樣的平臺(tái)方案,利用云計(jì)算和云存儲(chǔ)的理念,解決上述的提到的服務(wù)共性問題; 但是遺憾的是,到目前為止,這些方案和解決思路都是封閉的,是為了解決特定問 題營(yíng)運(yùn)而生的,他們并

8、未向社會(huì)開放使用,好比天上的神仙,看起來很漂亮,但是 百姓們卻除了膜拜無事可做。那么,除了國(guó)際巨頭之外,存不存在這樣的公司,他們自己完成物聯(lián)網(wǎng)服務(wù)平臺(tái)的 主要基礎(chǔ)功能開發(fā),然后開放接口,為公眾,特別是具有一定電子或軟件知識(shí)的愛 好者或者中小企業(yè)服務(wù)呢?事實(shí)上,隨著世界上物聯(lián)網(wǎng)理念的逐漸普及和深入人心, 為人群重大的草根階層量身設(shè)計(jì)的物聯(lián)網(wǎng)公共服務(wù)平臺(tái)已經(jīng)逐漸出現(xiàn),幾個(gè)國(guó)際上 規(guī)模比較大的平臺(tái)有 Scinan,Arrayent, COSM/Pachube 等,國(guó)其中 cosm 是目前世 界上用戶量最大的開放物聯(lián)網(wǎng)平臺(tái),他提供了一系列的數(shù)據(jù)上傳手段,讓每個(gè)人都 能通過簡(jiǎn)單的開源硬件或者單片機(jī),實(shí)現(xiàn)

9、傳感器數(shù)據(jù)的上傳和存儲(chǔ),還提供了一系列的數(shù)據(jù)展現(xiàn)方式,比如 dashboard,用來按時(shí)間軸多個(gè)傳感器數(shù)據(jù)到一個(gè)同一個(gè)平 臺(tái)上(圖一),另外,通過和視頻識(shí)別技術(shù)和增強(qiáng)現(xiàn)實(shí)技術(shù),移動(dòng)應(yīng)用的結(jié)合,還能 夠使用 android 手機(jī)對(duì)傳感器設(shè)備進(jìn)行識(shí)別,并自動(dòng)將獲取的傳感器數(shù)據(jù)疊加到手 機(jī)顯示層上(圖二),是不是很神奇呢?圖一:COSM 將多個(gè)傳感器的歷史數(shù)據(jù)反映到通一個(gè) WEB 數(shù)據(jù)面板上圖二:增強(qiáng)現(xiàn)實(shí)(AR)技術(shù)講傳感器數(shù)據(jù)通過 3D 投影實(shí)時(shí)疊加到手機(jī)屏幕國(guó)內(nèi)的 平臺(tái),是目前國(guó)內(nèi)第一家對(duì)公眾開放的物聯(lián)網(wǎng)公共服務(wù)平臺(tái),目 標(biāo)是服務(wù)中國(guó)的物聯(lián)網(wǎng)愛好者,使得中小型的企業(yè)和電子愛好者們能夠非常簡(jiǎn)單的

10、使用物聯(lián)網(wǎng)平臺(tái),下面,我們將詳細(xì)的介紹一下 yeelink 平臺(tái)和如何使用它來完成您 的夢(mèng)想。第二章 Yeelink 平臺(tái)介紹Yeelink 平臺(tái)的設(shè)計(jì)目的,就是要成為物聯(lián)網(wǎng)世界的開放服務(wù)提供商,完成對(duì)傳感器 數(shù)據(jù)的接入管理,數(shù)據(jù)存儲(chǔ),以及將數(shù)據(jù)隨時(shí)顯示給客戶。為了解決上文中提到的物聯(lián)網(wǎng)服務(wù)器所必須解決的幾個(gè)關(guān)鍵問題,yeelink 開放和運(yùn) 維團(tuán)隊(duì)做了大量的工作,來保證可靠,安全,高質(zhì)量的提供物聯(lián)網(wǎng)公共服務(wù),下面,先從技術(shù)層面上,來分析一下為何 Yeelink 具備這種提供高性能物聯(lián)網(wǎng)服務(wù)的能力。首先 Yeelink 系統(tǒng)在設(shè)計(jì)之初,就充分考慮了超大并發(fā)接入的可能性。在設(shè)計(jì)接入服 務(wù)系統(tǒng)的時(shí)

11、候,參照新浪微博的標(biāo)準(zhǔn)(峰值 3000 條/秒,目前 Cosm 的平均值是 300 條/秒),Yeelink 基于團(tuán)隊(duì)多年在開發(fā)和維護(hù)電信級(jí)服務(wù)器的經(jīng)驗(yàn),進(jìn)行大量的設(shè)計(jì) 優(yōu)化,那就是,做到平臺(tái)與應(yīng)用服務(wù)的隔離,一個(gè) http 的 post 服務(wù),在經(jīng)過接入網(wǎng) 關(guān)的處理后,交給專門的服務(wù)模塊進(jìn)行處理,而一個(gè)完整的傳感器數(shù)據(jù)存儲(chǔ)操作, 由運(yùn)行在多個(gè)機(jī)器上的服務(wù)組件協(xié)同處理,有效的達(dá)到了負(fù)載上的均衡,而且很容 易通過增加機(jī)器擴(kuò)充容量,在理念的實(shí)現(xiàn)上,Yeelink 采用了 Node.js 這一比較流行 的開發(fā)語言用來提供傳感器接入服務(wù),隨著雅虎,微軟,Linkedin,和國(guó)內(nèi)的淘寶網(wǎng) 開始大量的采用

12、該技術(shù)開發(fā)項(xiàng)目,已經(jīng)證明了該技術(shù)在處理高并發(fā),實(shí)時(shí)性和開發(fā) 速度上的卓越優(yōu)勢(shì),同時(shí)由于 Yeelink 的前段同樣大量使用 Javascript,所以在調(diào)試時(shí) 服務(wù)器系統(tǒng)和前段可以以同一種語言調(diào)試,大大提高了解決問題的速度。數(shù)據(jù)接入以后,在解決數(shù)據(jù)的存儲(chǔ)方面,Yeelink 使用了 Hadoop 這個(gè)分布式處理框 架有針對(duì)性的搭建了一個(gè)高并發(fā),海量存儲(chǔ),高可擴(kuò)展性的云存儲(chǔ)服務(wù)中心,針對(duì) 傳感器數(shù)據(jù)在時(shí)間上具有連續(xù)性,數(shù)據(jù)插入時(shí)速度相對(duì)恒定,數(shù)據(jù)需要快速取回(展 示)等特點(diǎn),Yeelink 做出大量的優(yōu)化工作,使得系統(tǒng)能夠非常穩(wěn)定健壯的提供數(shù)據(jù) 存儲(chǔ)的優(yōu)質(zhì)服務(wù)。在對(duì)用戶的數(shù)據(jù)獲取手段的支持上,我

13、們使用了基于 RESTful 架構(gòu)的開放 API 體系, 通過統(tǒng)一的 web service,使得用戶在取回和管理自己的傳感器數(shù)據(jù)時(shí),界面非常友 好和簡(jiǎn)單,可以使用各種語言實(shí)現(xiàn)客戶端系統(tǒng),這樣很很方便在當(dāng)前的移動(dòng)智能應(yīng) 用流行的環(huán)境下,提供個(gè)性化服務(wù),不管是在 android,iOS 等操作系統(tǒng)上,使用 Yeelink 提供的界面組件 API,可以非??焖俚拇罱ㄆ饘儆谧约邯?dú)一無二的 APP,加速您想法 的實(shí)現(xiàn)速度,特有的 win7 桌面 Widget,和論壇插件,博客插件,能夠方便的將您 的傳感器數(shù)據(jù),共享到社交網(wǎng)絡(luò)。另外,除了完成數(shù)據(jù)存儲(chǔ)工作外,通過 Yeelink 的數(shù)據(jù)事件引擎,傳感器數(shù)

14、據(jù)不再是 冰冷的節(jié)點(diǎn),我們考慮到您的需求,定制了大量的規(guī)則觸發(fā)應(yīng)用,譬如在傳感器達(dá) 到閾值的時(shí)候,自動(dòng)觸發(fā)類似電信 API 如短消息,語言電話,彩信等應(yīng)用,也能按 照您所定制的數(shù)據(jù)類型,向指定的其他設(shè)備轉(zhuǎn)發(fā)控制信息,從而方便的實(shí)現(xiàn) M2M 控制,更讓人興奮的是,實(shí)現(xiàn)這一切,無需任何編程,通過點(diǎn)擊網(wǎng)頁的按鈕和填寫 資料,就能輕松實(shí)現(xiàn)。了解了這么多,是不是想親自動(dòng)手試試 Yeelink 到底有多好玩呢?下面,我們就試試 如何通過網(wǎng)頁模擬傳感器數(shù)據(jù)來對(duì) yeelink 平臺(tái)進(jìn)行測(cè)試吧!是的,如果你能猜到的 話,整個(gè)測(cè)試過程,無需編寫任何代碼,也不使用任何硬件系統(tǒng)。下面,我就簡(jiǎn)單介紹一下,如何使用 w

15、eb 瀏覽器進(jìn)行開放平臺(tái)的使用測(cè)試: 第一步:首先需要注冊(cè)用戶注冊(cè)賬號(hào)后,注意填寫電子郵件部分,因?yàn)椋?cè)后,會(huì)自動(dòng)收到一封激活郵件,賬號(hào)和 API 只有在激活以后才能正常使用。(沒收到?可能需要去信箱的垃圾郵件那邊 翻翻看)第二步:通過點(diǎn)擊郵箱內(nèi)的連接,完成激活您的賬號(hào),這時(shí)就可以正常使用 API 了。 行,注冊(cè)就是這么簡(jiǎn)單就完成了。第三步:這時(shí)候,可以打開首頁的“登陸”按鈕,就能看到自己的賬號(hào)信息了。在出現(xiàn)用戶頁面后,填寫用戶和密碼即可完成登陸登陸之后,控制面板上出現(xiàn)了“用戶中心”,可以通過這個(gè)用戶中心來管理和查看 自己的物聯(lián)網(wǎng)設(shè)備啦!在 Yeelink 平臺(tái)上,所有的用戶設(shè)備被分為兩類

16、“設(shè)備”和“傳感器”。 “設(shè)備”可以看做是一個(gè)傳感器的集合,他是一個(gè)具備處理能力和互聯(lián)網(wǎng)接入能力的網(wǎng)關(guān)設(shè)備,您的傳感器數(shù)據(jù),就是通過設(shè)備來接入物聯(lián)網(wǎng)的,在這里您可以將設(shè)備理解成您的 arduino 或者單片機(jī)板。 “傳感器”可以看做是最終的節(jié)點(diǎn),他代表了一種的采集數(shù)據(jù)內(nèi)容,傳感器可以是和設(shè)備在一個(gè)單片機(jī)系統(tǒng)上,也可以是無線或有線的形式和單片機(jī)相連。 點(diǎn)擊“用戶中心”后,可以首先增加一個(gè)物聯(lián)網(wǎng)設(shè)備:通過點(diǎn)擊“我的設(shè)備”>“增加新設(shè)備”:填好以后,直接保存,該設(shè)備就已經(jīng)準(zhǔn)備好進(jìn)行上傳數(shù)據(jù)和使用了。 增加完畢新設(shè)備后,還需要再添置一個(gè)傳感器(因?yàn)橐粋€(gè)設(shè)備可同時(shí)支持多個(gè)傳感器),而傳感器獲取的數(shù)

17、據(jù)則是我們真正關(guān)心的東西了。添加完傳感器后,系統(tǒng)會(huì)自動(dòng)生成一個(gè)圖標(biāo)用來描述收集的數(shù)據(jù)以后,這個(gè)傳感器采集的數(shù)據(jù),都會(huì)以圖標(biāo)的形式,展現(xiàn)在這里了。 要完成數(shù)據(jù)的上傳,要進(jìn)行如下操作:從上圖中,能看到“我的賬戶設(shè)置”里面,有屬于您的 API KEY,這個(gè) API key 能夠 是您的數(shù)據(jù)和其他人區(qū)分出來,務(wù)必請(qǐng)安全保存不要泄露。數(shù)據(jù)的上傳下面介紹如何上傳數(shù)據(jù):從這個(gè)圖中,我們能看到,這個(gè)傳感器的 Device=8 即設(shè)備號(hào)等于 8, Sensor = 12 即傳感器號(hào)等于 12, 這也是該傳感器在服務(wù)器系統(tǒng)的唯一標(biāo)示,我們上傳數(shù)據(jù)的時(shí)候, 也是依靠這兩個(gè) ID 和 API KEY 進(jìn)行數(shù)據(jù)的有效性

18、驗(yàn)證。根據(jù) API 手冊(cè),就需要發(fā)送 POST 到 URL按照協(xié)議來說,需要發(fā)送如下數(shù)據(jù)到服務(wù)器:POST BODY 里面需要增加如下數(shù)據(jù):“value”:340這樣,就能把該傳感器的數(shù)據(jù)發(fā)送到服務(wù)器了,系統(tǒng)會(huì)自動(dòng)拿當(dāng)前時(shí)間作為標(biāo)記,進(jìn)行 存儲(chǔ)。如果你是使用 Curl 進(jìn)行測(cè)試,則需要這樣操作: 命令行下面敲入:curl request POST -data “value”:349 -header U-ApiKey: 您申請(qǐng)的 API_KEY” -verbose 默認(rèn)服務(wù)器將以服務(wù)器的當(dāng)前時(shí)間對(duì)該數(shù)據(jù)進(jìn)行存儲(chǔ),如果您對(duì)時(shí)間有特別的要求,可 以發(fā)送帶 timestamp 的數(shù)據(jù)給服務(wù)器,如果沒有

19、,則服務(wù)器會(huì)自動(dòng)分配一個(gè)時(shí)間,格式如圖 中所示,點(diǎn)擊 SEND 按鈕發(fā)送即可發(fā)送到 Yeelink 了。如果多發(fā)送幾個(gè)點(diǎn),回到傳感器的頁面,按 F5 鍵進(jìn)行刷新,就能看到繪圖空間已經(jīng)幫您將 數(shù)據(jù)點(diǎn)從數(shù)據(jù)庫(kù)取出并繪制成一個(gè) Flash 的圖片了。怎么樣,是不是很簡(jiǎn)單呢?下面我們談一下如何將數(shù)據(jù)從數(shù)據(jù)庫(kù)中取回?cái)?shù)據(jù)的取回用如下的方法取回?cái)?shù)據(jù)比如想取回我們剛才插入的所有數(shù)據(jù),可以發(fā)送 GET 到如下的 URL: 服務(wù)器會(huì)默認(rèn)返回最新的一條數(shù)據(jù)記錄""timestamp":1337158055,"value":243"如果是希望返回某個(gè)時(shí)間段的

20、數(shù)據(jù),則可以根據(jù) API 文檔,完成獲取數(shù)據(jù)的功能了。如何進(jìn)行觸發(fā)規(guī)則的設(shè)定:僅僅把數(shù)據(jù)發(fā)送到服務(wù)器,從 web 頁面上看到圖片,是不是對(duì)你來說有點(diǎn)簡(jiǎn)單啦? 想要更多,沒問題,那就使用 Yeelink 強(qiáng)大的事件觸發(fā)引擎吧!事件觸發(fā)引擎,被設(shè)計(jì)用來當(dāng)某個(gè)傳感器數(shù)據(jù)達(dá)到預(yù)設(shè)閾值的時(shí)候,觸發(fā)由用戶指 定的動(dòng)作,譬如說,溫度傳感器達(dá)到 50 度的時(shí)候,發(fā)送短信給你的手機(jī)號(hào);PM2.5傳感器達(dá)到 100 的時(shí)候,自動(dòng)給驅(qū)動(dòng)窗戶的電機(jī)發(fā)送控制包關(guān)閉窗戶,顏色傳感器檢測(cè)到熱水器燒水開的綠燈亮后,發(fā)布微博到所有實(shí)驗(yàn)室同學(xué)微博上等等。這些有 趣的點(diǎn)子在 Yeelink 平臺(tái)上,都非常簡(jiǎn)單。下面就舉例說明,如何

21、設(shè)置一個(gè)簡(jiǎn)單的 Email 觸發(fā)器吧。首先,我們假定這樣一個(gè)場(chǎng)景,假定要增加一個(gè)觸發(fā),讓傳感器數(shù)據(jù)達(dá)到 600 的時(shí) 候,觸發(fā)一個(gè)郵件發(fā)送到你的信箱,需要如下操作1. 點(diǎn)擊設(shè)備的名字2. 點(diǎn)擊綠色的增加觸發(fā)按鈕,然后添加一個(gè)觸發(fā)動(dòng)作即可3. 這里我們添加一個(gè),當(dāng)光線傳感器的流明達(dá)到 600 的時(shí)候,自動(dòng)發(fā)送電子郵件給自己就可以了,就是這么簡(jiǎn)單,注意默認(rèn) 15 分鐘內(nèi),郵件只會(huì)觸發(fā)一次哦。 等你配置好后,就可以迅速的用上次提到的網(wǎng)頁測(cè)試工具試試吧!更多的通知 方式,如短消息,語言電話,微博通知,還有其他的有趣功能會(huì)在后面逐一放 出,敬請(qǐng)期待吧。第三章:Yeelink 動(dòng)手做上面,我們都是在討論

22、Yeelink 平臺(tái)的功能和如何使用網(wǎng)頁來簡(jiǎn)單的測(cè)試 Yeelink,下 面就讓我們用電子愛好者都比較熟悉的開源硬件 Arduino,或者是你手邊上的單片機(jī), 來進(jìn)行實(shí)際的實(shí)驗(yàn)吧。第一個(gè)實(shí)驗(yàn) arduino/單片機(jī)+ PC 實(shí)現(xiàn)光照傳感器數(shù)據(jù)上傳和顯示實(shí)現(xiàn)首先從一塊 arduino 板和一種傳感器,通過電腦完成數(shù)據(jù)的上傳,這個(gè)最簡(jiǎn)單, 也適應(yīng)于其他類似的單片機(jī)用戶,只要會(huì)使用串口操作,就能夠完成這個(gè)實(shí)驗(yàn)。需要硬件:1.任一支持串口輸出的單片機(jī)(包括 arduino)2.任一傳感器需要軟件:串口轉(zhuǎn) http 軟件(yeelink 開發(fā)并開放源碼目前僅提供 windows 版本) Serial2Y

23、eelink.exe)實(shí)驗(yàn)流程:1. 在你的硬件上,將讀取到的傳感器數(shù)據(jù)作為字符串獨(dú)立一行打印出來,在行首加上”yeelink:”. 比如在 Arduino上使用Serial.print("yeelink:");Serial.println(value);2. 運(yùn)行 yeelink 串口工具,選擇與你硬件連接的串口和波特率,當(dāng)然,還少不了要用線纜連起來:)3. 登錄 網(wǎng)站,進(jìn)入用戶中心,在 我的設(shè)備 >> 設(shè)備管理 中找到即將要上傳的數(shù)據(jù)的傳感器,如果 你還沒有添加,這里有上一章的 Yeelink 平臺(tái)使用手冊(cè)添加。將其中的 URL 復(fù)制到工具的上傳地址一欄。另

24、外,從帳戶 >> 我的帳戶設(shè)置 中找到 API KEY 一欄。將其復(fù)制到工具的 API-KEY 中,然后點(diǎn)擊連接就可以 打通串口到 Yeelink 服務(wù)器的通道了。至此,你的工作已經(jīng)完成了,程序會(huì)打印出 log 供你分析出現(xiàn)的問題。如果沒有異常,你應(yīng)該會(huì)見到如前面主界 面所示的結(jié)果。這時(shí)候,當(dāng)你的硬件往串口上寫入數(shù)據(jù),本工具就會(huì)檢測(cè)到,并提取出來,然后上傳到 yeelink 上你指定的傳感器地址。結(jié)束語程序上傳的數(shù)據(jù)會(huì)在網(wǎng)頁上繪制出曲線圖,當(dāng)你看到這樣的數(shù)據(jù)圖是是不是很激動(dòng)呢。原本很復(fù)雜的過程現(xiàn)在變 得如此簡(jiǎn)單,沒錯(cuò),就是如此簡(jiǎn)單。還猶豫什么,馬上試一試。第二個(gè)實(shí)驗(yàn) arduino

25、+ Ethernet shield 進(jìn)行光強(qiáng)數(shù)據(jù)上傳和觸發(fā) Email 報(bào)警。硬件需求 Arduino 主板 Ethernet 板BH1750 光強(qiáng)傳感器模塊(你可以替換成自己的傳感器)硬件連接:電路Ethernet 板和主板的插接略去。 傳感器插接線:VCC-5v GND-GNDSCL-SCL(analog pin 5)SDA-SDA(analog pin 4) ADD-NC實(shí)驗(yàn)過程,在連接好線路以后,下一步,就是講 arduino 連接到電腦上,并將下面我們給出的 示例程序下載到 arduino 上,即可運(yùn)行了。程序的代碼如下:*/Yeelink 測(cè)試程序 將光照傳感器的數(shù)據(jù)采集,并通過以

26、太網(wǎng)卡,發(fā)送到 Yeelink 服務(wù)器上*/#include <SPI.h>#include <Ethernet.h>#include <Wire.h>#include <math.h>int BH1750address = 0x23;byte buff2;/ for yeelink api#define APIKEY"9cdf51696fa9ddfacdf819033a5f2f63" / 這里用您的 yeelink API key 替換#define DEVICEID4 / 這就是您 yeelink 網(wǎng)站上的設(shè)備號(hào),請(qǐng)參見

27、Yeelink 平臺(tái)手冊(cè)獲取#define SENSORID7 / 這個(gè)更換成您的傳感器號(hào)碼,如何取得請(qǐng)參閱 Yeelinkreplace your sensor ID/ assign a MAC address for the ethernet controller.byte mac = 0x00, 0x1D, 0x72, 0x82, 0x35, 0x9D;/ initialize the library instance:EthernetClient client;/char server = ""/ yeelink API 的服務(wù)器名稱IPAddress server

28、(202,136,60,231);/ 這里填的是 yeelink 平臺(tái)的入口服務(wù)器 IPunsigned long lastConnectionTime = 0;/ 上次連接到服務(wù)器的時(shí)間,毫秒boolean lastConnected = false;/ 上次連接狀態(tài)const unsigned long postingInterval = 30*1000; / 默認(rèn)發(fā)送間隔 30 秒void setup() Wire.begin();/ start serial port:Serial.begin(57600);/ start the Ethernet connection with DH

29、CP:if (Ethernet.begin(mac) = 0) Serial.println("Failed to configure Ethernet using DHCP");for(;);else Serial.println("Ethernet configuration OK");void loop() / if there's incoming data from the net connection./ send it out the serial port. This is for debugging/ purposes only

30、:if (client.available() char c = client.read();Serial.print(c);/ if there's no net connection, but there was one last time/ through the loop, then stop the client:if (!client.connected() && lastConnected) Serial.println();Serial.println("disconnecting.");client.stop();/ if you&

31、#39;re not connected, and ten seconds have passed since/ your last connection, then connect again and send data:if(!client.connected() && (millis() - lastConnectionTime > postingInterval) / read sensor data, replace with your codeint sensorReading = readLightSensor();/send data to servers

32、endData(sensorReading);/ store the state of the connection for next time through/ the loop:lastConnected = client.connected();/ this method makes a HTTP connection to the server:void sendData(int thisData) / if there's a successful connection:if (client.connect(server, 80) Serial.println("c

33、onnecting.");/ send the HTTP PUT request:client.print("POST /v1.0/device/");client.print(DEVICEID);client.print("/sensor/");client.print(SENSORID);client.print("/datapoints");client.println(" HTTP/1.1");client.println("Host: ");client.print(&quo

34、t;Accept: *");client.print("/");client.println("*");client.print("U-ApiKey: ");client.println(APIKEY);client.print("Content-Length: ");/ calculate the length of the sensor reading in bytes:/ 8 bytes for "value": + number of digits of the data:in

35、t thisLength = 10 + getLength(thisData);client.println(thisLength);client.println("Content-Type: application/x-www-form-urlencoded");client.println("Connection: close");client.println();/ here's the actual content of the PUT request:client.print(""value":");client.print(thisData);client.println("");else / if you couldn't make a connection:Serial.println("connection failed");Serial.println();Serial.println("disconnect

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論