- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于物联网智能家居的设计与实现.doc
基于物联网智能家居的设计与实现
摘 要:随着科技的进步,物联网不断发展,呈现出如火如荼的态势。针对市场的需要,本方案基于目前普遍流行的Android系统,设计出一套完善的物联网解决方案,使得人们能通过智能终端,远程跨网控制LED等智能设备,同时能够实施感知家中温度,湿度等各类信息。该系统经过多次测试,性能稳定、实时性好、成本低廉,同时能很好满足人们智能家居的需求。
关键词:物联网;Android;智能家居;远程控制
引言
有无数人可能遇到过这样的问题:刚刚走到楼下准备去上班,却忘记自己是否关闭好门窗、电器,只得回到家里查看却发现实际上已经关闭好了。又或者孩子在家里睡觉,家长去上班却总担心要是空调一直开着会不会让孩子着凉...似乎现实中还有众多的可能,让人总是那么不“放心”。
在面临生活中种种的不方便后,我们开始设计了这样一种作品。忘记有没有关好电器、门窗?打开我们的“家居助手”,轻轻的点击一下,智慧与科技会从手机开始流过网线、流过服务器、流过路由器、流进家里...最终你能了解家中所有的情况,随时随地地操控。而这种种的一切均在弹指一瞬间完成。
当未来的世界里,你能通过手机便能开关灯、打开电热水器、开启空调、关闭门窗、甚至能看到家里电量使用状况、能付款、能控制车库、能当做汽车钥匙......这种将生活“一手掌控”的时代是多么的令人兴奋!
本设计的主要特点如下:
(1)基于目前广泛流行的Android系统进行设计,在软件上兼容Android4.4-Android6.0,覆盖市场主流Android版本。同时使用Material Design设计理念,使客户端更加便捷智能,更具UI友好性。
(2)本设计可以实现对家中设备的跨网控制,直接通过公网控制家中智能设备,且对设备IP类型无任何限制,更具实用性。
(3)家庭主机采用基于ARM Cortex-A7的树莓派,功耗更低,稳定性更强,可扩展性更高。
1 系统总体架构
本作品主要针对智能家居进行控制,根据需求,采用C/S(客户端/服务器)模式。客户端为Android智能终端与家庭主机,服务端为Linux服务器。在本设计中,智能家居工作原理为:在家庭主机与智能终端连上Internet后,家庭主机通过POST,GET实施向服务器发送温度,湿度等家庭信息,同时读取服务器中操作指令。服务器接收到家庭主机温度、湿度等信息后将其存储到相应空间。智能终端通过Httpurlconnection向服务器发送操作指令,同时读取服务器中存储的家庭信息,并在终端实时更新。通过设备间不断协调,实现终端对家居设备的远程控制。
2 系统设计
2.1 Android客户端UI设计
Android客户端设计主要包括UI界面,Httpurlconnection通信及线程的相关应用等。Android应用程序由一个Activity和若干个Fragment组成,遵循Google的Material Design设计语言,通过阴影将并不铺满页面的内容从背景层中剥离,并通过阴影深度来表达层级。同时,通过Navigation Drawer导航菜单的应用,提供了在非顶级视图间导航的能力,更加美观与易用。MD设计语言的存在使得UI更加丰富、欢快,予用户一种愉快的操作体验。可以通过向左侧划动划出导航栏,点击不同的栏目以进入不同的房间进行操作。
2.2 Android客户端程序设计
在Android M,出于能耗的考量,Google官方移除了开源项目HttpClient的支持,提倡使用Httpurlconnection,为了保持良好的兼容性与稳定性,本项目采用Httpurlconnection进行Get、Post的网络操作。同时,为了保持良好的操作体验,在本设计中,所有的网络耗时操作都放在子线程中进行,通过Handler机制进行线程间消息的传输及UI的更新,每个HttpURLConnection实例都可用于生成单个请求,但是其他实例可以透明地共享连接到HTTP服务器的基础网络。请求后在HttpURLConnection的InputStream或OutputStream上调用close()方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用disconnect()时持久连接空闲,则可能关闭基础套接字。
客户端与服务器之间的通信一般需要以下几个步骤:
(1)建立Httpurlconnection对象,初始化请求头。
(2)建立连接,向服务器发送Get/Post请求。
(3)服务器响应客户端请求。
(4)服务器处理并向客户端发送响应信息。
(5)客户端接受服务器返回的信息并进行处理。
文档评论(0)