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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

手把手教你用單片機或arduino玩轉物聯(lián)網(wǎng)教程分為3篇1、物聯(lián)網(wǎng)公共服務平臺介紹篇用領域,使用范圍,還有一些案例和國際上發(fā)展的趨勢。平臺篇主要介紹如何注冊賬號,并進行測試性的嘗試。平臺動手篇A.如何用arduino+PC工具實現(xiàn)光照傳感器數(shù)據(jù)上傳和顯示。B.如何用arduino+Ethernetshield進行溫度數(shù)據(jù)的上傳和如何觸發(fā)email報警。

第一章物聯(lián)網(wǎng)公共服務平臺介紹召的物聯(lián)網(wǎng)應用,如IBM的智慧星球,Google的智能眼鏡,NASA的星球皮膚等等項目,都已經(jīng)逐漸獲取了市場和人們的認可。RFID制。能得出大概的系統(tǒng)架構設計可以分為如下三部分:1.傳感器硬件和接入互聯(lián)網(wǎng)的通信網(wǎng)關(負責將傳感器數(shù)據(jù)采集起來,發(fā)送到互聯(lián)網(wǎng)務。2.高性能的數(shù)據(jù)接入服務器和海量存儲。3.特定應用,處理結果展現(xiàn)服務。從物聯(lián)網(wǎng)的應用形態(tài)中,我們能看出,針對具體應用的不同,我們關心的傳感器數(shù)紅外燈傳感器的數(shù)據(jù),而對于海洋研究來說,就希望能夠讀取到特定海域的氣候信息,對制造風電的朋友,則希望能夠獲取設備的工作狀態(tài),所以,針對不同的業(yè)務類型,傳感器的需求可謂是千差萬別,而數(shù)據(jù)上傳的手段,根據(jù)對費用,便利程度幾乎任何一個典型的物聯(lián)網(wǎng)應用,都需要處理大量的數(shù)據(jù),這對服務器的設計提出了相當高的要求,第一,需要能夠同時承載數(shù)以萬計,乃至數(shù)十萬的同步網(wǎng)絡數(shù)據(jù)傳輸,就是首先要把這些數(shù)據(jù)收好;第二能夠將這些海量級的數(shù)據(jù),以一定的規(guī)則存儲好,在存的同時,還要考慮和解決數(shù)據(jù)取回的問題,舉例說,500個傳感器,以101數(shù)據(jù)的快速查詢和取回就變得極具挑戰(zhàn)性,除此之外,服務器還需要考慮解決安全性,可維護性,不間斷的服務能力等多種問題。數(shù)據(jù)的取回和展示也是一個非常關鍵的問題,隨著移動互聯(lián)網(wǎng)的興起,人們已經(jīng)不滿足僅僅從web瀏覽器去獲取數(shù)據(jù),更多的希望能從智能手機,平板電腦等媒介,便利的獲取信息,除了傳感器數(shù)據(jù)給人看之外,物聯(lián)網(wǎng)的傳感器數(shù)據(jù)還可以為遠程根據(jù)雞籠的文檔變化,自動調節(jié)恒溫系統(tǒng);辦公大樓根據(jù)大量光照傳感器的讀數(shù)和感知各個樓層的人數(shù),自動調整燈光系統(tǒng)的水平,這些都是典型的機器直接使用傳感器數(shù)據(jù)的例子。聯(lián)網(wǎng)項目的成功實施,有著非常關鍵的作用,所以,類如IBM,CISCO,HP等IT基百姓們卻除了膜拜無事可做。那么,除了國際巨頭之外,存不存在這樣的公司,他們自己完成物聯(lián)網(wǎng)服務平臺的主要基礎功能開發(fā),然后開放接口,為公眾,特別是具有一定電子或軟件知識的愛為人群重大的草根階層量身設計的物聯(lián)網(wǎng)公共服務平臺已經(jīng)逐漸出現(xiàn),幾個國際上規(guī)模比較大的平臺有Scinan,Arrayent,COSM/Pachube等,國其中cosm是目前世界上用戶量最大的開放物聯(lián)網(wǎng)平臺,他提供了一系列的數(shù)據(jù)上傳手段,讓每個人都能通過簡單的開源硬件或者單片機,實現(xiàn)傳感器數(shù)據(jù)的上傳和存儲,還提供了一系夠使用android手機對傳感器設備進行識別,并自動將獲取的傳感器數(shù)據(jù)疊加到手圖一:COSM將多個傳感器的歷史數(shù)據(jù)反映到通一個WEB數(shù)據(jù)面板上圖二:增強現(xiàn)實(AR)技術講傳感器數(shù)據(jù)通過3D投影實時疊加到手機屏幕國內的平臺,是目前國內第一家對公眾開放的物聯(lián)網(wǎng)公共服務平臺,目yeelink平臺和如何使用它來完成您的夢想。

第二章Yeelink平臺介紹Yeelink平臺的設計目的,就是要成為物聯(lián)網(wǎng)世界的開放服務提供商,完成對傳感器數(shù)據(jù)的接入管理,數(shù)據(jù)存儲,以及將數(shù)據(jù)隨時顯示給客戶。開放和運先從技術層面上,來分析一下為何Yeelink具備這種提供高性能物聯(lián)網(wǎng)服務的能力。首先3000Cosm的平均值是的post易通過增加機器擴充容量,在理念的實現(xiàn)上,Yeelink采用了Node.js這一比較流行的前段同樣大量使用服務器系統(tǒng)和前段可以以同一種語言調試,大大提高了解決問題的速度。數(shù)據(jù)接入以后,在解決數(shù)據(jù)的存儲方面,Yeelink使用了Hadoop這個分布式處理框做出大量的優(yōu)化工作,使得系統(tǒng)能夠非常穩(wěn)定健壯的提供數(shù)據(jù)存儲的優(yōu)質服務。在對用戶的數(shù)據(jù)獲取手段的支持上,我們使用了基于RESTful架構的開放API體系,通過統(tǒng)一的webservice,使得用戶在取回和管理自己的傳感器數(shù)據(jù)時,界面非常友好和簡單,可以使用各種語言實現(xiàn)客戶端系統(tǒng),這樣很很方便在當前的移動智能應提供的界面組件的實現(xiàn)速度,特有的win7桌面Widget,和論壇插件,博客插件,能夠方便的將您的傳感器數(shù)據(jù),共享到社交網(wǎng)絡。到閾值的時候,自動觸發(fā)類似電信API如短消息,語言電話,彩信等應用,也能按照您所定制的數(shù)據(jù)類型,向指定的其他設備轉發(fā)控制信息,從而方便的實現(xiàn)M2M資料,就能輕松實現(xiàn)。如何通過網(wǎng)頁模擬傳感器數(shù)據(jù)來對yeelink話,整個測試過程,無需編寫任何代碼,也不使用任何硬件系統(tǒng)。下面,我就簡單介紹一下,如何使用web瀏覽器進行開放平臺的使用測試:第一步:首先需要注冊用戶賬號和翻翻看)API了。行,注冊就是這么簡單就完成了。第三步:這時候,可以打開首頁的“登陸”按鈕,就能看到自己的賬號信息了。在出現(xiàn)用戶頁面后,填寫用戶和密碼即可完成登陸登陸之后,控制面板上出現(xiàn)了“用戶中心”,可以通過這個用戶中心來管理和查看自己的物聯(lián)網(wǎng)設備啦!在Yeelink平臺上,所有的用戶設備被分為兩類“設備”和“傳感器”?!霸O備”可以看做是一個傳感器的集合,他是一個具備處理能力和互聯(lián)網(wǎng)接入能力的網(wǎng)關設備,您的傳感器數(shù)據(jù),就是通過設備來接入物聯(lián)網(wǎng)的,在這里您可以將設備理解成您的arduino或者單片機板?!皞鞲衅鳌笨梢钥醋鍪亲罱K的節(jié)點,他代表了一種的采集數(shù)據(jù)內容,傳感器可以是和設備在一個單片機系統(tǒng)上,也可以是無線或有線的形式和單片機相連。點擊“用戶中心”后,可以首先增加一個物聯(lián)網(wǎng)設備:通過擊我設—“增新備:填好以后,直接保存,該設備就已經(jīng)準備好進行上傳數(shù)據(jù)和使用了。增加完畢新設備后,還需要再添置一個傳感器(因為一個設備可同時支持多個傳感器而感獲的則是們正心東了。添加完傳感器后,系統(tǒng)會自動生成一個圖標用來描述收集的數(shù)據(jù)以后,這個傳感器采集的數(shù)據(jù),都會以圖標的形式,展現(xiàn)在這里了。要完成數(shù)據(jù)的上傳,要進行如下操作:從上圖中,能看到“我的賬戶設置”里面,有屬于您的APIKEY,這個API是您的數(shù)據(jù)和其他人區(qū)分出來,務必請安全保存不要泄露。數(shù)據(jù)的上傳下面介紹如何上傳數(shù)據(jù):從這個圖中,我們能看到,這個傳感器的Device=8即設備號等于8,Sensor=12即傳感器號等于12,這也是該傳感器在服務器系統(tǒng)的唯一標示,我們上傳數(shù)據(jù)的時候,也是依靠這兩個ID和APIKEY進行數(shù)據(jù)的有效性驗證。根據(jù)API手冊,就需要發(fā)送POST到URL/v1.0/device/8/sensor/12/datapoints按照協(xié)議來說,需要發(fā)送如下數(shù)據(jù)到服務器:POSTBODY里面需要增加如下數(shù)據(jù):{“value”:340}這樣,就能把該傳感器的數(shù)據(jù)發(fā)送到服務器了,系統(tǒng)會自動拿當前時間作為標記,進行存儲。如果你是使用Curl進行測試,則需要這樣操作:命令行下面敲入:curl–requestPOST\--data‘{“value”:349}’\--headerU-ApiKey:您申請的API_KEY”\--verbose\/v1.0/device/8/sensor/12/datapoints以發(fā)送帶timestamp中所示,點擊SEND按鈕發(fā)送即可發(fā)送到了。如果多發(fā)送幾個點,回到傳感器的頁面,按F5鍵進行刷新,就能看到繪圖空間已經(jīng)幫您將數(shù)據(jù)點從數(shù)據(jù)庫取出并繪制成一個Flash的圖片了。怎么樣,是不是很簡單呢?下面我們談一下如何將數(shù)據(jù)從數(shù)據(jù)庫中取回數(shù)據(jù)的取回用如下的方法取回數(shù)據(jù)比如想取回我們剛才插入的所有數(shù)據(jù),可以發(fā)送GET到如下的URL:/v1.0/device/8/sensor/12/datapoint服務器會默認返回最新的一條數(shù)據(jù)記錄"{\"timestamp\":1337158055,\"value\":243}"如果希返某時段的據(jù)則以根據(jù)AI文檔完獲數(shù)的了。如何進行觸發(fā)規(guī)則的設定:僅僅把數(shù)據(jù)發(fā)送到服務器,從web頁面上看到圖片,是不是對你來說有點簡單啦?想要更多,沒問題,那就使用Yeelink強大的事件觸發(fā)引擎吧!定的動作,譬如說,溫度傳感器達到50度的時候,發(fā)送短信給你的手機號;PM2.5傳感器達到100的時候,自動給驅動窗戶的電機發(fā)送控制包關閉窗戶,顏色傳感器檢測到熱水器燒水開的綠燈亮后,發(fā)布微博到所有實驗室同學微博上等等。這些有趣的點子在Yeelink平臺上,都非常簡單。下面就舉例說明,如何設置一個簡單的Email觸發(fā)器吧。首先,我們假定這樣一個場景,假定要增加一個觸發(fā),讓傳感器數(shù)據(jù)達到600的時候,觸發(fā)一個郵件發(fā)送到你的信箱,需要如下操作1.點擊設備的名字2.點擊綠色的增加觸發(fā)按鈕,然后添加一個觸發(fā)動作即可3.這里我們添加一個,當光線傳感器的流明達到600的時候,自動發(fā)送電子郵件給自己就可以了,就是這么簡單,注意默認15分鐘內,郵件只會觸發(fā)一次哦。等你配置好后,就可以迅速的用上次提到的網(wǎng)頁測試工具試試吧!更多的通知方式,如短消息,語言電話,微博通知,還有其他的有趣功能會在后面逐一放出,敬請期待吧。第三章:Yeelink動手做平臺的功能和如何使用網(wǎng)頁來簡單的測試面就讓我們用電子愛好者都比較熟悉的開源硬件來進行實際的實驗吧。第一個實驗arduino/單片機+PC實現(xiàn)光照傳感器數(shù)據(jù)上傳和顯示實現(xiàn)首先從一塊arduino也適應于其他類似的單片機用戶,只要會使用串口操作,就能夠完成這個實驗。需要硬件:1.任一支持串口輸出的單片機(包括arduino)2.任一傳感器需要軟件:串口轉http軟件(yeelink開發(fā)并開放源碼目前僅提供windows版本)/dapingliu/serial_2_yeelink/blob/master/Serial2Yeelink/bin/Release/Serial2Yeelink.exe)實驗流程:1.在你的硬件上,將讀取到的傳感器數(shù)據(jù)作為字符串獨立一行打印出來,在行首加上”yeelink:”.比如在Arduino上使用Serial.print("yeelink:");Serial.println(value);2.運行yeelink串口工具,選擇與你硬件連接的串口和波特率,當然,還少不了要用線纜連起來:)3.登錄網(wǎng)站,進入用戶中心,在我的設備>>設備管理中找到即將要上傳的數(shù)據(jù)的傳感器,如果你還沒有添加,這里有上一章的Yeelink平臺使用手冊添加。將其中的URL復制到工具的上傳地址一欄。另外,從帳戶>>我的帳戶設置中找到APIKEY一欄。將其復制到工具的API-KEY中,然后點擊連接就可以打通串口到Yeelink服務器的通道了。至此,你的工作已經(jīng)完成了,程序會打印出log供你分析出現(xiàn)的問題。如果沒有異常,你應該會見到如前面主界面所示的結果。這時候,當你的硬件往串口上寫入數(shù)據(jù),本工具就會檢測到,并提取出來,然后上傳到y(tǒng)eelink上你指定的傳感器地址。結束語程序上傳的數(shù)據(jù)會在網(wǎng)頁上繪制出曲線圖,當你看到這樣的數(shù)據(jù)圖是是不是很激動呢。原本很復雜的過程現(xiàn)在變得如此簡單,沒錯,就是如此簡單。還猶豫什么,馬上試一試。第二個實驗arduino+Ethernetshield進行光強數(shù)據(jù)上傳和觸發(fā)Email報警。硬件需求Arduino主板Ethernet板BH1750光強傳感器模塊(你可以替換成自己的傳感器)硬件連接:電路Ethernet板和主板的插接略去。傳感器插接線:VCC-5vGND-GNDSCL-SCL(analogpin5)SDA-SDA(analogpin4)ADD-NC實驗過程,在連接好線路以后,下一步,就是講arduino連接到電腦上,并將下面我們給出的示例程序下載到arduino上,即可運行了。程序的代碼如下:*//Yeelink測試程序將光照傳感器的數(shù)據(jù)采集,并通過以太網(wǎng)卡,發(fā)送到Yeelink服務器上*/#include<SPI.h>#include<Ethernet.h>#include<Wire.h>#include<math.h>intBH1750address=0x23;bytebuff[2];//foryeelinkapi#defineAPIKEY "9cdf51696fa9ddfacdf819033a5f2f63"http://這里用您的yeelinkAPIkey替換#defineDEVICEID 4//這就是您yeelink網(wǎng)站上的設備號,請參見Yeelink平臺手冊獲取#defineSENSORID 7//這個更換成您的傳感器號碼,如何取得請參閱YeelinkreplaceyoursensorID//assignaMACaddressfortheethernetcontroller.bytemac[]={0x00,0x1D,0x72,0x82,0x35,0x9D};//initializethelibraryinstance:EthernetClientclient;//charserver[]=""; //yeelinkAPI的服務器名稱IPAddressserver(202,136,60,231); //這里填的是yeelink平臺的入口服務器IPunsignedlonglastConnectionTime=0; //上次連接到服務器的時間,毫秒booleanlastConnected=false; //上次連接狀態(tài)constunsignedlongpostingInterval=30*1000;//默認發(fā)送間隔30秒voidsetup(){Wire.begin();//startserialport:Serial.begin(57600);//starttheEthernetconnectionwithDHCP:if(Ethernet.begin(mac)==0){Serial.println("FailedtoconfigureEthernetusingDHCP");for(;;);}else{Serial.println("EthernetconfigurationOK");}}voidloop(){//ifthere'sincomingdatafromthenetconnection.//senditouttheserialport.Thisisfordebugging//purposesonly:if(client.available()){charc=client.read();Serial.print(c);}//ifthere'snonetconnection,buttherewasonelasttime//throughtheloop,thenstoptheclient:if(!client.connected()&&lastConnected){Serial.println();Serial.println("disconnecting.");client.stop();}//ifyou'renotconnected,andtensecondshavepassedsince//yourlastconnection,thenconnectagainandsenddata:if(!client.connected()&&(millis()-lastConnectionTime>postingInterval)){//readsensordata,replacewithyourcodeintsensorReading=readLightSensor();//senddatatoserversendData(sensorReading);}//storethestateoftheconnectionfornexttimethrough//theloop:lastConnected=client.connected();}//thismethodmakesaHTTPconnectiontotheserver:voidsendData(intthisData){//ifthere'sasuccessfulconnection:if(client.connect(server,80)){Serial.println("connecting...");//sendtheHTTPPUTrequest: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("Accept:*");client.print("/");client.println("*");client.print("U-ApiKey:");client.println(APIKEY);client.print("Content-Length:");//calculatethelengthofthesensorreadinginbytes://8bytesfor{"value":}+numberofdigitsofthedata:intthisLength=10+getLength(thisData);client.println(thisLength);client.println("Content-Type:application/x-www-form-urlencoded");client.println("Connection:close");client.println();//here'stheactualcontentofthePUTrequest:client.print("{\"value\":");client.print(thisData);client.println("}");}else{//ifyoucouldn'tmakeaconnection:Serial.println("connectionfailed");Serial.println();Serial.println("disconnecting.");client.stop();}//notethetimethattheconnectionwasmadeorattempted:lastConnectionTime=millis();}//Thismethodcalculatesthenumberofdigitsinthe//sensorreading.SinceeachdigitoftheASCIIdecimal//representationisabyte,thenumberofdigitsequals//thenumberofbytes:

溫馨提示

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

評論

0/150

提交評論