1、 摘要 远程监控是指利用现代的通信技术,跨越一定的空间距离获取远端的实时信息。 本文提供了一种小型化、家用化的远程监控系统设计方案。 本文使用世界上最小的卡片式电脑 树莓派作为获取数据的监控端,使用最为普及的 android 手机作为数据的接收端。同时本次设计中还使用了较为流行的 BaaS 云计算后端服务以及 HTML5+APP 的开发模式,实现了多端发布,大大节约了成本,只要有一定的编程基础,任何人读完本文之后都可以独立开发出一套远程监控系统。 关键字 :树莓派、 Linux、 BaaS、 HTML5 Abstract RMON( Remote monitoring) is refers t
2、o the use of modern communication technology, across space distance for remote real-time information. This paper provides a miniaturization, household design of remote monitoring system. In this paper, using the worlds smallest card computer - raspberry pie as monitoring terminal, use android mobile
3、 phone as the data receiver. And the design also used some popular technology,such as BaaS cloud computing back-end services and HTML 5 + APP development mode, this design implements multiterminal release, greatly save the cost, so long as has the certain programming basis, anyone can be independent
4、 developed a set of remote monitoring system after reading this article. Keywords: raspberry pi , linux , BaaS , HTML5 目录 摘要 . 1 目录 . 3 第 一章 绪论 . 5 1.1 研究目的及意义 . 5 1.2 国内外研究现状和发展趋势 . 5 1.3 本次课题的整体设计思路及本文的结构 . 5 第 二章 知识体系 . 7 2.1 树莓派的基本知识 . 7 2.2 Linux 操作系统介绍 . 7 2.3 Baas 后端云 . 8 2.4 基于 HTML5的 APP 开发
5、 . 8 2.5 本章小结 . 8 第 三章 监控端的构建 . 9 3.1 树莓派的点亮 . 9 3.1.1 Raspbian 系统的烧录 . 9 3.1.2 使用显示器、鼠标、键盘点亮树莓派 .10 3.1.3 使用笔记本电脑、无线路由器点亮树莓派 .10 3.2 配置无线树莓派 .11 3.2.1 移除网线 .11 3.2.2 移除 HDMI 线、鼠标线以及键盘线(配置 VNC 远程桌面) .12 3.2.3 移除电源线 .12 3.3 传感器模块的驱动 .12 3.4 环境参数的获取 .14 3.5 本章小结 .14 第 四章 基于 BaaS(后端即服务)实现云通信 .15 4.1 Wi
6、ldDog 实时后端云 .15 4.1.1 注册 WildDog 并创建新应用 .15 4.1.2 管理云端数据 .16 4.2 WildDog 的 C/嵌入式 SDK .18 4.2.1 引入 C/嵌入式 SDK .18 4.2.2 使用 SDK .18 4.2.3 修改 Python 脚本,周期性发送数据到云端 .20 4.3 WildDog 的 JavaScriptSDK 介绍 .21 4.3.1 引用 SDK 与创建引用 .21 4.3.2 写入数据 .21 4.3.3 数据事件 .22 4.3.4 读取数据 .22 4.4 本章小结 .23 第 五章 接收端应用的设计与发布 .24
7、5.1 基于 HTML5 与前端框架设计 APP .24 5.1.1 HTML5 的现状 .24 5.1.2 几个 H5 框架简介 .24 5.1.3 使用 HTML5 框架开发 APP 的思路 .24 5.2 接收端应用的页面设计 .25 5.2.1 对接收端应用的需求 .25 5.2.2 页面设计 .25 5.3 编写页面事件 .28 5.3.1 实现实时数据的获取 .28 5.3.2 实现查看历史数据功能 .29 5.3.3 实现更多功能 .31 5.3.4 实现退出功能 .32 5.4 APP 的发布 .32 5.4.1 配置 manifest.json 文件 .32 5.4.2 安卓
8、端的发布 .33 5.4.3 IOS 端的发布 .34 5.4.4 WEB 端的发布 .34 5.5 本章小结 .35 第 六章 总结 .36 附录 . 错误 !未定义书签。 第一章 绪论 随着信息时代的来临,人们在越来越多的地方可以用的到远程监控,本次课题提出了一种远程监控的小型化、家用化解决方案。 1.1 研究目的及意义 远程监控是指利用现代的通信技术,跨越一定的空间距离获取远端的实时信息。远程监控被广泛应用于各行各业。 通信技术以及因特网的发展到现在,远程监控技术的门槛已经变得越来越低了。本次课题将使用几项简单的技术设计一个可以监控环境参数的远程监控系统。 人类社会的信息化加快了人们的生
9、活节奏,现在人们获取信息的最大入口就是手机,因此人们希望能够更多的使用手机来获取并处理生活中的琐事。 基于手机的远程监控系统有助于实现日常生活的智能化。本课题将使用手机作为接收端设计整个监控系统。 1.2 国内外研究现状和发展趋势 随着物联网的兴起以及智能家居等概念的提出,对远程环境的监测与控制手段变得非常重要。目前,对于远程监测环境参数以及进一步的远程控制,成熟的方案大多都是基于有线网络并以 PC 为监控终端的,这样的终端受到地域的限制,使用起来不是很方便。现在智能手机非常的普及,由于手机体积小便于携带,智能手机作为远程监测的终端是大势所趋。 智能手机用于远程监控这一方面,目前只在远程视频监
10、控、远程桌面监控等方面有一定的应用。但是在生产实际中,有的时候我们只需要对远端的一些物理参数进行实时监控,这时现有的解决方案要么满足不了我们的需求,要么过于浪费资源。本课题将尝试提出一种经济且有效的解决方案来满足这种需求。 1.3 本次课题的整体设计思路 本课题的整体设计思路很简单:由监控端获取数据并对数据进行一定的处理,然后使用因特网将数据发送到云端,云端只负责数据的存储,接收端在需要时将从云端把数据下载到本地。具体流程图如下 : 图 1. 1 监控端:基于树莓派,树莓派具有体积小、功能强大、易于实现定制功能的优势。树莓派的操作系统是 Linux,本次课题中采用 Python 脚本实现定制的
11、数据获取与处理功能。 云端:采用现在流行的 BaaS 服务,使用免费的云端产品 WildDog 实现了即时通讯。 接受端:基于 Android 手机,但是采用了比较新的 HTML5+APP 开发技术,实现了多端发布。 本文的结构依据整体设计思路构成,详细的介绍了从监控端到接受端的配置与开发。 监控端 接收端 云端 第二章 知识体系 本章节详细介绍了设计本系统所需要的基础知识和相关概念,包括树莓派的基本知识、 Linux 系统的一些操作、 Baas 后端云的基本介绍、基于 HTML5 的 APP开发。 2.1 树莓派的基本知识 树莓派是世界上最小的台式机,外形只有一张卡片大小,却具有电脑的所有功
12、能。树莓派只提供处理器和主板,需要使用者插入 SD 卡作为内存硬盘,树莓派可以连接鼠标、键盘、显示器,以满足使用者的诸如文字处理、网上冲浪、播放高清视频等需求。 树莓派非常适合用于教育领域,更适合用来自制各种电子设备。树莓派有多个发布版本,在这个课题中我使用的版本是树莓派 2(树莓派 3 在本课题刚进行了一个月时发布)。树莓派 2拥有 4个 USB 接口,一个以太网线接口,一个 HDMI接口,一个 MicroSD 卡槽,一个 MicroUSB 电源接口,还拥有 40个 GPIO 针脚,可以支持多种 I2C 可编程设备。树莓派可以搭载多种操作系统,但是由于本身性能的限制,大部分情况下我们选择搭载
13、轻便的 Linux 系统。 图 2. 1 2.2 Linux 操作系统介绍 Linux 是一套开源的类 Unix 操作系统,所有人可以免费使用。 Linux 操作系统诞生于 1991 年 10 月 5 日,创始人是林纳斯托瓦兹。 Linux 有多个发行版本,如: RedHat(红帽)、 Ubuntu、 Debian 等。 相比于人们惯用的 Windows 操作系统, Linux 虽然也拥有强大的图形化桌面软件,但是对 Linux 来说图形化并不是必须的,因此 Linux 的使用者必须习惯使用命令行。 对于 Linux 来说,一切皆文件,一切软件都有确切的用途。这是 Linux 的基本思想。一切
14、皆文件详细来讲就是说, 对于 Linux 内核而言,系统内所有的一切,包括命令、硬件设备、软件和系统进程都是拥有各自特性和类型的文件。 Linux 作为一种嵌入式操作系统可以安装到多种硬件平台上,如手机、路由器、平板电脑、机顶盒、游戏机和大型服务器。尤其是作为 web 服务器, Linux有着出色的表现。 本次课题中树莓派上运行的是基于 Debian 深度定制的 Linux 系统。 2.3 Baas 后端云 开发一个具有网络功能的移动应用,除了要开发客户端,还要开发服务端,还需要服务器。为了简化移动应用的开发和部署,让开发者只专注于客户端的开发,而将后端服务整合成 API 提供给开发者调用,这
15、就是 BaaS( Backend as a Service,后端即服务)。 野狗( WildDog)成立于 2014 年,是国内第一家实时 BaaS 服务提供商。公司面向传统互联网、移动互联网、物联网的中小型企业,提供跨平台的实时通信云服务,包括 iOS/Android/Windows/Mac OS/嵌入式设备等众多平台,只需要通过简单的几行 代码,就可以实现多端应用之间的实时通信。 本次课题中监控端(树莓派)与移动端之间就是使用 WildDog 提供的实时云服务实现即时通信的。 2.4 基于 HTML5 的 APP 开发 目前 APP 的开发技术,分为原生开发, HTML5 开发以及混杂开发
16、。 原生开发分为安卓平台、 IOS 平台以及其他小众平台。 HTML5 开发则不区分平台,用户可以从任意平台的浏览器使用 APP。混杂开发则是两者折中,同时用到原生开发技术和 HTML5 技术。 原生开发的 APP 具有响应速度快,调用硬件方便等优点,但是由于对不同的平台需要多次开发,所以开发 成本比较高,而且 APP 的更新也比较麻烦。 HTML5开发则相反,一次开发可以多端发布,但是需要牺牲一定的性能。 本次课题中对接收端 APP 的性能的要求不高,而且希望尽可能节约开发成本,所以采用了基于 HTML5 的 APP 开发技术。 2.5 本章小结 本章按照由监控端到移动端的顺序介绍了本次课题
17、中所用到的大部分知识和技术,为接下来的整体设计打下了理论基础。 第三章 监控端的构建 本章节将详细介绍基于树莓派的监控端搭建过程,包括如何点亮树莓派,如何将树莓派设置为无线树莓派,树莓派传感器模块的驱动,如何通过 Python 脚本 读取并发送获取到的参数。 3.1 树莓派的点亮 拿到树莓派后,要做的第一件事就是点亮树莓派,也就是让树莓派正常的运行。树莓派并没有自带显示器、鼠标键盘甚至硬盘,所以第一次开机不像开一台一般的台式机那么简单。 3.1.1 Raspbian 系统的烧录 首先到树莓派官网( https:/www.raspberrypi.org/downloads/raspbian/)上
18、下载树莓派系统 Raspbian 的系统镜像文件,然后 Windows 用户可以使用的烧录软件 Win32diskimager 进行系统的烧录, Mac 用户或者 linux 用户需要在命令行使用 dd命令进行烧录。 这里介绍一下 Windows 下烧录的具体过程: 1.解压并打开 Win32diskimager。 2.把准备好的作为树莓派的硬盘的 SD 卡使用卡托或者读卡器连上电脑。 3.在“ Image File”中选择下载好 的 Raspbain 的镜像文件,“ Device”下选择 SD 卡的盘符,然后选择“ Write”。 图 3. 1 随后就开始安装了,安装时间大概 10 分钟左右
19、,根据 SD 卡的速度不同有快有慢。 4.安装完成之后会弹出对话框,提示安装成功,如果不成功的话尝试以管理员权限重新打开软件再次进行安装。 安装完毕之后在 Windows 下会观测到 SD 卡的剩余空间只剩下 70MB,这是正常现象,因为 SD 卡中的 Linux 分区对于 Windows 来说是不可读的。 3.1.2 使用显示器、鼠标、键盘点亮树莓派 1.把烧录好系统的 SD 卡插入树莓派之后,将鼠标、键盘接到树莓派的 USB接口上,再通过 HDMI 线把树莓派与显示器相连,接上电源线,并打开电源。 2.按照上面的步骤上电后显示器会有文字,如果显示器没有显示,可能 HDMI线或者转接头有问题
20、。 3.正常会停在用户和密码登陆界面,请输入用户名: pi,密码: raspberry,Linux 下的密码输入不会有任何提示,输入完密码之后直接按回车即可。 4.正确输入用户和密码后,发现命令行的提示符变为 piraspberrypi:$,说明树莓 派已经正常启动了。 5.进入命令行后先运行 sudo raspi-config 命令,选择扩展文件系统选项,以确保 SD卡的空间能充分的被利用。 6.键盘输入“ startx”启动图形界面,到此为止树莓派就正常启动完成了。 图 3. 2 3.1.3 使用笔记本电脑、无线路由器点亮树莓派 如今笔记本电脑的使用频率要高于台式机,所以有时候不太容易找到闲置的显示器, HDMI 线现在也比较少见。而无线路由器几乎家家都有,以太网线也很好获得,所以为树莓派找一台显示器的难度要高于找到一台闲置的无线路由器,