资源描述
.物联网设计本文阐述物联网的设计过程。此工程实例详细说明如下:城市需要对多个端点( 里 面 加 热 , 温 湿 度 数 据 )实 例 证 明 , 所 有 信 息 需 传 送 到 一 个 Web Service 上 显示 , 而 这 就 是 一 个 物 联 网 的 设 计 过 程 。 为 了 实 现 这 个 Project 本 系 统 设 计 意 志 就是采用传感器和嵌入式系统组成主机,将采集到的数据信息通过 TCP/IP 协议由 GPRS 模 块 发 送 到 GPRS 公 共 网 络 。 采 用 socket 编 程 技 术 建 立 TCP/IP 服 务 器 ,接 收 嵌 入 式 主 机 发 送 的 数 据 信 息 , 将 数 据 上 传 到 Internet 。 很 好 地 实 现 了 在 互 联网基础上通过无线网的联立,构建新型物联网。一、系统概述系统由以基于嵌入式为主机的数据采集发送终端、移动 GPRS 网络、公网固定IP(服务器)、客户端 4 部分组成。系统的总体结构如图 1 所示。图 1、系统总体结构二、基于嵌入式为主机的数据采集发送终端1、数据采集发送终端的硬件设计系统硬件结构框图如图 2所示。数据采集发送终端的控制器采用 LPC2138 ,该芯片是一个支持实仿真和嵌入式跟踪的 32/16位 ARM7TD-MI-STMCPU的微控制器 , 并 带 有 512KB 高 速 Flash 存 储 器 和 具 有 独 立 的 电 源 和 时 钟 源 的 实 时 时 钟 , 片上 集 成 了 丰 富 的 功 能 部 件 , 如 SPI( Serial Peripheral Interface) 串 口 , UART0 、UART1全串口,A/D转换等。很好的满足了硬件系统的要求。精选可编辑文本.图 2、硬件结构框图传感器部分使用 DHT90 温湿度数字传感器采集温湿度数据,使用 RS485 总线连接异步串行通信 UART0 端口,并将控制器配置成 RS485 主机。通过 RS485 总线与 LPC2138 进行通信,因为使用 RS485 总线,可以同时接受多路温湿度传感器的数据信息。GPRS 无 线 模 块 采 用 BenQ 公 司 的 M23G,M23G 支 持 GPRS 功 能 , 并 且 内 嵌 TC/IP ,可用于实时性较高的、数据传输量相对较大、传输速率相对较快的数据 通 信 领 域 。 通 过 软 件 控 制 , 可 实 现 与 Internet 固 定 IP 地 址 双 向 数 据 传 输 。2、数据采集发送终端的软件设计数据采集发送终端的应用软件程序设计主要包括以下两个部分:GPRS 接受命令和数据采集与发送两个部分。应用程序软件是基于嵌入式实时操作系统 C/OS- 。 软 件 流 程 图 如 图 3 所 示 。应用程序定义了四个主要的时间标志位:GPRS 在线标志位、数据采集标志位、采集完毕标志位和接受命令标志位。这四个标志位协调系统的数据采集、数据发送、接收命令等任务。当初始化完成后,获得 GPRS 在线标志位,连接服务器成功后即可进行命令接受以及命令解析。系统主要设置了三条命令,分别是采集发送数据命令,设置采样频率命令和采集数据量大小命令。每个命令的获得都会置位相应的标志位,通过对标志位是否置位的判断来决定程序下一步的执行。在系统软件中可以设置采集发送的时间间隔(默认为 15 分钟),即每隔15 分钟,采集发送终端通过通用 TCP 服务器软件将采集的数据包发送给客户端。同时可以改变采集数据包的大小(默认为 1024 字节),即改变数据采集动态缓冲区的大小,数据缓冲区满即可发送数据。精选可编辑文本.图 3、系统软件流程数据采集完毕后置位采集完毕标志位,可进行数据发送。每次写入 GPRS 的最大的数据包为 1024 字节,超过 1024 字节数据做下一包发送,最后发送小于 1024字节的数据包。三、移动 GPRS 网络GPRS 组网方式采用的是企业公网组网方式。中心站配置固定的 IP 地址,而远程终端实行动态的 IP 地址分配。远程终端开机后,主动连接服务器,进行数据采 集 , 终 端 模 块 自 动 获 得 IP 地 址 , 主 动 上 报 到 服 务 器 , 并 以 xml 的 格 式 将 采 集到 的 数 据 进 行 保 存 , 客 户 端 通 过 访 问 WebLogic 服 务 器 , 查 看 接 受 到 的 数 据 。精选可编辑文本.四、公网服务软件的设计服 务 器 软 件 的 实 现 是 采 用 Socket ( 套 接 口 )编 程 技 术 , 考 虑 到 本 系 统 服 务 器 程 序必须能在任何时间处理多个客户连接,因此该程序是一个多线程 TCP 服务器。一 个 TCP 连 接 的 建立 开 始 于 TCP 客 户 机 创 建 一 个 套 接 字 , 然 后 调 用 connect 函数来启动三次握手操作,与远程服务器建立连接。在服务器方面,通用是首先创 建 一 个 套 接 字 , 然 后 调 用 bind 函 数 绑 定 自 己 的 公 认 端 口 号 , 接 着 调 用 listen 函数 来 准 备 接 受 客 户 端 请 求 , 最 后 调 用 accept 函 数 来 完 成 信 息 传 递 。图 4、 公共服务器设计流程在本系统的设计中,共建立了两个任务。一个任务用于完成数据的监听接受并处理。当监控服务器监听端口时,发现有采集终端对服务器发出的连接请求精选可编辑文本.时,就接受远程采集终端的连接请求,并以 XML 格式保存接收到的数据。由于每个 GPRS 模块都有一个唯一的 ID 号,因此根据这个 ID 号来识别该系统检测的具体位置,并在 XML 文件中以进行标记,同时包含当前时间、温度、湿度三个属 性 值 , 如 果 接 收 到 一 个 新 的 GPRS 的 ID 号, 将 启 用 一 个 新 的 terminal 标 记 。另一个任务用于完成对键盘的监控,并把用户输入的合法相关命令编辑成命令字符串发送数据采集终端。对于不合法的命令抛弃并输出相关提示信息。结合 Socket 编 程 方 法 和 具 体 的 应 用 , 服 务 器 软 件 流 程 如 图 4。五、客户端的实现客 户 端 方 面 采 用 基 于 RIA 模 型 的 FLEX 技 术 来 开 发 Web 页 面 。 客 户 端 通 过 Web 浏 览 器 以 HTTP 协 议 调 用 Web 页 面 。 界 面 能 够 显 示 系 统 状 态 、 下 达 配 置 参 数 、显 示 现 场 采 集 的 数 据 。 WEB 页 面 与 Web Service 组 件 通 信 , 把 用 户 的 参 数 传 递 给 Web Service 。使 用 Flex 技 术 可 以 构 建 体 验 丰 富 的 客 户 端 程 序 , 同 时 Flex 还 具 有 Push 技 术 , 可以 把 服 务 端 的 信 息 适 时 的 显 示 到 客 户 端 上 , 这 也 是 把 Flex 技 术 使 用 到 数 据 采 集领 域 的 重 要 原 因 , 也 是 本 系 统 选 择 使 用 Flex 技 术 的 主 要 原 因 。系 统 的 Web Service 设 计 采 用 面 向 服 务 的 SOA 设 计 , 这 样 可 以 提 高 系 统 的 反 应 速度,便于以后对系统的维护。对于软件设计的总体符合门面模式的软件架构,上层直接调用下层的接口,而不是具体的实现,这样有利于软件的扩展和维护 。上述调用过程的核心代码如下:/ 使用 Flex 的定时器,实现对数据的刷新import flash.utils.Timerprivate function time():voidvar timer:Timer = new Timer(1000);timer.start();timer.addEventListener(TimerEvent.TIMER, onTimer);/ 设置时间监视器来监听事件Bindablepublic var i:int=new int(0);private function onTimer (event:TimerEvent) :void精选可编辑文本.DeviceService.GetVersion.send(); / 使用 Flex 调用服务size / 服务器端 C# 平台调用声明public staticSystem.CharBuffer;public static System.UInt16 Version;DllImport(zlg_dnscan32.dllPublic static extern bool DNS_Version (ref System.Char Buffer,ref System.UInt16Version, System.UInt32 Size);/DLL方法的调用Bool st=DNS_Version(ref Buffer,ref Version, Size);客户端的页面如图 5图 5 、 富 客 户 端 的 web 页 面精选可编辑文本.六、结束语将嵌入式系统采集到的适时温湿度情况数据信息,通过 TCP/IP 协议经由 GPRS 网 络 无 线 传 输 到 TCP 服 务 器 , 并 上 传 到 Internet 。 利 用 RIA 模 型 进 行 动 态 调 用 。本 系 统 体 现 了 通 过 嵌 入 式 系 统 使 物 联 网 在 基 于 Internet 上 实 现 的 可 行 性 。精选可编辑文本
展开阅读全文