Sanliao智能家居平台软件设计

智能家居系统APP设计源码 2018年广东省大学生电子设计竞赛一等奖作品——一种基于蓝牙和语音控制的智能家居系统:APP部分设计源码 立即下载

1,本设计版权归本人所有;2、本博客禁止转载或者用本博客技术用于商业用途。

还有个重要原因我不喜欢写博客,因为linux下编辑太痛苦了。所有 的这些图纸都是我用一个叫“DIA”的软件画的,然后导出成图片,这个软件不支持中文输入。所以待会看到,原来我是个英语爱好者。

废话不多说了。一下东西都是摘自我的记录性文档。

顺便说下我们的网站:http://115.28.80.200/

立马我们的域名就会备案成功了,到时候用域名访问更合适:www.threesoft.net

谢谢大家。有UI设计高手,单片机高手,诚信邀请这两方面的人才入伙,我们一起打土豪去。

Sanliao智能家居平台软件设计

 

项目

Sanliao智能家居平台软件设计

作者

曾金龙

470910357@qq.com

时间

2014-08-17

 

 

 

 

1,架构设计

 

1.1 总体架构

服务器采用openfire

家庭控制端需要一个android设备,例如闲置的android手机,作为homedevice controller。它通过wifi家庭网关(路由器)连接到服务器,同时通过蓝牙,wifi等其他无线方式连接到受控设备。

控制端是一台android手机(或者其他),用于发送控制命令。

 

 

 

 

1.2 Home Device Controller

家庭控制器,作为家庭内部设备的控制中心。内置Asmack,并定义智能家居的描述语言。和外设的连接通过插件apk来通信。

插件式管理有利于我们的sdk推广,成为真正的通用型平台。


1.3 家庭设备

通过无线来通信的家电设备

 

 

 

 

1.4 一次控制的交互时序图

 

 

 

 

2 实现层

2.1 包及类图结构

 

 

 

包的依赖关系

我们的 SmartHome依赖Eim,而Eim又依赖asmack。

 

 

 

1)IActivitySupport接口

/**

* 获取EimApplication.

*/

public abstract EimApplication getEimApplication();

/**

* 开启服务.

*/

public abstract void startService();

/**

* 终止服务.

*/

public abstract void stopService();

/**

* 校验网络-如果没有网络就弹出设置,并返回true.

*/

public abstract booleanvalidateInternet();

/**

* 校验网络-如果没有网络就返回true.

*/

public abstract booleanhasInternetConnected();

/**

* 退出应用.

*/

public abstract void isExit();

/**

* 判断GPS是否已经开启.

*/

public abstract booleanhasLocationGPS();

/**

* 判断基站是否已经开启.

*/

public abstract booleanhasLocationNetWork();

/**

* 检查内存卡.

*/

public abstract voidcheckMemoryCard();

/**

* 显示toast.

*/

public abstract voidshowToast(String text,int longint);

/**

* 短时间显示toast.

*/

public abstract voidshowToast(String text);

/**

* 获取进度条.

*/

public abstract ProgressDialog getProgressDialog();

/**

* 返回当前Activity上下文.

*/

public abstract Context getContext();

/**

* 获取当前登录用户的SharedPreferences配置.  

*/

publicSharedPreferences getLoginUserSharedPre();

/**

* 保存用户配置.

*/

 

public void saveLoginConfig(LoginConfig loginConfig);

/**

* 获取用户配置.

*/

public LoginConfiggetLoginConfig();

/**

* 用户是否在线(当前网络是否重连成功)

*/

public boolean getUserOnlineState();

/**

 * 设置用户在线状态 true在线 false不在线

 */

public void setUserOnlineState(boolean isOnline);

/**

* 发出Notification的method.

*/

public void setNotiType(int iconId, StringcontentTitle,

                     StringcontentText, Class activity, String from);

 

 

 

2) ActivitySupport

主要是检查网络,sdcard以及用户配置等基本环境,然后通过startService来开启四个服务。

 

 

 

 3)AContactorSupport

它主要是包含一个广播接收器成员,该接收器类是它的内部类。它监听着那些它感兴趣的action。

 

 

4)IMContactservice

联系人服务类,它主要是维护用户的花名册(联系人),它是一个服务,对外传送数据是通过广播的形式。

该服务主要是监听用户联系人的变化,asmack提供了几组对数据包的回调函数,即linstener。IMContactService是监听了(packet listener)Presence.Type.subscribe,别人加它为好友的时候回调;还有一个RosterListener,监听整个花名册的变化。

这个类是设计的最失败的类,因为太复杂了。应该解耦。例如花名册的消息就应该和chat的分来来。揉在一起,很痛苦的。

 

 

RosterListener是一个接口,它包含了的方法有:

增加/更新/删除/改变,具体含义去看相应代码,在此不列出。

 

    /**

     * Called when rosterentries are added.

     */

    public voidentriesAdded(Collection<String> addresses);

 

    /**

     * Called when a rosterentries are updated.

     */

    public void entriesUpdated(Collection<String> addresses);

 

    /**

     * Called when a rosterentries are removed.

  */

    public voidentriesDeleted(Collection<String> addresses);

 

    /**

     * Called when thepresence of a roster entry is changed. Care should be taken

     */

    public voidpresenceChanged(Presence presence);

 

 

5)IMChatService

聊天服务

 该服务,只是向XMPPConnection注册了个chat类型的数据包监听器,当connect收到chat类型的数据包之后会调用这里的processPacket函数。


6)IMSystemMsgService

系统消息服务类,监听系统消息,就是那种系统广播,如QQ的弹框消息。


7)ReConnectService

重连服务类,主要是通过一个广播监听器来监听系统网络的变化CONNECTIVITY_ACTION,如果网络改变,则对xmppconnection连接进行重连。

 



从上面的类图关系我们可以看出,这个设计其实并不合理的。服务不应该在ActivitySupport里面启动,这种设计的扩展性是非常的差,不过,startService在EIM中也只调用了一次,在LoginTask类里面。我个人觉得这个服务开启应该单独开来,和activity无关。先凑合用吧。哎,懒惰是一剂毒药,它会让你慢慢死去,勤奋也是一剂毒药,它会让你撕心裂肺。

 

8)AchatActivity

抽象对话类关系

 

 

 

总结下,可以得出EIM的组件图如下:

XMPPConnection对象是连接对象,负责和服务器的连接。整个就一个连接。

各种服务Service通过对XMPPConnection注册回调的方式来监听它们想要的包。当监测的包到来的时候,出了保存到本地,同时也广播出去。Activity会有个广播接收器,接收Service广播的消息,如果是感兴趣的,则处理,更新相应的UI。

这就是整个EIM的结构。


 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

智能家居设计软件 完美的智能家居的设计软件,智能家居可选用软件。 立即下载

相关推荐

智能家居设计

主要研究通过微控制器ARM结合WiFi技术,设计并制作一套微型的测控终端系统模型,利用STM32F103主控芯片控制WiFi模块ESP8266,结合上位机实现对家居节能灯,窗帘(步进电机)的无线控制,以及对室内温度湿度(单总线式数字温湿度传感器 DHT11 )的采集和监测。实现了局域网内多节点无线智能测控的问题。本文详细地介绍了系统总体工作的基本原理、硬件设计、软件设计以及系统简易实物模型的设计。

C11:Unity3D制作智能家居设计软件——实现一键智能设计

智能设计 不用动手设计???一键智能设计??? 这是人工智能AI ??? 是的,人工智能好玩的地方就在这里,AI-智能化模拟人类思考方式,合理的例用AI思维可以给各产业带来更高效的工作方式,家装设计领域一样如此。 博主初识人工智能是在大二的时候,那会自己研究了一个人工智能鱼,还参加了硅谷举办的AI大赛,那会人工智能就像一颗种子.avi 深深的扎根进了博主的心…… 人工智能覆盖的应用领域很广很广,而家装设计领域因为涉及到艺术行为,故比常规人工智能更具有挑战性和趣味性。博主做的AI涉...

. 3969

智能家居UML文件

里面是有关智能家居的UML文件,用Rose编写。分为四个顶级用例图:大门管理,家居控制,安防,多媒体

米家?华为?阿里?Homekit?有没有你在用的智能家居平台?

大家好,今天小编想给大家整理一些小编有所了解的智能家居APP。 1.米家APP是连接小米及生态链公司的智能产品,同时也开放接入第三方智能硬件,小米拥有一套完整的生态链,同时自家产品也在不断出新品,他们在推出自己的产品的同时也在接入更多的第三方产品,所以市面上有很多产品都会对外宣传已接入米家APP,意思是,只要购买了这款产品,便可以在米家APP对它直接操控。 2.阿里智能APP是由阿里小智全新升级而来的,是阿里智能家居平台推出的一款智能终端控制手机软件。用户通过该软件能够全面操作家里的智能设备,虽然阿里也

m0_65904381的博客 1924

智能家居系统需求分析与设计文档

软件工程课程项目,用面向数据流的方法对智能家居系统进行分析和设计

android广告SDK原理详解(附源码)

广大的开发者吃糠咽菜开发了一两款APP,获取了一些流量后自然就会想到流量变现,一般情况下大家会选择到百度联盟或者Google Admob这些广告服务提供商注册开发者账号,在自己的APP里面加上几行广告位代码,集成他们的广告SDK包。然后谋事在人,成事在天,只有每天看报表查查收益。   也有一些开发者为了能够提高自己的变现水平,同时接入了好几家的sdk,哪家出的收益高一点我就出哪家的广告,但是这

rmcgogo的博客 1万+

开源智能家居管理平台(Home Assistant)

Home Assistant是一个基于Python开发的开源智能家居管理平台,注重隐私和本地控制。用户可将各种品牌、类型的智能设备汇集到一个平台中进行管理,还能通过丰富的插件、自动化规则和脚本,自定义个性化的智能家居体验。Home Assistant完全开源免费,社区活跃且更新频繁;支持上千种智能设备,能兼容绝大多数智能品牌和协议;可本地运行,数据存储在本地保障隐私安全;提供多种自动化工具,能实现设备联动;支持YAML文件进行个性化配置。

weixin_43156294的博客 2579

基于 Cognex VisionPro 的工业级图像匹配技术全解析

通过本文的深度解析,开发者可以系统掌握 Cognex VisionPro 图像匹配技术的核心原理、开发流程、优化策略及工业级应用。实际项目中,需结合具体场景灵活调整参数,综合运用预处理、特征提取和匹配算法,构建稳定可靠的视觉系统。

品质生活,极致编程。 1594

智能家居简单实现---使用ESP8266简单实现和APP通讯

前段时间,公司利用 ESP8266 这个WiFi模块,做了好多小产品。从手机 APP 直连这个 ESP8266 进行通讯,再到实现远程控制。中间实现过程磕磕碰碰,虽然这方面已经做得非常成熟,但是网上的资料少之又少。现在把实现方式展示出来,同时也算是做一个笔记。 首先这里要实现的是Android端的APP直连ESP8266进行双向通讯。 如果想了解Android端的APP远程连接与ESP8266...

LayneYao的博客 15万+

Matlab:常见涡旋光束仿真

代码: clc clear all close all %% 环形涡旋光束 N = 200; lambda = 632e-9; %波长为632nm k = 2*pi/lambda; %波数 w0 = 3; %束腰半径 x = linspace(-10,10,N); y = linspace(-10,10,N); [X,Y] = meshgrid(x,y); [t...

zzz997的博客 3万+

【AUTOSAR SystemServices】深入解析StbM模块:功能定义、工作原理与代码实现

STBM模块:AUTOSAR同步时基管理核心解析 STBM(同步时基管理器)是AUTOSAR标准中实现车载系统时间同步的关键模块,主要功能包括: 时间基准管理:支持全局时基、偏移时基和纯本地时基三种类型,通过StbM_SetGlobalTime和StbM_SetOffset实现主从节点同步。 校正机制:采用偏移校正和速率校正算法(PPM级精度)补偿时钟偏差,确保多ECU时间一致性。 事件处理:监控时间跳变和超时事件,通过回调机制通知上层应用。 典型应用:用于CAN/Ethernet总线同步、时间触发调度及诊

1459

C6:Unity3D制作智能家居设计软件——智能装修(一)

------对设计师友好------ 智能装修领域水太深,个体户正常的装修流程是:找装修公司——找设计师——设计师出效果图——用户看效果——提修改需求——设计师加班出效果图——用户看效果——提修改需求——设计师拼命加班出效果图——用户看效果——提修改需求——设计师…卒! 懂行的设计师们都知道,用户需求千变万化、公司若想卖设计卖方案,设计师宝宝们便每天加班赶进度高深夜,所以最...

. 8226

端到端自动驾驶:特斯拉FSD Beta技术拆解

端到端自动驾驶:特斯拉FSD Beta技术拆解 ,人工智能,计算机视觉,大模型,AI,这篇文章围绕特斯拉FSD Beta的端到端自动驾驶技术展开,先介绍端到端自动驾驶的定义、与传统方案的区别及FSD Beta的特点,再阐述其硬件基础、技术架构,解析关键技术,还涉及训练数据与标注、安全与冗余设计、实际应用场景与挑战以及技术迭代与更新等内容,展现了该技术的多方面情况。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

C10:Unity3D制作智能家居设计软件——三步实现家具生长动画

收到很多设计师朋友吐槽,用3Dmax做家具生长动画又慢又麻烦,能否在我的软件里出一个自动生成家具生长动画的功能?我的回答是:OJBK啊!设计师是我的上帝,当然要满足上帝的需求。这篇文章是作为家具生长动画功能的剖析,详细介绍如何呈现动画效果的实现过程。下面先看一段视频。 家具生长动画 ...

. 4880

Test-Time Adaptation Induces Stronger Accuracy and Agreement-on-the-Line

TTA不管是否提高了OOD的泛化性都增强了线性的趋势,TTA的初始目的是为了增强OOD的表现,一个人可能会觉得TTA使得ACL更强的原因是他消除了ID和OOD之间的差距,因此所有模型间ID vs OOD的准确率接近于y=x这条线,但是实际上这个解释不能够反映我们的经验发现,因为虽然TTA将分布之间的偏移简化为一种放缩的分布,但是这个放缩的因子幅值可能很大,也就是α<<1但是r>>1,这就会导致很偏离y=x这条线,而且理论分析也是,虽然ID和OOD的差距很大,但是线性关系还在。

m0_62673638的博客 148

Modbus测试工具ModbusPoll与Modbus Slave使用方法 小白实操记录

Modbus 下面介绍modbus标准协议从站、主站仿真工具;可用于指令下发,数据采集等;是学习、现场运维的好工具。 1 介绍 Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支持ModbusRTU、ASCII、TCP/IP。用来帮助开发人员测试Modbus从设备,或者其它Modbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改

码灵的博客 1万+

C1:Unity3D制作智能家居设计软件——前沿

2017年还在做服装定制行业,2018莫名其妙进入了家具行业,使用Unity3D引擎从0到1做了个智能家居设计软件,接下来的篇幅会详细介绍软件开发过程中的各个实现细节和此款软件解决了哪些行业问题。 ...

. 2876

74、刀具磨损监测与寿命预测分析

本文综述了刀具磨损监测与寿命预测的研究现状,分析了力信号、功率信号、振动信号和声发射信号在刀具状态监测中的应用及其优缺点。介绍了当前常用的刀具寿命模型及故障诊断流程,并总结了基于不同信号的监测方法。文章指出,尽管已有多种方法在理论上取得进展,但在实际应用中仍面临挑战。未来研究方向包括采用更先进的神经网络、深入探索多信号融合技术以及有效利用工业大数据,以提升刀具状态识别的准确性与可靠性。

lstm7chronicler的博客 275

智能家居系统设计与实现

一、设计目的1、根据酷痞Coolpy数据库,相当于一个云平台和Web服务,理解网页控制电源开关的方法和过程,掌握HTML5页面访问与控制的具体协议和通信命令。学会在Coolpy中建立数值型传感器和开关型传感器,并熟悉使用。2、通过Arduino接收RT5350F开发板得到的Coolpy数据库中的开关传感器的开关状态来控制Arduino上的LED灯的亮灭。3、通过Arduino获取光强的强度数值,将...

chushengdeniudu的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

智能家居系统c语言源代码,智能家居软件设计(附源程序).doc

PAGEPAGE 3福建船政交通职业学院毕 业 论 文(设计)题目:智能家居软件设计系 部: 信息工程系姓 名:学 号:专 业: 计算机控制技术年级班级:09计算机控制技术指导教师(职称):二0一二年一月目录TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc313613163" 引言 PAGEREF _Toc313613163 \h 3HY...

weixin_31467557的博客 2586

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C2:Unity3D制作智能家居设计软件——绘制户型(一)

目标:绘制如图所示户型 2D结果:如图所示绘制2D户型图,包含房间信息和各墙体 3D结果:一键生成如图所示3D房型,包含烘焙光照信息,场景渲染 实现过程 {由于实现的代码量过大,只提供主要实现思路给大家,有兴趣的小伙伴可以尝试自己动手写一写} 分...

. 8509

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C3:Unity3D制作智能家居设计软件——绘制户型(二)

上一篇有介绍如何绘制房间墙体和墙体交点,这一篇会介绍绘制户型中的地板和天花板等房间必须的结构。 三、地板 想绘制地板的话,有两个步骤,一:形成的单个地板区域。二:区分并形成多个地板。 有朋友在博文下留言,问了如何形成闭合区域,想必这位博友也有了清晰的制作思路,没错,形成单个地板区域很容易,只需要知道Unity中形成单个mesh的顶点即可,但是如果想同时形成多个地板区域,而又能正确区分每...

. 4381

C7:Unity3D制作智能家居设计软件——智能装修(二)

当你用我们的软件看到你家装修效果后: 真这么厉害的吗???!!!!!! 真这么厉害的吗???!!!!!! 所以,你以为为你家设计软装效果的设计师应该是这样子的: 或者是这样子的 甚至这样的 呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵~~~~~~~~~~~ NO!NO!NO! 真相只有一个!!! 没错,就是这个按钮,绘制完户型后,点击一键自动匹配,按...

. 2798

App设计灵感之十二组精美的智能家居操作App设计案例

智能家居操作是未来科技生活的发展方向,远程互联,智能遥控,不用再亲自操作电器,一部手机全部搞定。 ① Smart Watch Mobile App Design by Hadi Altaf ② Smart KOsan Apps by Fariz Al Faridli ③ Smart home Mobile App by Ghulam Rasool ④ SmartHome App Platform by Sulton handaya ⑤ Smart Home App Design by Hadi Al

╰つ栺尖篴夢ゞ 1189

智能家居系统的设计与实现

摘自:http://www.csmayi.cn/yjzc/hyzc/201103/127410.html   论文关键词:智能家居 嵌入式系统 Windows CE Visual C++ Delphi   论文摘要:本文了基于Windows CE.net 5.0嵌入式操作系统,以使用Intel XScale270为CPU的ARM10嵌入式实验箱为硬件基础,以Visual Studio 2

心随梦动 1万+
上一篇: android日志log4j的使用
下一篇: android View的一些学习记录
minimicall
博客等级 码龄18年 407粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值