【编者按】物联网就是物物相连的互联网,编者一直觉得物联网将会是有创客精神的程序员能够大展拳脚的领域。在属于创客们的盛会深圳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云计算微博联系我们。