智能家居系统地实现

本系统主要由以下几部分组成:openwrt,一些传感器,一盏灯,ios app,android app

我负责的部分是服务器的部分,可能比较偏重于服务器的实现,但是尽可能全面性地介绍整个系统的实现。

服务器最终要跑在openwrt上,配置是 nginx + fastcgi + php  + mysql

  1. openwrt 是一个嵌入式的linux系统,专门针对于无线路由的实现(如果实现的好就可以超越小米盒子的功能)

    服务器就是跑在这个上面的。

    关于我们的openwrt 的配置以及实现,我的队友的博客上有开发笔记,讲的很详细,您可以点击进入查看。

    http://www.cnblogs.com/double-win/

  2. (1) 选择语言

    服务器就是跑在openwrt上的,选择什么语言开发很关键。一开始我想选择python脚本语言,但是由于nginx服务器调用app,app是由uwsgi后台app服务器进行管理的,但是在openwrt软件源中找不到uwsgi安装包,如果自己要进行交叉编译的话,可能未来会有一些问题,因此放弃了。

    我们决定选择 php,现在的配置是 nginx + fastcgi + php  + mysql

    (2) 配置 nginx 服务器

    我们初步先在pc机上模拟服务器与手机端的通信,稍后会移植到openwrt上与网关以及硬件设备通信。

    在ubuntu上配置 nginx 服务器,这个我稍后会写一篇日志,链接稍后加上。

2.     数据同步:MQTT vs HTTP长连接

        MQTT 信息发布协议,是IBM开发的一个针对嵌入式传感器传输保证,低能耗,低内存的消息收发协议,很适合在openwrt上用。我们服务器“主动推送”消息到手机上采用该协议。它是一个应用包,可以直接用它的API进行开发。

        HTTP长连接,是手机端发http请求到服务端,在一定的时间内保持这个请求不关闭,之后的http通信可以通过这个请求,提高复用性。

 

你可能感兴趣的:(智能家居系统地实现)