ZigBee毕设
毕设题目:
——————————————————————————————————————————————————————————————————————————————
基于Zigbee的智能家居监测系统的设计与实现
智能家居是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统;
其目的是提升家居的安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。根据智能家居的特点,设计一个基于Zigbee的智能家居监测系统。
主要设计任务如下:
1. 了解Zigbee基本模块;
2. 了解ZStack协议;
3. 熟悉Zigbee模块的功能并在ZStack协议下实现监测任务;
4. 完成信号采集并把信号发送至手机端。
要求:
1. 了解Zigbee主要模块的功能;
2. 在Zigbee模块上实现ZStack协议;
3. 用户界面具有个性化特点;
4. 功能操作简单方便,具有一定的实用性。
应收集的资料及参考文献:
1. Zigbee 模块的相关参数;
2. ZStack协议的相关内容。
——————————————————————————————————————————————————————————————————————————————
ZigBee 就是 IEEE 802. 15. 4 的代名词。
Z-Stack 是ZigBee 的具体实现。
开题
开题时要知道自己的系统怎么实现,如何完成,要有具体的解决方案。
而现在我对题目的理解就是:在zigbee模块上实现Z-Stack协议,并在手机上实现一个有点儿用的功能 :)
根据题目的要求,在ZigBee模块上实现Z-Stack协议,指的就是至少实现这样的一个(点对点)网络:
一台ZigBee模块作为该网络的协调器,一台ZigBee模块作为该网络的终端设备。
协调器与终端设备之间实现通信。
实现监测任务
监测并非监控,不需要有如用ZigBee模块来控制其他家电的操作。
只需要对家居环境的一些参数进行收集即可。
需要终端设备上配有例如温度,湿度,气体成分的传感器。
家居指的是家庭装修、家具配置、电器摆放等一系列和居室有关的甚至包括地理位置(家居风水)都属于家居范畴。
完成信号采集
终端设备把传感器检测到的数据传给协调器(进行汇总)。
信号发送至手机端
这一点最头疼,
现在市面上只有极少数的手机支持ZigBee协议,大部分手机只有WiFi,蓝牙。
目前我找到的解决方案有:
A.ZigBee与WiFi的双模无线网关设计方案
http://www.elecfans.com/tongxin/119/20140930355368.html
B.基于CC2530的ZigBee转以太网网关的设计与实现
http://blog.csdn.net/wiznet2012/article/details/38379703
C.串口USB连PC,PC联网与手机进行通信。也就是ZigBee模块将信息传给PC机,PC再把信息传给移动端。
基于Zigbee的智能家居监测系统的设计与实现
我的具体解决方案如下:
场景
在ZigBee模块上安装温度,湿度传感器,两台及以上ZigBee模块自组网,
选定作为协调器节点的模块用USB线与家用电脑连接,电脑连入互联网。手机连入互联网。
原理
两台及以上ZigBee模块组网互通,传送实时温湿度信息汇总到协调器节点,
协调器节点与电脑串口通信传递信息,电脑与手机间通过互联网实现通信传递信息。
硬件
配有传感器的ZigBee模块两台及以上
USB线一条
联网的电脑一台
联网的手机一部
软件
一套ZigBee程序
一个Windows软件
一个Android应用
体验
用户点开手机打开APP,即可获取室内温湿度信息,还可以观察到一天中温湿度的变化。
当然这些信息电脑上也能看到。
ZigBee程序在终端设备节点实现与协调器节点的绑定,并读取传感器的数据发送给协调器节点。
ZigBee程序在协调器节点实现网络组建,并将收集到的数据通过串口发送到电脑。
Windows程序用Java编写实现两个主要功能:读取节点从串口发送的数据,建立socket服务将数据发送给连接该服务的应用程序。
Android程序同样使用Java语言,即建立与电脑的连接,接收实时的数据信息。
*这种需要连电脑的设计老师并未同意,理由是不会有人为了实现远程监控,离开家后还把电脑开着。
现在只能是买硬件来实现模块联网了。开题当天又加了一堆功能。。。
其具体的实现为:一台作为终端设备的ZigBee模块配有温湿度传感器,读取温湿度信息并发送给协调器节点;
一台ZigBee模块作为该网络的协调器节点,搜集从其他节点发送过来的家居环境中的温湿度信息;
协调器节点作为一台TCP主机接入互联网,将搜集来的数据通过W5500模块发送给手机;
手机端通过APP应用程序接收实时的温湿度数据信息。
手机端还可以设置希望的温湿度范围,该范围将保存在协调器节点上,当接收到其他节点传来的数据后进行判断,
如果超出设定的范围,将发出相应的指令,完成相应的调温调湿动作。
预期将会在三个平台上完成三个相关程序:
1.运行在ZigBee终端设备节点上的ZigBee程序:该程序在终端设备节点实现读取温湿度传感器的数据信息,并发送数据信息给协调器节点的功能;
2.运行在ZigBee协调器节点上的ZigBee程序:该ZigBee程序在协调器节点的功能为实现网络组建,并将收集到的数据通过W5500模块发送到手机端。同时对数据进行判断,做出相应的动作。
3.运行在手机平台的Android应用程序:实现与协调器节点建立连接并接收实时的数据信息的功能。并对接收到的数据进行处理。
好复杂啊。。。感觉要跪
//6月17日更新,前天答的辩。
最终还是放弃了W5500模块,改回了用电脑作为系统核心的设计方案。
主要原因还是不会用啊,
ZigBee模块与W5500模块之间主从设备的编程还是比较迷的。
我的水平还不能仅凭网上的一篇帖子就把它弄明白:(
但最初也不应该选W5500模块来用网线进行连接,
选WiFi模块应该会更好些,或者说更好演示些,
但肯定是没有用电脑来的更容易。
所以我最后到底做了什么呢?
利用ZigBee模块,电脑,手机 ,完成了一套对温湿度进行实时监测和调控的智能家居环境温湿度监测系统。
这系统可以干些什么呢?
1.可以在电脑和手机上显示实时的温湿度信息;
2.可以在电脑上可以查看温湿度的历 史记录;
3.可以设置温湿度范围,如果超出范围系统可以自主调节温湿度。
。。。相比别人毕设做个操作系统来说,是惨了点。。。
但以后还会有同学接着这个“基于”继续进行他们的设计,姑且留下些经验好了。
整体的设计就像这样:
在终端设备节点上配有一个温湿度传感器, 在协调器节点上连接了一个风扇, 连个节点间用天线传递信号。
协调器节点与电脑用USB数据线相连。 电脑与手机用的是无线网 ,现在电脑连手机的热点。
显然这个风扇就是被系统控制的调温设备;
电脑连手机热点为了演示和掩饰自己网络通信技术水平很低的无奈之举,
反正这台电 脑的信息是传到了这台手机上。。。IP是硬写在程序里的。呵呵
(想象的)可以改进的地方:
电脑与手机的信息交流如果是上诉这样设计的话,实用性真是超低。
低一点要求的话,电脑和手机都连WiFi,在同一个局域网里,手机和电脑的连接不想输IP的话,可以用扫二维码的方式实现啊。
手机想要获得信息,电脑弹出个二维码,扫码连接。
高一点要求的话,电脑真的是有必要的吗?既然是用WiFi,直接在ZigBee模块上配个 WiFi模块不是更好,
ZigBee模块也就是一个单片机,进行一些简单的判断操作完全没有问题。
二维码干脆直接印在ZigBee模块,WiFi模块,调温设备组合在一起的这个物件上好了,
或者只需用电脑操作一次,进行一些必要的配置操作,然后以后的操作就不再需要电脑,
而是ZigBee模块与手机之间直接进行信息交流。如果想在电脑上显示也可以,但不是必须的。
如果是要包装成产品,肯定是要这样的。但如果只是要演示,那就什么样都无所谓了。
这次毕设唯一可以称之为亮点的地方就是这个自主调节功能:“湿度过高,风扇开启 ”。
原理就是这样:
电脑在收到温湿度信息后,会进行范围判断,如果超出范围,电脑会向协调器节点发送命令,协调器节点收到命令后,
做出相应的操作,比如发送一个下降沿信号,开启风扇。好吧这称为亮点也有点过了。。。
(想象的)可以改进的地方:
协调器节点:“我接收到其他节点发送过来的信息,我再把这个信息通过串口发给你电脑,
你帮我判断一下现在的温湿度是否超出范围。如果超出范围你给我来个信儿,
我好做出相应的操作。。。等等好像哪里不对劲啊,为什么需要你帮我判断?”
信息就是要汇总到协调器节点,那在协调器节点上判断一下不就行了。。。
按照上面设计,电脑根本不存在的好吧,是啊,用手机直接把限定范围发送到协调器节点上储存,
协调器节点接收信息的同时,就做下判断。超出范围就直接发信号开启风扇。
这才是正确的思路啊
什么你问我没有电脑信息怎么储存,模块上最大200多K不够吧?
哦?你一条信息的长度,记录的频率,代码对存储数据空间的优化等,都是很能影响储存空间的大小的。
像是这一秒,下一秒,和下N秒的数据都是一样的,根本不用都记下啊。看你优化咯。
再不够不是还可以连个外部存储设备吗,外放的音响上不是都可以插闪存卡的吗。
要看历史数据,直接从模块把信息传给手机,把数据在手机上显示出来,应该也是可以实现的。
关于风扇
ZigBee模块和风扇连在一起,你就可以把它想象成一个智能风扇了。
最初想的是,不就是个风扇么,引脚置一不就上电了,风扇不就转了。
但你可以想象一下。3.3v带起来的风扇真的能起到调控的作用么。。。
可能就真的只能作为演示系统了。
正好手头有个稍微有点儿科技感的风扇,拆开看是有电路板的,
电路板上还有芯片,这个风扇是按钮控制的,按一下开启一档风,
再按一下加一档,再按一下加到三档,再按就关闭。
我就那根电线挨个引脚试,反正输入只有5v,试触几下也不会有太大问题。
然后就找到了一个只要置零就会使风扇工作状态改变的焊点,
在这个点上焊上导线,导线另一端接在ZigBee模块上的一个引脚。
编程使这个引脚置零,就可以控制这个风扇了。
如果控制其他设备,原理应该也是一样的。
上面更新的都是扯淡,
真正答辩的时候还是发现了问题,老师给予了建议:
主要的问题有:
1.发送信号到手机端到底是触发还是轮询。
发送温湿度信息给手机是轮询,发送设备控制信号是触发。
2.模块检测的频率是用户不能自己设置的
想要改的话,就加个传参数的延时函数就行了。
这是属于设计的问题,看想没想到了。
3.数据处理
对数据的处理应该是这个系统的核心
没用数据库就这么用文件一条一条存,优化还是优化
ZigBee毕设的更多相关文章
- 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap
一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...
- 【转】zigbee终端无法重连的问题解决
zigbee终端无法重连的问题解决 1.zigbee重连的原因 (1)zigbee由于各种原因的干扰导致信号太差而掉线. (2)协调器重启. 2.zigbee终端重连的处理 (1)zigbee掉线后会 ...
- 【转】ZigBee终端入网方式深入分析
前述 继之前对终端Direct Join的分析,发现很多东西还很模糊,存在很多问题.终于找到时间继续深入挖下去,这次应该比较完整地搞清了终端的入网机制,并纠正之前的几个认识偏差. 由于Z-Stack网 ...
- 【转译】加入ZigBee联盟,共画物联网的未来
Zigbee联盟是物联网全球革命的领导者,创造了随心控制的时代.Zigbee简化了无线产品的整合.加快了市场化,同时让那些希望引入高能效的无线控制的厂商,降低了成本和风险.我们的联盟成员在开放的全球环 ...
- [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...
- 【转】ZigBee是如何组网的?
组网方案设计:组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点(路由器或终端)加入网络,其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网. 一.网络初始化: ...
- 关于zigbee 网络拓扑节点数量的一点说明
理论上,一个zigbee网络可以存在65535个节点,即一个协调器下挂这么多个节点(ZR & ZE),但是实际应用中几乎是不可能达到的,达到100~200已经是很不错了,达到300几乎也是凤毛 ...
- zigbee学习之路(十五):基于协议栈的按键实验
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...
- zigbee学习之路(十四):基于协议栈的无线数据传输
一.前言 上次实验,我们介绍了zigbee原理的应用与使用,进行了基于zigbee的串口发送协议,但是上个实验并没有实现数据的收发.在这个实验中,我们要进行zigbee的接受和发送实验. 二.实验功能 ...
随机推荐
- 2/17 笔记 n:字符串索引、切片、数据转换笔记
切片:顾头不顾尾 s[首:尾:步长] 代码是从上到下依次判断,只要满足一个,就不会再往下走! continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,br ...
- day 12 名称空间和闭包函数
函数嵌套 按照函数的两个阶段分为: 嵌套调用:在一个函数内部调用另一个函数 嵌套定义:在一个函数内部定义另一个函数 名称空间(namespace):存储名字的内存区域 名称空间的分类: 内置名称空间: ...
- SQL注入之Sqli-labs系列第三十关(基于WAF防护的双引号报错注入)和三十一关
开始挑战第三十关和三十一关(Protection with WAF) 0x1 前言 这关其实和29关是同样的,login.php页面存在防护,只要检测到存在问题就跳转到hacked.php页面,不同的 ...
- Windows+Linux双系统所导致的时间不一致问题的原因及解决方案
参考自:https://www.cnblogs.com/x_wukong/p/4401499.html 前几天在自己的windows10另外还装了一个Ubuntu,使用后发现windows时间一直不对 ...
- 100道Java基础面试题收集整理(附答案)
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...
- [LeetCode&Python] Problem 504. Base 7
Given an integer, return its base 7 string representation. Example 1: Input: 100 Output: "202&q ...
- JAVA第八次作业
JAVA第八次作业 (一)学习总结 1.用思维导图对本周的学习内容进行总结 参考资料: XMind. 2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery ...
- EasyUI datagrid 序列 化后时间 处理 九
@{ ViewBag.Title = "Home Page"; Layout = null; } <!DOCTYPE html> <html> <he ...
- java.io.EOFException ValueOperations.increment()操作后,获取值时有的bug
---恢复内容开始--- 今天使用spring-data-redis包操作redis,就是简单的使用redis的计数功能,在redis中的操作命令如:incr key;get key; 这两步操作使用 ...
- #考研笔记#计算机之word问题
Word 问题:1. 如何为文档加密保存?单击 office 按钮\另存为\工具按钮\常规选项\设置打开文件时的密码 2. 怎样在横格稿纸中录入古诗?单击 office 按钮\新建\模板\信纸\稿纸( ...