APP下载

基于树莓派的课堂实验设计

2016-03-07范鲁宁张世波艾雨兵

电脑知识与技术 2015年35期
关键词:树莓派服务器端安卓

范鲁宁 张世波 艾雨兵

摘要:该文是《网络信息安全》课程教学改革研究的阶段性研究报告。该课题研究目的:为了更方便的实施网络实验,加强学生软硬件动手能力,提高教学效果。研究方法:根据现有的树莓派开发板、nodejs服务器以及App Inventor2安卓开发平台等相关技术资料和设备,课题组教师开发大型实验,并拍摄教学视频。阶段性研究结果:目前已经成功开发了两个大型实验:无线监控树莓派和树莓派上的打地鼠游戏。结论:基于树莓派开发板的对于《网络信息安全》的实验开发是完全可行的,并且具有无限扩展性。

关键词:网络;树莓派;安卓;服务器端

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2015)35-0058-03

《网络信息安全》这门课涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等综合性知识。为了让学生能够系统性地将这些知识串联起来,需要有一个统一的集成化的平台去实现或者印证这些理论。

从学校教学来看,普通本科单纯的课堂理论化教学和分散的小型实验对大专、高职院校来说并不是十分适合。首先,学生不具备很强的理论学习能力,他们对深奥的数学理论和复杂的编程思想缺乏扎实的理论基础知识,学习起来十分费劲。其次,大专、高职院校的学生将来要直接进入企业第一线工作,相对实用的成套的技术对他们来说更有用,经过一系列设备的配置、安装以及简单的程序编写完成一个看得见摸得着的作品会让他们有强烈的成就感。普通教材中的实验往往是零时安装一个现成的程序,然后输入“配置”数据、点击“下一步”、“确定”。这种模式不能让学生掌握到核心的技术,即使要做一些变通也无从下手。另外,普通学校机房缺乏有效的实验环境和实验平台,学生机上安装的系统比较单一,一般会附带保护卡和系统恢复机制,不允许随便修改系统设置,不仅安装不同的系统是不被允许的,而且练习具备破坏性的网络攻防实验也会对机房的网络系统造成破坏,使得其他教学活动不能顺利进行。

树莓派:

因此针对《网络信息安全》这门课,一个新的能够模仿物联网模式连接各种不同设备、搭载不同系统的教学平台以及更加集成化和项目化的教学模式呼之欲出。为此,本课题组成员计划采用市面上一款叫树莓派的新产品作为核心设备来尝试实现这个目标。

1 研究技术材料和方法介绍

本文会涉及一些新的技术,如:树莓派开发板、基于java script脚本语言的用于小型服务器开发的新技术以及麻省理工大学出品的用于教育领域的Android应用程序开发平台,因此先在这个章节做一些简单介绍。

1.1 RaspberryPi

树莓派这个听起来像一种国外烘培产品的名字其实是一种小型的卡片式的电脑主板,需要另外添加显示屏、键盘、鼠标、电源、无线网卡等外部设备才能够真正的正常运行[1]。虽然有些折腾,但是能给学生一个动手的机会,让他们更好的理解计算机的组成。

除了提供硬件组装的动手机会,它的软件运行也具备许多优势。普通学校机房的装机实践证明,即使使用虚拟机等软件也会和某些教学管理软件产生冲突,导致很多实验不能进行,影响教学效果。

树莓派开发板可以安装类似于Linux的操作系统,并且实现一系列好玩的实验。例如:配置一个无线的监控系统,以实现远程的摄像监控记录动作图片和视频,甚至可以通过手机来访问这个摄像监控设备实现实时监控。这当中要涉及操作系统安装、网络配置、系统更新和插件安装配置、摄像头的安装配置、自动发送邮件的配置等等一系列可以进行教学的内容,形成一个完整的大型实验。让学生接触到软件和硬件方面的各种知识,不同于以往的简单操作,可以在不断地“折腾”当中加强动手能力,并可以结合其他课程的内容,达到温故知新的效果。

另外,低廉的价格也是树莓派的一大优势,现在市场上成套的教学设备动不动就是几千元、上万元。一块最新的第二代树莓派国内售价仅仅二百多元人民币,并且可以连接笔记本电脑,通过共享网络和远程连接软件就可以进行操作,可以为学校节省大笔教学设备采购的费用。

1.2 Appinventor2

App Inventor是由麻省理工和谷歌开发的一款Android开发平台,目前发展到第二代,具有操作简单、可视化、模块化、事件置顶、正确性高和便于调试等优点。使用App Inventor无需具备编程知识,也不需要记忆和编写代码,程序的组件和功能都存储在模块编辑库中,在创建程序时只需将其拖拽到编辑区域进行组合即可,用户不需要记忆如何输入指令或参考任何编程设计手册[3]。因此,非常适合用于教学上的项目快速开发,让学生接触到手机应用开发的全新领域。

1.3 Nodejs

既然是网络安全课程,肯定少不了网络知识。在这里,课题组采用最新的服务器后台框架技术Nodejs,这是一种用Java script作为编写语言的服务器框架,使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合用于小型网站或轻量级数据交换应用的开发[4]。

2 实验项目介绍

课题组研发了以下两个较为综合性的大型实验,作为课堂教学所用。一个是偏向硬件和网络配置方向的“无线监控树莓派”,另一个是偏向软件编程和手机应用开发的“树莓派上的打地鼠游戏”。

2.1 无线监控树莓派

这个大型实验由两部分组成,一个是“无线”,另一个是“监控”。这里所谓的“无线”,就是可以脱离网线、电源线、显示屏、键盘、鼠标的链接,独立运行,并可以通过远程以可视化或字符状态登录系统。

实现“无线”的操作步骤如下:

1)更新系统,首先要保证树莓派上的系统是最新版的Raspbian,通过命令$sudoapt-get update实现。

2)架设远程桌面服务,这一步是为了移除显示器的连接线,原来我们刚使用树莓派的时候,都是通过HDMI高清线连接在电视机上的,使用非常不方便。这里我们使用VNC服务器,通过这个远程连接,使用者可以在笔记本电脑上可视化登陆树莓派的操作界面。

3)为树莓派添加无线网卡。我们从树莓派专卖店中采购了专用的无线网卡EP-N8508GS,以便开发板能够轻松识别它。通过USB接口连接以后,需要通过网络配置文件配置无线网卡的IP地址。最好设置成静态的IP地址,以便我们每次登录的时候直接连接,不需要再通过ARP命令查询树莓派的IP地址。

4)最后要移除电源插头。由于树莓派使用的是5V的电源和1到2A的电流,我们可以使用充电宝来代替电源插头。做完以上这些,树莓派就真的可以揣在口袋里到处走了。

实现“监控”则更加有趣和实用一些,它的步骤如下:

1)安装摄像头,可以是普通的USB摄像头,也可以是树莓派专用的串口摄像头。连接上以后通过dmesg命令查看设备连接和辨识情况。一般摄像头在系统中以文件video0的名字出现。

2)安装和配置motion运动捕捉应用程序。使用sudoapt-get install motion命令,自动从网上下载并安装程序。安装完毕后,需要设置照片和视频的存放地址、调整画面的高度、宽度和帧率,默认是每秒钟捕捉两张图片,图片大小为320像素×240像素,文件大小约为12KB。另外还要配置捕捉的敏感度threshold,也就是有多大幅度的动作才会被摄像头抓拍下来,有一个数值来控制它,当motion发现图像的变化超过该值时将会捕捉画面,数值越大,敏感度越低。

3)为了让以上这些步骤实现自动化,我们还需要设计一个脚本程序实现以下目标[2]:只发送最新由motion捕捉的图像,程序可以一直在后台运行,删除已经发送的图片,避免空间浪费。脚本采用系统自带的shell语言编写,按顺序集成了一系列的系统命令,监控存放图片的文件夹,并及时发送到设置好的邮箱地址当中,然后删除已经发送的图片。

这个大型实验需要5次课程的实验来完成,其中涉及操作系统、网络、硬件组装技术等知识点,是一个较为全面和综合的内容。期间需要学生大量的动手和解决出现的各种问题。后续也可以加入其他内容,如添加温度湿度传感器、被动红外传感器,通过命令行的方式远程测试环境[2]。

2.2 树莓派上的打地鼠游戏

本实验结合了打地鼠游戏,Nodejs服务器,MySQL数据库,以及树莓派这些软硬件组件。游戏本身由MITAppinventor2开发,它的服务器现在已经移植到广州教育局的服务器上(app.gzjkw.net),访问速度比以前快了很多。Nodejs服务器和MySQL数据库将会部署在树莓派上记录游戏者分数从高到低的排列,保证在WIFI环境下任何手机都能访问该服务器,并保证数据记录不丢失。

1)经典老游戏的复活

“打地鼠”游戏的灵感来自一款经典的街机游戏,其中的小动物会突然从洞中冒出,玩家则用木槌击打它们,击中得分。

手机上的“打地鼠”应用将实现以下功能:一只地鼠随机出现在屏幕上,每秒钟移动一次;如果手指触碰到地鼠,则让设备震动,显示的命中数加1,地鼠随机移动到一个新位置;添加另一个地雷的图片:用户不许碰到它,如果碰到将会受到惩罚,减少得分或结束游戏;点击“重新开始”按钮,游戏重新开始,命中和失败的计数归零。界面组件设计如下图所示,而逻辑设计部分的功能模块主要包括:游戏界面初始化、地鼠随机移动、游戏倒计时和游戏结束这几个模块,充分利用计时器的功能来控制图片的移动和游戏的计时。

2)在树莓派上架设服务器和部署MySQL数据库

为了让游戏者的得分纪录能够长期保存,并且让网络中的其他参与人员看到得分排行,就需要用到服务器端来查询和存储数据。为了减轻树莓派的负担,加快运行速度,我们应用了小型的基于Nodejs技术的服务器端,并创建MySQL数据表来存储游戏得分,当游戏结束并存储得分后,服务器会将重新得到的记录进行排序[5],得出一个从高到低的得分排名。

树莓派功耗小,占用体积少,只要在WIFI环境下连接电源就可以开启服务器,当然要在系统中设置好自动启动服务器应用程序和数据库服务器。

3 总结和展望

以上介绍的这两个实验都强调了硬件和软件的动手能力,从趣味性和实用性两方面对原有的教学内容进行了改进。为了让学生更好地在课后完成实验,用最新的视频制作软件Camtasiastudio8.5录制的教学视频也已经完成。实验课程的成功开发,证明在其他课程内容上采用树莓派作为平台是可行的。课题组将会继续探索和开发合适的内容作为《网络信息安全》这门必修课的项目化教学内容。

参考文献:

[1] [英]Peter Membrey. 树莓派学习指南[M]. 北京: 人民邮电出版社, 2014:151-185.

[2] [美]Brendan Horan.RaspberryPi. 树莓派实作应用[M]. 北京: 人民邮电出版社, 2014:37-58.

[3] 黄仁祥. 人人都能开发安卓App–AppInventor2应用开发实战[M]. 北京:机械工业出版社, 2014:91-97.

[4] [英]TomHugbes-Croucber,Node. 即学即用[M]. OREILLY, 2013:147-158.

[5] David Flanagan, Java Script. 权威指南[M]. OREILLY, 2015:487-508.

猜你喜欢

树莓派服务器端安卓
iPhone不卡的秘密曝光:安卓也能享受
Linux环境下基于Socket的数据传输软件设计
文物表情包
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
一种基于安卓系统的手机侧抓包分析方法
智能安全防盗探测小车
基于嵌入式技术的农村医疗系统设计
安卓L未至安卓M来了!安卓首泄漏M系统
网页防篡改中分布式文件同步复制系统