【編者按】物聯網就是物物相連的互聯網,編者一直覺得物聯網將會是有創客精神的程序員能夠大展拳腳的領域。在屬于創客們的盛會深圳Maker Faire即將舉辦之際,編者也為大家推薦一個關于物聯網的技術博客,博主黃峰達目前就職于ThoughtWorks,主要的研究方向是物聯網和數據可視化。黃峰達將自己的畢業設計成果開源,并將設計概要整理成為物聯網系統設計專欄,以下為專欄部分內容節選:
物聯網一般為無線網,由于每個人周圍的設備可以達到一千至五千個,所以物聯網可能要包含500萬億至一千萬億個物體,在物聯網上,每個人都可以應用電子標簽將真實的物體上網聯結,在物聯網上都可以查找出它們的具體位置。通過物聯網可以用中心計算機對機器、設備、人員進行集中管理、控制,也可以對家庭設備、汽車進行遙控,以及搜尋位置、防止物品被盜等各種應用。
簡單的來說Internet是一個由計算機組成的網絡,那么物聯網就是一個由物體(Things)組成的網絡,只不過其依賴于Internet,是Internet的一部分。
因為強調的是最小,BareMinimum,這也是為什么我沒有改Arduino上面的工程名的原因,因為它是最小的,(PS:大家都懂的,如果玩硬件)。物聯網,這個東西一直很復雜,也不是很復雜,只是從硬件到軟件涉及到的東西過多了,不止一點點。當然寫在本文的方案也有很多,不止這一個,只是這個算是基本的最小的,僅此而已。
我們的世界是由資源來組成的,一個物體也就相當于是一個資源,以這種方式來構建我們的物聯網系統,在目前來說是再好不過的一個方案了。
REST架構就是希望能夠統一這一類的Hypermedia Controls, 賦予他們標準的, 高度可擴展的標準語義及表現形式, 使得甚至無人工干預的機器與機器間的通用交互協議邊的可能。
這個也就是我們的目的了,物聯網最后的核心就是使物體與物體之間的交互成為可能。
那么,這里也就解釋了為什么我們要用RESTful來做這個最小系統的原因了。
GET http://localhost/athome
呈現某一特定狀態,
GET http://localhost/athome/1/
接著我們要討論的就是系統框架:
同時Laravel可以簡單的開發我們所需要的功能,換句話說他是PHP世界的Ruby On Rails。
源碼:https://github.com/gmszone/iot
首頁:http://iot.phodal.com/
文檔可能沒有足夠的詳細,因為剩下的部分都可以Google到,這里就不寫詳細了。
!請盡可能少我的用我的網站做測試
git clone https://github.com/gmszone/iot.git
cp iot/rest PATH_OF_HTDOCS/
創建一個新的數據庫,如iot,編輯 app/config/database.php
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'iot',
'username' => 'root',
'password' => ' ',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
配置Nginx,添加,詳細可參考Nginx下面的配置
# include /etc/nginx/includes/enforce_non_www;
if ($host ~* ^www.(.*))
{
set $host_without_www $1;
rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
}
# Check if file exists
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
測試
sudo python python/get.py
再根據需要修改端口,視真實的端口而修改。
物聯網系統設計專欄:
技術博客是學習新技術的渠道之一,他們的實踐經驗更有參考性,可讀性較高。CSDN及ITeye的博客匯集了大批的優秀博主,近期我們會挖掘冰山下蘊藏的巨大寶藏,讓這些作者的潛心研究浮出水面,惠及更多的技術愛好者。如果你也是云計算技術愛好者,有云計算相關技術經驗,并發表過數量不少、質量也不錯的技術文章,歡迎通過評論或@CSDN云計算微博聯系我們。