(一)——系統(tǒng)組成

2018-02-24 15:43 更新

原文出處:https://www.phodal.com/blog/bare-minimum-iot-system-structure/

關(guān)于物聯(lián)網(wǎng)

物聯(lián)網(wǎng)(Internet of Things,縮寫IOT)是一個基于互聯(lián)網(wǎng)、傳統(tǒng)電信網(wǎng)等信息承載體,讓所有能夠被獨(dú)立尋址的普通物理對象實(shí)現(xiàn)互聯(lián)互通的網(wǎng)絡(luò)。

物聯(lián)網(wǎng)一般為無線網(wǎng),由于每個人周圍的設(shè)備可以達(dá)到一千至五千個,所以物聯(lián)網(wǎng)可能要包含500萬億至一千萬億個物體,在物聯(lián)網(wǎng)上,每個人都可以應(yīng)用電子標(biāo)簽將真實(shí)的物體上網(wǎng)聯(lián)結(jié),在物聯(lián)網(wǎng)上都可以查找出它們的具體位置。通過物聯(lián)網(wǎng)可以用中心計算機(jī)對機(jī)器、設(shè)備、人員進(jìn)行集中管理、控制,也可以對家庭設(shè)備、汽車進(jìn)行遙控,以及搜尋位置、防止物品被盜等各種應(yīng)用。

簡單的來說 Internet是一個由計算機(jī)組成的網(wǎng)絡(luò),那么物聯(lián)網(wǎng)就是一個由物體(Things)組成的網(wǎng)絡(luò),只不過其依賴于Internet,是Internet的一部分。

最小物聯(lián)網(wǎng)系統(tǒng)

這個也就是我們要討論的主題了,我們要做的最小物聯(lián)網(wǎng)系統(tǒng)其實(shí)也就相當(dāng)于是一個平臺。我們可以上傳我們各種物體的信息,同時給予這些物體一些屬性,我們也可以通過網(wǎng)絡(luò)來控制這些物體,而他們之間也可以相互控制。因此,我們需要給他們提供一個網(wǎng)絡(luò),這就是RESTful的由來。

所以我們也稍微了解一下RESTful吧。

RESTful

REST 從資源的角度來觀察整個網(wǎng)絡(luò),分布在各處的資源由URI確定,而客戶端的應(yīng)用通過URI來獲取資源的表征。獲得這些表征致使這些應(yīng)用程序轉(zhuǎn)變了其狀態(tài)。隨著不斷獲取資源的表征,客戶端應(yīng)用不斷地在轉(zhuǎn)變著其狀態(tài),所謂表征狀態(tài)轉(zhuǎn)移(Representational State Transfer)。

我們的世界是由資源來組成的,一個物體也就相當(dāng)于是一個資源,以這種方式來構(gòu)建我們的物聯(lián)網(wǎng)系統(tǒng),在目前來說是再好不過的一個方案了。

REST架構(gòu)就是希望能夠統(tǒng)一這一類的Hypermedia Controls, 賦予他們標(biāo)準(zhǔn)的, 高度可擴(kuò)展的標(biāo)準(zhǔn)語義及表現(xiàn)形式, 使得甚至無人工干預(yù)的機(jī)器與機(jī)器間的通用交互協(xié)議邊的可能.

這個也就是我們的目的了,物聯(lián)網(wǎng)最后的核心就是使物體與物體之間的交互成為可能。

那么,這里也就解釋了為什么我們要用RESTful來做這個最小系統(tǒng)的原因了。

最小系統(tǒng)中的RESTful

例如,一個簡單的例子, 列舉所有物體狀態(tài),

GET http://localhost/athome

呈現(xiàn)某一特定狀態(tài),

GET http://localhost/athome/1/

剩下的部分這里就不多說了,多說無益,可以自己谷歌去。

接著我們要討論的就是系統(tǒng)框架

系統(tǒng)框架

IOT Struct

為什么是Raspberry PI

Raspberry Pi在這里只是充當(dāng)了數(shù)據(jù)的發(fā)送和接收,雖然我們可以直接將Raspberry PI作為控制的對象,但是將這個從中剝離來講清楚系統(tǒng)的結(jié)構(gòu)會更加簡單。從而,可以讓我們把核心注意力聚焦在要解決的問題上,也就是數(shù)據(jù)傳送,每個部分都可以簡單地從系統(tǒng)剝離出來,用另外的事物來替換。

為什么是Arduino

這個問題的答案和上面是一樣的,只是因?yàn)橛行└阄锫?lián)網(wǎng)是從軟件過來的,對于他們來說去理解端口的難道可能有點(diǎn)大。所以,我們在簡化系統(tǒng)設(shè)計的同時,也把系統(tǒng)的代碼簡化了。因?yàn)锳rduino足夠的簡單,我們可以關(guān)心問題的本質(zhì),而不是如何去編程。

為什么是Ajax

至于什么是Ajax,

AJAX即“Asynchronous JavaScript and XML”(異步的JavaScript與XML技術(shù)),指的是一套綜合了多項技術(shù)的瀏覽器端網(wǎng)頁開發(fā)技術(shù)。

這里的目的只是在于演示如何運(yùn)用這些數(shù)據(jù),使它具有他應(yīng)有的價值,而不在于技術(shù)本身。當(dāng)然ajax不是必需的,如果你需要的只是用來控制這個燈。

為什么是Laravel

只是因?yàn)閭€人喜愛,你也可以用Ruby On Rails來搭建這樣一個功能,或者是Java。只不過PHP在我的服務(wù)器上運(yùn)行得挺不錯的,而且我又不需要重新去寫配置那些配置。 同時Laravel可以簡單的開發(fā)我們所需要的功能,換句話說他是PHP世界的Ruby On Rails。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號