1、第一章:硬件模块硬件部分主要有以下器件组成:电源稳压模块:S-350-24,输出24V直流稳压为电机供电,经7812,7805转为5V稳压为系统供电。Kinoma Create微处理器:STC89C52温湿度传感器:DHT11光敏传感器:TLS2561电机控制模块:控制器,步进电机机械部分:木板,木条,油漆,螺钉,渔线运动控制模块:微动开关,G6K-P-2Y欧姆龙继电器采用折叠支架设计,步进电机配转轴将圆周运动转换为直线运动,卷绕绳子使衣架折叠伸缩硬件框图如下:图2 硬件框图微处理器获取到各类传感器的数据,然后通过串口上传给kinoma,kinoma根据获取的温湿度光照数据与设定的双阈值的比较
2、来自动控制电机的运动,若是湿度大于80就会执行收缩衣架的程序,若是湿度小于60就会执行伸展衣架的程序,这两种运动都是通过控制电机来实现的,并根据限位开关的状态来决定电机的运行时间。同时kinoma会通过服务器把温湿度和衣架状态发送给手机app端和电脑web端,并接收它们返回的指令。第二章:软件模块本系统软件模块是基于Kinoma studio开发的,主要有底层电机、传感器控制BLL以及rack-client和rack-server两套软件。软件框图如下所示:图3 软件框图2.1 rack-server2.1.1 HTTP服务器集成了HTTP服务器,在10001端口映射sitemap,当浏览器向
3、服务器发送request请求时,服务器通过sitemap向浏览器做出相应的response。具体而言,设置了如下两个handler来处理request: /method/behavior/handler第一个handler设置response的头,类型以及状态编码,使得在html网页中利用JQuery中的$.getJSON方法可以获取从传感器传回的JSON数据。分别在网页的两个chart中进行显示。/StateCtl if (message.method = GET) message.setResponseHeader( message.responseText = message.query
4、; if(message.responseText=state=1) trace(1 else 0 else message.status = 405; / method not allowed 第二个handler与第一相反,用于Kinoma Create获取服务器传来的JSON数据,代表按钮状态,做判断后可将返回值赋予控制电机的全局变量。与之对应,在html中用JQuery监听按钮动作,并用$.ajax来发送一个JSON格式的控制数据,代表此时的衣架状态。2.1.2 Websocket服务器集成了Websocket服务器,用于多客户端的指令接收,具体而言,它可以通过以下语句来接收来自客户端
5、的控制指令,解析其中的指令,然后调用相应的函数改写底层 bll 文件中的状态数据,从而控制电机进行相应的运动。 conn.onmessage = function( e ) application.distribute( e.data ); ;同时通过以下语句不断地调用底层bll 文件中的control_motor函数来采集温湿度数据,并得到返回的温湿度数据以及此时的衣架状态信息。这些数据一方面通过 http 服务器发送给 web 端显示,一方面通过Sendtoclient函数发送给 app 服务器,最后改变此时 kinoma 界面上的温湿度显示以及衣架状态显示。application.inv
6、oke(new MessageWithObject ( pins:/motor/control_motor? repeat=on& callback=/gotAnalogResult &interval=500); function onInvoke( handler, message ) var result = message.requestObject; /data from bll(sensor) envData.TData=result.TData; /data which sened to HTTP server envData.RHData=result.RHData; appl
7、ication.distribute( Sendtoclient, result ); onTemValueChangedonHumValueChangedapplication.distribute( rackStateChanged 2.2 rack-client2.2.1手机app端手机app端通过 Websocket服务器实时获取温湿度和衣架状态数据,不断地更新 app 端的显示以及按钮情况。如下图,温湿度数据是不断接受服务器端发的数据而不断刷新的。而控制按钮是可以捕捉底层对衣架进行的操作,即当衣架的状态发生改变后,控制按钮会变为黄色,说明衣架状态改变过,并且已经达到稳定,此时你可以按
8、下该键来控制衣架进行伸缩。而当衣架正在运行中时,按钮的颜色是蓝色,说明此时,衣架正在进行某一动作,不适合对其进行操作,待衣架稳定,按键重新变为黄色时才可以进下一步行操作。 此时衣架正在运动,不适合控制 此时衣架处于稳定停止状态,可以控制图4 手机app界面当用户选择了 Manual mode 模式(手动模式),就可以通过 FOLD/STRETCH按键来对衣架进行远程操控,这是通过向服务器发送相应的指令来实现的,主要程序如下:clickedcontent, action var serversTable = this.serversTable; for ( var uuid in servers
9、Table ) var server = serversTable uuid ; server.conn.send( action); 2.2.2 网页web端网页web端设计:使用html5中canvas 和RGgraph包生成两个动态图表,利用JQuery和Ajax获取和发送JSON数据与Kinoma Create进行数据通讯。布局采用CSS+Bootstrap使界面简洁明了,同时支持手机浏览器与电脑浏览器。图5 网页web端界面设计2.3 底层BLL设计底层bll主要是对传感器数据的采集以及对电机的控制,需要判断是否自动,控制端是否有指令。逻辑流程图如下:图6底层BLL逻辑流程图至此,本智能家居-晾衣架减少完毕,综上所述,本系统涵盖了手机客户端、网页web端、控制软件设计、底层硬件设计、机械设计等知识。具有较强的稳定性和实用性,更关键的是其扩展性很强,今后可以将更多的家居产品连接到kinoma上,并可以通过网页、手机远程控制,最终实现构建一整套智能家居系统。 Dream_High 2015-8-10.分隔.分隔. 智能家居晾衣架设计说明 第二章:集成了HTTP服务器,在10001端口映射sitemap,当浏览器向服务器
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1