预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

KinomaCreate智能家居-晾衣架设计说明前言本作品的亮点在于采用HTTP服务器WebSocket服务器进行Web端手机App端多客户端与Kinoma远程通信底层控制层与数据层分离模块化开发所以我们的作品在硬件和软件上均具有可拓展性。智能家居的概念在现下是非常热门的话题所谓智能家居是以住宅为平台利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成构建高效的住宅设施与家庭日程事务的管理系统提升家居安全性、便利性、舒适性、艺术性并实现环保节能的居住环境。KinomaCreate有着开放的开发环境开发者可以将他们的理念融入到KinomaPlay软件从创建一个嵌入操控界面的程序到设计一整套应用程序。KinomaCreate应用为在Mac和Windows系统上的Kinoma开发提供了应用环境。Kinoma应用程序采用的编写语言是KinomaPlayScript(KPS)。与HTML5一样都使用JavaScript语言为开发者提供了一个熟悉的起点。优化的KPS运行时间能提供高性能、多媒介、可移动和集成的应用体验。KPS最大的创新是它对传统的事件驱动编程模式进行转换KPS应用遵循内容驱动模式在这种模式中首要的任务是收集信息用于显示而不是显示信息和对事件进行回应。这种方式更好地反应出当今连接式的应用程序重点实现开发的简化。系统整体框图如下:图1系统整体框图第一章:硬件模块硬件部分主要有以下器件组成:电源稳压模块:S-350-24输出24V直流稳压为电机供电经78127805转为5V稳压为系统供电。KinomaCreate微处理器:STC89C52温湿度传感器:DHT11光敏传感器:TLS2561电机控制模块:控制器步进电机机械部分:木板木条油漆螺钉渔线运动控制模块:微动开关G6K-P-2Y欧姆龙继电器采用折叠支架设计步进电机配转轴将圆周运动转换为直线运动卷绕绳子使衣架折叠伸缩硬件框图如下:温度传感器湿度传感器光敏传感器微处理器Kinoma手机App端电脑web端电机驱动器限位开关1限位开关2图2硬件框图微处理器获取到各类传感器的数据然后通过串口上传给kinomakinoma根据获取的温湿度光照数据与设定的双阈值的比较来自动控制电机的运动若是湿度大于80就会执行收缩衣架的程序若是湿度小于60就会执行伸展衣架的程序这两种运动都是通过控制电机来实现的并根据限位开关的状态来决定电机的运行时间。同时kinoma会通过服务器把温湿度和衣架状态发送给手机app端和电脑web端并接收它们返回的指令。第二章:软件模块本系统软件模块是基于Kinomastudio开发的主要有底层电机、传感器控制BLL以及rack-client和rack-server两套软件。软件框图如下所示:微处理器循环采集传感器数据上传温湿度数据和衣架状态kinoma显示温湿度和衣架状态发送数据给web端、手机端手机App端自动/手动模式切换手机App端/web端显示温湿度Kinoma控制电机手机App端/web端控制指令更改手机app端按键状态自动/手动模式?客户端指令?图3软件框图2.1rack-server2.1.1HTTP服务器集成了HTTP服务器在10001端口映射sitemap当浏览器向服务器发送request请求时服务器通过sitemap向浏览器做出相应的response。具体而言设置了如下两个handler来处理request:<handlerpath="/envData"><behavior><methodid="onInvoke"params="handlermessage"><![CDATA[message.status=200;message.responseText=JSON.stringify(envData);message.setResponseHeader("Content-Type""application/json");]]></method></behavior></handler>第一个handler设置response的头类型以及状态编码使得在html网页中利用JQuery中的$.getJSON方法可以获取从传感器传回的JSON数据。分别在网页的两个chart中进行显示。<handlerpath="/StateCtl"><behavior><methodid="onInvoke"params="handlermessage"><![CDATA[if(message.method=="GET"){message.