3.基于ZigBee无线传感器的智能家居综合实例实验3.基于ZigBee无线传感器的智能家居综合实例实验.pdf

3.基于ZigBee无线传感器的智能家居综合实例实验3.基于ZigBee无线传感器的智能家居综合实例实验.pdf

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.基于ZigBee无线传感器的智能家居综合实例实验3.基于ZigBee无线传感器的智能家居综合实例实验

基于ZigBee的智能家居综合样例 1. 实验环境 ? 硬件:UP-CUP IOT-6410-II 型嵌入式物联网综合实验系统 , PC 机。 ? 软件: Vmware Workstation +Fedora Core 8 + MiniCom/Xshell + ARM-LINUX 交叉编 译开发环境 2. 实验内容 ? 基于嵌入式网关系统,进行基于 Zigbee 无线传感器网络的智能家居的简单图形界面显 示设计 ? 基于嵌入式网关系统,了解掌握 Linux 系统下 socket 编程 3. 实验原理 针对 GUI 的综合实例,具体实现都是通络网络层对底层 Zigbee(传感器、控制设备)、 蓝牙、RFID 等功能进行封装,提供给 GUI 上层界面统一的调用接口。 功能框图如下所示: ? 网络服务层实现(Socket 通信) 套接口(Socket)为目前 Linux 上最为广泛使用的一种的进程间通信机制,与其他 的 Linux 通信机制不同之处在于除了它可用于单机内的进程间通信以外 ,还可用于不同机器之 间的进程间通信。但是由于 Socket 本身不支持同时等待和超时处理,所以它不能直接用来 多进程之间的相互实时通信 。本实验采用事件驱动库 libev 的方式构建我们的服务器模型 。 Socket 服务器端 Libev 是一种高性能事件循环 / 事件驱动库。作为 libevent 的替代作品,其第一个 版本发布与 2007 年 11 月。Libev 的设计者声称 libev 拥有更快的速度,更小的体积, 更多功能等优势,这些优势在很多测评中得到了证明 。正因为其良好的性能,很多系统开始 使用 libev 库。libev 同样需要循环探测事件是否产生 ,其循环体用 ev_loop 结构来表达, 并用 ev_loop( ) 来启动。 void ev_loop( ev_loop* loop, int flags ) Libev 支持八种事件类型,其中包括 IO 事件。一个 IO 事件用 ev_io 来表征,并用 ev_io_init() 函数来初始化:void ev_io_init(ev_io *io, callback, int fd, int events) 初始化内容包括回调函数 callback,被探测的句柄 fd 和需要探测的事件,EV_READ 表“可 读事件”,EV_WRITE 表“可写事件”。 用户需要做的仅仅是在合适的时候 ,将某些 ev_io 从 ev_loop 加入或剔除。一旦加入, 下个循环即会检查 ev_io 所指定的事件有否发生;如果该事件被探测到,则 ev_loop 会自 动执行 ev_io 的回调函数 callback();如果 ev_io 被注销,则不再检测对应事件。无论 某 ev_loop 启动与否,都可以对其添加或删除一个或多个 ev_io,添加删除的接口是 ev_io_start() 和 ev_io_stop()。 void ev_io_start( ev_loop *loop, ev_io* io ) void ev_io_stop( EV_A_* ) 由此,可以容易得出如下的“一问一答”的服务器模型。由于没有考虑服务器端主动终 止连接机制,所以各个连接可以维持任意时间,客户端可以自由选择退出时机。 上述模型可以接受任意多个连接 ,且为各个连接提供完全独立的问答服务 。借助 libev 提供的事件循环 / 事件驱动接口,上述模型有机会具备其他模型不能提供的高效率、低资 源占用、稳定性好和编写简单等特点。 服务器主要实现流程是:首先开启一个 Zigbee 后台线程(底层)监听服务器调用信息, 接着利用 ev_io_start(loop

您可能关注的文档

文档评论(0)

zyongwxiaj8 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档