当前位置:文档之家› 物联网原理及应用 课程设计讲解

物联网原理及应用 课程设计讲解

湖北工业大学研究生考试(考查)答题纸1、说明什么是物联网?答: 即通过射频识别(RFID)(RFID+互联网)、红外感应器、全球定位系统、激光扫描器、气体感应器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。

简而言之,物联网就是“物物相连的互联网”。

2、试说明一维条码与二维条码的主要差别在什么地方?答:一维条码:一维条码只是在一个方向(水平方向)表达信息,而在垂直方向则不表达任何信息,其要求一定的高度通常是为了便于阅读器的扫描。

一维条码的应用可以提高信息录入的速度,减少差错率,只可表示英文、数字、简单符号等字符;贮存信息量小,主要依靠计算机中的关联数据库;;损污后可读性差。

一维码一般用于物品的标识。

二维条码:在水平和垂直方向的二维空间都存储信息,称为二维条码(2-dimensional barcode),1.高密度编码,信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。

2.编码范围广:该条码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条码表示出来;可以表示多种语言文字;可表示图像数据。

3.容错能力强,具有纠错功能:这使得二维条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达50%仍可恢复信息。

4.译码可靠性高:它比普通条码译码错误率百万分之二要低得多,误码率不超过千万分之一。

5.可引入加密措施:保密性、防伪性好。

6.成本低,易制作,持久耐用。

7.条码符号形状、尺寸大小比例可变。

8.二维条码可以使用激光或CCD 阅读器识读。

9.可影印及传真。

二维码一般用于物品的信息描述,并可运用加密算法使其具有防伪的作用。

一维码的印刷成本低,二维码的一般属连续印刷,印刷成本稍高;一维码识读器价位低,而二维码的识读器价格较高。

3、说明一下无线传感器网络节点的结构组成?答:传感器网络系统通常包括传感器节点(sensor)、汇聚节点(sink node)和管理节点。

大量传感器节点随机部署在监测区域(sensor field)内部或附近,能够通过自组织方式构成网络。

传感器节点监测的数据沿着其他传感器节点逐跳地进行传输,在传输过程中监测数据可能被多个节点处理,经过多跳后路由到汇聚节点,最后通过互联网或卫星到达管理节点。

用户通过管理节点对传感器网络进行配置和管理,发布监测任务以及收集监测数据。

传感器网络节点的组成和功能包括如下四个基本单元:传感单元(由传感器和模数转换功能模块组成)、处理单元(由嵌入式系统构成,包括CPU、存储器、嵌入式操作系统等)、通信单元(由无线通信模块组成)、以及电源部分。

此外,可以选择的其它功能单元包括:定位系统、运动系统以及发电装置等。

4、什么是云计算?说明云计算的特点?答:现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。

特点:1.超大规模。

“云”具有相当的规模,Google云计算已经拥有100多万台服务器,亚马逊、IBM、微软和Yahoo等公司的“云”均拥有几十万台服务器。

“云”能赋予用户前所湖北工业大学研究生考试(考查)答题纸未有的计算能力。

2.虚拟化。

云计算支持用户在任意位置使用各种终端获取服务。

所请求的资源来自“云”,而不是固定的有形的实体。

应用在“云”中某处运行,但实际上用户无需了解应用运行的具体位置,只需要一台笔记本或一个PDA,就可以通过网络服务来获取各种能力超强的服务。

3.高可靠性。

“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机更加可靠。

4.通用性。

云计算不针对特定的应用,在“云”的支撑下可以构造出于变万化的应用,同一片“云”可以同时支撑不同的应用运行。

5.高可伸缩性。

“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。

6.按需服务。

“云”是一个庞大的资源池,用户按需购买,像自来水、电和煤气那样计费。

7.极其廉价。

“云”的特殊容错措施使得可以采用极其廉价的节点来构成云;“云”的自动化管理使数据中心管理成本大幅降低;“云”的公用性和通用性使资源的利用率大幅提升;“云”设施可以建在电力资源丰富的地区,从而大幅降低能源成本。

5、以两维条码为例,用物联网的设计方法,设计一个具有物联网的应用实例?答:实例名称:二维条码的物联网物流管理系统的设计1)该系统根据供应链系统流程,可将系统划分成主要的五大部分,即管理平台、生产企业、仓储管理、商场企业和企业中间件。

这五部分不但实现了供应链的基本流程,还通过企业中间件的设计对所衔接系统之间的整合实现了编码,进行合理的数据处理,快速整合了各系统之间的数据存储,达到快速传输,快速处理的效果,并且在最后通过对相应数据的处理可以实现管理平台、生产企业、仓储企业、商场企业对产品的跟踪和溯源,以实现物联网的基本概念。

系统的基本构架如图1所示。

计算机条码打印机计算机条码识别器条码识别器计算机售货系统图1物流管理系统的基本构架设计2)该系统设计中,所涉及的生产企业、仓储企业、商场企业均为显示存在的系统软件,不仅仅局限于某个指定的软件产品,可以根据不同情况衔接多个生产企业、多个运输企业、多个商场企业以及多个仓储企业,并且结合企业中间件的使用达到数据传输的目的,二维条码的应用将集中应用于系统的底层,其主要应用有以下方面:①管理系统平台作为系统的核心,很少用到二维条码技术,它所需做的工作即将企业所湖北工业大学研究生考试(考查)答题纸提交的数据进行审核,如产品编码审核、包装编码审核等;另外,管理系统平台对在生产企业、仓储企业、运输企业进行数据传输起到了尤为重要的数据连接转换作用。

②生产企业作为系统的源头部分,实现产品、包装进行编码管理,即二维条码标签的唯一写入点,整个系统除此之外的所有识别设备进行的操作均为读取条码信息操作,并非对条码中的数据进行更改。

在整个供应链流程中生产企业能够对产品的整个物流过程进行跟踪追溯,达到监察目的。

③仓储企业是整个物流管理系统的重要组成部分,作为批量商品的集散地,它将实现货物的调度,通过二维条码的识别系统,将向管理系统平台实时传输商品的出库、入库情况,以及商品的流向。

④商场企业是货物的集散地之一,通过条码识别系统和售货系统将向管理系统平台实时传输商品的出售情况,如销售记录、退货情况等。

本设计采用C#语言,Microsoft visual studio 2005平台上编写了条码的编码和绘制程序。

设计条码编码系统的过程框图如图2所示:图2 PDF417条码产生过程3)编码压缩书本介绍内容可知,PDF二维条码中的有效信息为数据码字,这些信息被压缩后存放在条码中。

PDF417码有三种压缩模式:文本压缩模式(TC),数字压缩模式(NC)和字节压缩模式(BC)。

通过采用模式锁定码字,可在一个PDF417条码符号中采用多种压缩模式存储数据,有效提高条码的压缩率。

该设计采用了三种压缩算法,字母和符号采用文本压缩模式,数字单独采用数字压缩模式,汉字采用字节压缩模式,此时所采用的压缩模式压缩率最高。

文本压缩模式下编码流程图如图3所示。

生成文本压缩模式、数字压缩模式和字节压缩模式代码见附录。

湖北工业大学研究生考试(考查)答题纸图3编码程序流程图4)编码软件的实现本文所编写的PDF417码生成的软件界面如图4所示,湖北工业大学研究生考试(考查)答题纸图4 PDF417编码系统界面当输入待编码得商品信息、条码长宽比、条码列数后,直接点击一键生成按钮,就可以直接从显示窗口上显示出相应的PDF417条码,其中设计该编码系统时,为了简便,其纠错等级默认值为0。

然后点击另存为按钮就可以将生成条码保存,然后按照需要来调整整个图像的大小,之后打印出合适的条码图像。

如图5、6示:湖北工业大学研究生考试(考查)答题纸图5 输入产品信息图6 生成条码如图7是采用C#语言,在Microsoft visual studio 2005平台上“PDF417编码系统‘窗体设计’”界面。

湖北工业大学研究生考试(考查)答题纸图7 PDF417编码系统“窗体设计”图8是“PDF417编码系统窗体程序接口设计”界面。

图8 PDF417编码系统窗体程序接口设计湖北工业大学研究生考试(考查)答题纸最后生成的含有商品信息的二维条码如图9所示,其中所编码的信息为:“商品名称:海飞丝生产企业:美国宝洁生产日期:2011年5月15日生产编号:690314045133”。

图9 PDF417编码系统生成条码图片在该物流管理系统中,PDF417条码的编码内容可以是商品的所有信息,如生产厂家、生产日期、编号等等,根据不同的商品还可以调整录入的信息。

从产品的生产到成品下线、销售、运输、仓储、零售等各个环节,就可以应用这么小小的一张条码,对商品进行方便、快捷的管理,从而实现了商品的高效管理。

湖北工业大学研究生考试(考查)答题纸附录1文本压缩模式、数字压缩模式和字节压缩模式的部分核心代码://文本压缩模式protected internal virtual void textCompaction(int start, int length) {int[] dest = new int[ABSOLUTE_MAX_TEXT_SIZE * 2];int mode = ALPHA;int ptr = 0;int fullBytes = 0;int v = 0;int k;int size;length += start;for (k = start; k < length; ++k){v = getTextTypeAndValue(length, k);if ((v & mode) != 0){dest[ptr++] = v & 0xff;continue;}if ((v & ISBYTE) != 0){if ((ptr & 1) != 0){dest[ptr++] = (mode & PUNCTUATION) != 0 ? PAL :PS;mode = (mode & PUNCTUATION) != 0? ALPH A : mode;}dest[ptr++] = BYTESHIFT;dest[ptr++] = v & 0xff;fullBytes += 2;continue;}switch (mode){case ALPHA://大写模式if ((v & LOWER) != 0){dest[ptr++] = LL;dest[ptr++] = v & 0xff;mode = LOWER;}else if ((v & MIXED) != 0){dest[ptr++] = ML;dest[ptr++] = v & 0xff;mode = MIXED;}else if((getTextTypeAndValue(length,k+1) &getTextTypeAndValue(length, k +2) &PUNCTUATION) != 0){dest[ptr++] = ML;dest[ptr++] = PL;dest[ptr++] = v & 0xff;mode = PUNCTUATION;}else{dest[ptr++] = PS;dest[ptr++] = v & 0xff;}break;case LOWER://小写模式if ((v & ALPHA) != 0){if((getTextTypeAndValue(length,k+1) &getTextTypeAndValue(length, k + 2) &ALPHA) != 0){dest[ptr++] = ML;dest[ptr++] = AL;mode = ALPHA;}else{dest[ptr++] = AS;}dest[ptr++] = v & 0xff;}else if ((v & MIXED) != 0){dest[ptr++] = ML;dest[ptr++] = v & 0xff;mode = MIXED;}else if((getTextTypeAndValue(length, k+1) &getTextTypeAndValue(length, k + 2) &PUNCTUATION) != 0){dest[ptr++] = ML;dest[ptr++] = PL;dest[ptr++] = v & 0xff;mode = PUNCTUATION;}else{dest[ptr++] = PS;dest[ptr++] = v & 0xff;}break;case MIXED://符号模式if ((v & LOWER) != 0){dest[ptr++] = LL;dest[ptr++] = v & 0xff;mode = LOWER;}else if ((v & ALPHA) != 0){dest[ptr++] = AL;dest[ptr++] = v & 0xff;mode = ALPHA;}else if((getTextTypeAndValue(length, k+1) &getTextTypeAndValue(length, k+2) &PUNCTUATION) != 0){dest[ptr++] = PL;dest[ptr++] = v & 0xff;mode = PUNCTUATION;}else{dest[ptr++] = PS;dest[ptr++] = v & 0xff;}break;case PUNCTUATION://标点型子模式dest[ptr++] = PAL;mode = ALPHA;--k;break;}}if ((ptr & 1) != 0)dest[ptr++] = PS;size = (ptr + fullBytes) / 2;if (size + cwPtr > MAX_DATA_CODEWORDS){Throw newSystem.IndexOutOfRangeException("The text is too big.");}length = ptr;ptr = 0;while (ptr < length){v = dest[ptr++];if (v >= 30){codewords[cwPtr++] = v;codewords[cwPtr++] =dest[ptr++];}elsecodewords[cwPtr++] = v * 30+ dest[ptr++];}}//数字压缩子函数protected internal virtual void basicNumberCompaction(int start, int length){int ret = cwPtr;int retLast = length / 3;int ni, k;cwPtr += retLast + 1;for (k = 0; k <= retLast; ++k)codewords[ret + k] = 0;codewords[ret + retLast] = 1;length += start;for (ni = start; ni < length; ++ni){湖北工业大学研究生考试(考查)答题纸// multiply by 10for (k = retLast; k >= 0; --k)codewords[ret + k] *= 10;// add the digitcodewords[ret + retLast] += text[ni] - '0';// propagate carryfor (k = retLast; k > 0; --k){codewords[ret + k - 1] += codewords[ret + k] / 900;codewords[ret + k] %= 900;}}}//数字压缩模式protected internal virtual void numberCompaction(int start, int length){int full = (length / 44) * 15;int size = length % 44;int k;if (size == 0)size = full;elsesize = full + size / 3 + 1;if (size + cwPtr > MAX_DATA_CODEWORDS){throw new System.IndexOutOfRangeException("The text istoo big.");}length += start;for (k = start; k < length; k += 44){size = length - k < 44 ? length - k : 44;basicNumberCompaction(k, size);}}//字节压缩子函数,长度小于6位时执行此函数protected internal virtual void byteCompaction6(int start) {int length = 6;int ret = cwPtrint retLast = 4;int ni, k;湖北工业大学研究生考试(考查)答题纸cwPtr += retLast + 1;for (k = 0; k <= retLast; ++k)codewords[ret + k] = 0;length += start;for (ni = start; ni < length; ++ni){// multiply by 256for (k = retLast; k >= 0; --k)codewords[ret + k] *= 256;// add the digitcodewords[ret + retLast] += ((int)text[ni] &0xff);// propagate carryfor (k = retLast; k > 0; --k){codewords[ret + k - 1] += codewords[ret+ k] / 900;codewords[ret + k] %= 900;}}}//字节压缩模式函数,长度大于6位时执行此函数internal virtual void byteCompaction(int start, int length) {int k, j;int size = (length / 6) * 5 + (length % 6);if (size + cwPtr > MAX_DATA_CODEWORDS){throw new System.IndexOutOfRangeException("Thetext is too big.");}length += start;for (k = start; k < length; k += 6){size = length - k < 44 ? length - k : 6;if (size < 6)for (j = 0; j < size; ++j)codewords[cwPtr++] = (int)text[k + j] & 0xff;elsebyteCompaction6(k);}}湖北工业大学研究生考试(考查)答题纸附录2表1 文本压缩子模式下字符的对应值。

相关主题