物联网系统设计方案——RESTful

上传人:宝路 文档编号:21958825 上传时间:2017-11-25 格式:DOC 页数:20 大小:117.85KB
返回 下载 相关 举报
物联网系统设计方案——RESTful_第1页
第1页 / 共20页
物联网系统设计方案——RESTful_第2页
第2页 / 共20页
物联网系统设计方案——RESTful_第3页
第3页 / 共20页
物联网系统设计方案——RESTful_第4页
第4页 / 共20页
物联网系统设计方案——RESTful_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《物联网系统设计方案——RESTful》由会员分享,可在线阅读,更多相关《物联网系统设计方案——RESTful(20页珍藏版)》请在金锄头文库上搜索。

1、关于物联网物联网(Internet of Things,缩写 IOT)是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。物联网一般为无线网,由于每个人周围的设备可以达到一千至五千个,所以物联网可能要包含500万亿至一千万亿个物体,在物联网上,每个人都可以应用电子标签将真实的物体上网联结,在物联网上都可以查找出它们的具体位置。通过物联网可以用中心计算机对机器、设备、人员进行集中管理、控制,也可以对家庭设备、汽车进行遥控,以及搜寻位置、防止物品被盗等各种应用。简单的来说 Internet 是一个由计算机组成的网络,那么物联网就是一个由物体(Things

2、)组成的网络,只不过其依赖于 Internet,是 Internet 的一部分。最小物联网系统这个也就是我们要讨论的主题了,我们要做的最小物联网系统其实也就相当于是一个平台。我们可以上传我们各种物体的信息,同时给予这些物体一些属性,我们也可以通过网络来控制这些物体,而他们之间也可以相互控制。因此,我们需要给他们提供一个网络,这就是 RESTful 的由来。所以我们也稍微了解一下 RESTful 吧。RESTfulREST 从资源的角度来观察整个网络,分布在各处的资源由 URI 确定,而客户端的应用通过 URI 来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,

3、客户端应用不断地在转变着其状态,所谓表征状态转移(Representational State Transfer) 。我们的世界是由资源来组成的,一个物体也就相当于是一个资源,以这种方式来构建我们的物联网系统,在目前来说是再好不过的一个方案了。REST 架构就是希望能够统一这一类的 Hypermedia Controls, 赋予他们标准的, 高度可扩展的标准语义及表现形式, 使得甚至无人工干预的机器与机器间的通用交互协议边的可能.这个也就是我们的目的了,物联网最后的核心就是使物体与物体之间的交互成为可能。那么,这里也就解释了为什么我们要用 RESTful 来做这个最小系统的原因了。最小系统中的

4、 RESTful例如,一个简单的例子, 列举所有物体状态,GET http:/localhost/athome呈现某一特定状态,GET http:/localhost/athome/1/剩下的部分这里就不多说了,多说无益,可以自己谷歌去。接着我们要讨论的就是系统框架系统框架为什么是 Raspberry PIRaspberry Pi 在这里只是充当了数据的发送和接收,虽然我们可以直接将 Raspberry PI 作为控制的对象,但是将这个从中剥离来讲清楚系统的结构会更加简单。从而,可以让我们把核心注意力聚焦在要解决的问题上,也就是数据传送,每个部分都可以简单地从系统剥离出来,用另外的事物来替换。

5、为什么是 Arduino这个问题的答案和上面是一样的,只是因为有些搞物联网是从软件过来的,对于他们来说去理解端口的难道可能有点大。所以,我们在简化系统设计的同时,也把系统的代码简化了。因为 Arduino 足够的简单,我们可以关心问题的本质,而不是如何去编程。为什么是 Ajax至于什么是 Ajax,AJAX 即“Asynchronous JavaScript and XML”(异步的 JavaScript 与 XML 技术) ,指的是一套综合了多项技术的浏览器端网页开发技术。这里的目的只是在于演示如何运用这些数据,使它具有他应有的价值,而不在于技术本身。当然 ajax 不是必需的,如果你需要的

6、只是用来控制这个灯。为什么是 Laravel只是因为个人喜爱,你也可以用 Ruby On Rails 来搭建这样一个功能,或者是 Java。只不过 PHP 在我的服务器上运行得挺不错的,而且我又不需要重新去写配置那些配置。 同时 Laravel 可以简单的开发我们所需要的功能,换句话说他是 PHP 世界的 Ruby On Rails。这里不会再重述之前的问题,这里只是将需要的步骤一个个写下来,然后丢到这里好好说一下。至于 RESTful 是什么,前面已经介绍了,就不再重复了。那么下面,我们就用Laravel 来搭建一个平台给物联网用的。安装 Laravel这个就比较简单了,不过在那之前你要有

7、git 以及安装了 php 环境,这个在 linux 上面比较好实现,可以用 Raspberry PI 或者是你的电脑来做这个,不一定用用上你的服务器。git clone https:/ clone 这个 git,如果你没有安装好 PHP,请安装好, and go on。cd laravellaravel 用到了 php 的包管理工具 composer,于是我们还需要用到 composer,与Laravel 相比也算是一个优雅的工具。curl -sS https:/getcomposer.org/installer | php这里推荐的是 linux 系统,如果你是*nix 都是可以的(ps:

8、mac os x 属于 unix 分支) ,除了 windows,所以如果是 windows,请直接下载Composer-Setup然后让我们安装所需要的那些包php composer.phar install当然这里用的是比较通用的,如果你是*nix,有支持可以直接composer install配置 MySQL这里并不会列举 MySQL 的安装方法,如果你是 openSUSE,可以zypper install mysql这个也可以,不过最近我尽量到迁移到 MariaDB 了。zypper install mariadb当然,最简单的方法是直接上官网。这里说的是修改 database.php

9、app/config/database.php要修改的就是这个mysql = array(driver = mysql,host = localhost,database = iot,username = root,password = 940217,charset = utf8,collation = utf8_unicode_ci,prefix = ,),如果你已经有 phpmyadmin,似乎对你来说已经很简单了,如果没有的话,就直接用mysql -uroot -p来创建一个新CREATE DATABASE IF NOT EXISTS bbs default charset utf8 C

10、OLLATE utf8_general_ci;数据库的目的在于存储数据等等的闲话这里就不多说了,创建一个 RESTful 的目的在于产生下面的 JSON 格式数据,以便于我们在 Android、Java、Python、jQuery 等语言框架或者平台上可以调用,最主要的是可以直接用 Ajax 来产生更炫目的效果。id: 1,temperature: 14,sensors1: 12,sensors2: 12,led1: 0数据库迁移这个名字是源自于 Ruby On Rails 在那时候的印象,不直接使用 MySQL 的目的在于让我们可以专注于过程。创建表表的概念,类似于在 Excel 中的表,如

11、果你真实不懂数据库。 让我们创建一个athomes 的表,为什么是 athomes,因为以前在写 android 程序的时候就叫的是athome,忽略掉这些将要的因素吧。php artisan migrate:make create_athomes_table打开 app/database/create_athomes_table.php 这里的 是由日期和某些东西组成的,修改生成的代码为下面。increments(id); $table-float(temperature); $table-float(sensors1); $table-float(sensors2); $table-boo

12、lean(led1); $table-timestamps(); ); public function down() Schema:drop(athomes); 意思大致就是 id 是自加的,也就是我们在 localhost/athome/id,当我们创建一个新的数据的时候,会自动加上去,最后一个 timestamps 批的是时间,会包含创建时间和修改时间。 剩下的 temperature,sensors1,sensors2是小数,以及只有真和假的 led1。数据库迁移我们只是写了我们需要的数据的格式而并没有丢到数据库里,php artisan migrate这个就是我们执行迁移的命令,如果你

13、用 phpmyadmin 可以直接打开查看,没有的话,可以。mysql -uroot -puse iot;select * from athomes;就可以看到我们写的东西,那么接下来就是创建 RESTful 服务了创建 RESTful用下面的代码实现我们称之为 Athomes 控制器的创建php artisan controller:make AthomesController就会在 app/controllers 下面生成下面的代码Laravel Resources上面的代码过于沉重,请让我用 Ctrl+C 来带来点知识吧。 。Verb Path Action Route NameGET

14、/resource index resource.indexGET /resource/create create resource.createPOST /resource store resource.storeGET /resource/resource show resource.showGET /resource/resource/edit edit resource.editPUT/PATCH/resource/resource update resource.updateDELETE /resource/resource destroy resource.destroy所以我们只

15、需要专注于创建 create,edit,show,destory,等等。好吧,你可能没有耐心了,但是在修改这个之前我们需要先在 app/model 加个 classathome = $athome ;public function index()$maxid=Athomes:all();return Response:json($maxid);/* * Show the form for creating a new resource.* return Response*/public function create()$maxid=Athomes:max(id);return View:make(athome.create)-with(maxid,$maxid);/* Store a newly created resource in storage.* return Response*/public function store()/ validate/ read more on validation at http:/ = array(led1=required,sensors1 = required|numeric|Min:-50|Max:80,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号