摘 要:探索了目前方兴未艾的物联网技术,以一个智能化车间为基础,实现了“物”的互联网接入、信息的流通、远程控制、信息的安全管理等。使用一个工控PC作为网关,接入因特网,使用在全世界范围内接入因特网的个人电脑、手机等手持式终端设备作为远程控制端,启动浏览器,输入一个固定的网址,经过安全认证,登录成功后就可以在网页上很直观、方便、安全地操作车间内的被控设备,并实时接收、查看各传感器所采集到的信息。
关键词:物联网;网关;Web;传感器
物联网IOT(Internet of Things)是新一代信息技术的重要组成部分。顾名思义,物联网就是物物相连的互联网。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。因此,物联网的定义是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络。
目前,构建物联网平台的技术方案[1-3]比较典型的有两种基本体系结构,一种是基于分布式计算的,各物品独立接入互联网。这要求每个物品都具有完善的网络接入与数据交换功能,在成本、安全性、使用的方便性等很多方面存在不足,特别是在目前实际使用的IPv4协议中的IP地址资源面临枯竭的情况下,只能少量用于某些特别的场合。另一种是基于网关的体系结构。在一个合适的地域范围内,使用一个专用的网关设备接入互联网,而物品则只直接连接到网关,各种信息都通过网关中转。这种方式无疑有很多优越性,大量的设备只需要一个公共点接入互联网,节约IP地址,甚至可以通过NAT 等方式接入互联网,无需独立的IP地址,通过公共的访问接口访问、控制各个设备,容易进行完善的安全管理。所以本文探索的是这种基于网关的体系结构。
1 体系结构
本物联网实验平台的体系结构如图1所示。网关是其关键性设备,一方面,网关与互联网相连,实现与终端设备的互联互访;另一方面,网关与被控设备(联入物联网的物品)相连,物品发出与接收的信息都通过网关中转。远程端设备是能接入互联网的手机、PAD、PC等。
2 硬件系统的设计与制作
2.1 网关的设计
网关的硬件有多种,其核心CPU常用的有两种大的类别:基于ARM和基于Intel X86兼容芯片。目前ARM系列的CPU不支持Windows系列的操作系统,所使用的指令系统也不同,开发难度相对较大,功能的拓展等也都不便。本技术方案采用基于Intel X86兼容CPU的工控PC作为网关,外型小巧、功耗低,无风扇设计,可长期稳定运行,支持Windows操作系统,技术成熟,软硬件支持性好,有大量现有的软硬件资源可以利用,所以整个系统的开发比ARM平台更为简单方便。
2.2 控制电路的设计与制作
如果每个“物品”都与网关直接相连、通信,在被控“物品”较多时,网关PC的通信接口势必不够,因此整个控制电路使用了多个单片机系统,使用其中的一个单片机作为中央节点与网关通信,通信方式选用最简单实用的RS-232串口通信。中央节点还实现温湿度的检测、入侵报警信息检测功能。单片机都使用AT89S52,它是一种低功耗、高性能CMOS 8 bit微控制器,具有8 KB在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 bit CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
(1)门的开关控制
单片机通过驱动芯片驱动直流电机的正反转,通过齿轮结构减速,丝杆螺母机构将旋转运动转变为直线驱动,实现门的开关控制。安装两个行程开关,当门运动到极限位置时,行程开关动作,单片机控制电机停止运转。
(2)换气风扇和水阀门的控制
单片机工作电压是5 V,如承受过高的电压,将受到不可恢复的严重损害。风扇的工作电压是交流220 V,必需实现强弱电隔离。选用直流驱动形式的小型电磁式继电器,绝缘介质耐压能达到1 000 V以上,保证人员和设备的安全。
(3)外景灯的控制
本实验平台为了达到美观的效果,设计了一套外观装饰灯,每一个灯都使用一个红绿双色LED,能发出红、绿、黄3种颜色,使用单片机控制,有多种非常美观的组合、动态效果。
(4)入侵检测
使用热释电红外线传感器,检测非法入侵的人员,由单片机对检测到的信号进行处理,通过网关发送到终端设备。
2.3 终端设备
终端设备可以是能接入互联网的手机、PAD或PC等,终端硬件平台类型非常繁多,但目前这些设备一般都安装有Web浏览器软件,运行浏览器,输入一个固定的网址,登录后就能实现与物联网平台的通信、控制。
3 软件系统的设计
3.1 总体结构
软件系统的总体结构如图2所示。其中,网关是一个Web服务器,Web服务器连接实时数据库,制作一实时监控软件用于监控数据库的变化,并将这种变化发送给单片机中央节点,由中央节点单片机作出判断处理,直接作出反应,或控制外围单片机系统操作其他的电子装置。
3.2 Web服务器
远程端的软硬件条件千差万别,一般都互不兼容。如果采用传统的CS(客户机-服务器)模式,需要为每种软硬件平台开发客户端程序,非常不便。本实验平台采用BS(浏览器-服务器)模式,使用远程端自带的浏览器,免除了开发客户端程序的负担,而且平台兼容性非常好。
网关接入互联网,同时,在网关上安装Web服务器软件,网关就可以对外提供Web服务,接收远程客户端的访问。
网关接入互联网可以选择多种方式。如果有固定IP,外部只需直接访问该IP地址。如果是动态IP,如ADSL,每次拨号都可能获得不同的IP,则需与动态域名解析配合使用,才能从固定的域名访问到网关。如果是使用NAT等方式接入互联网,需要从外部发起访问,能访问到位于内网的网关,则必须使用端口映射、DMZ主机等技术。
Web服务器软件选用APACHE,添加PHP的支持模块。APACHE是一款广泛使用、稳定、安全、高效的开源服务器软件。PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格类似于C语言,安全、高效,被广泛地运用。使用PHP进行安全认证处理,操作数据库,为远程端提供信息,接收远程端发出的操控信息,将远程端的操作写入数据库等。
3.3 监控、服务、通信程序
该程序运行在网关上,使用Borland C++ Builder 6.0开发,随网关开机自动运行。一方面,该程序负责监控实时数据库的变化,如有变化,则将这种变化发送到单片机中央节点,再转发到其他的单片机具体执行,实现各种控制功能。另一方面,该程序负责接收单片机中央节点发送给网关的信息,如灯的开关状态、温度、湿度、红外报警信息等,写入数据库,远程端通过访问PHP程序,就能得知这种变化或状态。
3.4 单片机程序的开发
开发工具使用Keil C51,它是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
开发过程中,还使用Proteus软件进行硬件电路的仿真[4],Proteus软件是英国Labcenter Electronics公司出版的EDA工具软件。它能仿真单片机及外围器件,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。在编程时,使用Proteus软件进行仿真运行,可以直接验证运行效果,根据电路原理图[5]、PCB设计图制作电路,大幅度提高了开发效率。中央节点单片机系统电路仿真图如图3所示。
经过长时间地运行和测试,本实验平台已经基本完善,适合于研究探索物联网新技术,适合于学生了解和体验物联网的概念,学习软硬件的开发设计与制作等。本实验平台具有实用、稳定、安全的特点,有良好的应用前景。
参考文献
[1] 黄玉兰.物联网体系结构的探究[J].物联网技术,2011(2):58-62.
[2]韩腾.物联网体系结构[EB/OL].Http://wenku.baidu.com/view/6331f4c75fbfc77da269b1da.html,2009.
[3] 杜江.PHP5完全攻略[M].北京:电子工业出版社,2010.
[4] 周润景.基于PROTEUS的电路及单片机设计与仿真(第2版)[M].北京:北京航空航天大学出版社,2010.
[5] 高卫东.51单片机原理与实践(C语言版)[M].北京:北京航空航天大学出版社,2011.