【Android开发—智能家居系列】(一):智能家居原理
来到JCZB公司的第二天,就接到了开发类似于小米智能家庭APP的任务。组长让我在手机上安装上此款APP,给了我个小米智能插座,就让我开始了解需求。这便开启了我的智能家居旅程。说实话,我也真是out的无边无际,智能家居的概念起源很早,我却对它一无所知。所以一边在心里悄悄嘀咕“自己能完成任务吗?”,一边就开始查各种相关资料进行脑补。
【简介】
智能家居是在互联网的影响之下物联化体现。智能家居通过物联网技术将家中的各种设备连接到一起,提供各种控制或者定时控制的功能和手段。与普通家居相比,智能家居不仅具有传统的家庭居住功能,同时还兼备建筑、网络通信、信息家电、设备自动化功能,提供全方位的信息交互功能。
【两种方式】
实现智能控制的方法,我了解到的有两种:
一种是通过wifi或者2G、3G、4G网络将手机和智能设备连接起来,实现打开,关闭,设定等操作。
一种是通过蓝牙将手机和智能设备连接起来,实现设备的打开、关闭等操作。
【原理】
现在我以智能插座为例,按第一种方式(通过WIFI)介绍一下智能家居实现原理。
WIFI插座(智能插座)工作原理:
注:WIFI插座中嵌入了WIFI模块①.通过手机端APP中的配置程序,配置模块要连接的路由器的名称(SSID)和密钥;
②. 将WIFI模块连接路由器,路由器通过外网连接到服务器,如小米的服务器。完成连接工作。
③.手机等控制终端连接远程服务器,下达命令;
④.远程服务器将用户指令下发给住宅中的WiFi插座
⑤.WiFi插座完成相应的通、断电动作。
这样说,大家可能还是感觉比较晕乎。比如,我家里有个WIFI插座,我在第一次使用时用手机将WIFI插座和家里的路由连接好,家里的路由也能通外网。保证WIFI插座与路由,路由与外网之间的通信没有问题。然后在我下班到家之前,我想做一壶热水,我首先要把插座开关打开。然后我就打开手机上的APP,只要手机连着网(WIFI或者2G、3G、4G网都可以),点击界面上的“开”的按钮就可以让家里的插座通电了。
【总结】
智能家居系统
智能家居为我们提供了很多方便。炎炎夏日,在到家之前就把空调打开,进门之后,我们就能享受阵阵清凉。整个过程其实可看作两个阶段:一是通过手机,让WIFI模块接入网络,而是通过网络,使用手机对模块发送指令。
【Android开发—智能家居系列】(一):智能家居原理的更多相关文章
- [Android开发学iOS系列] 工具篇: Xcode使用和快捷键
[Android开发学iOS系列] 工具篇: Xcode使用和快捷键 工欲善其事必先利其器. 编辑 Cmd + N: 新建文件 Option + Cmd + N: 新建文件夹 Cmd + / : 注释 ...
- [Android开发学iOS系列] iOS写UI的几种方式
[Android开发学iOS系列] iOS写UI的几种方式 作为一个现代化的平台, iOS的发展也经历了好几个时代. 本文讲讲iOS写UI的几种主要方式和各自的特点. iOS写UI的方式 在iOS中写 ...
- [Android开发学iOS系列] Auto Layout
[Android开发学iOS系列] Auto Layout 内容: 介绍什么是Auto Layout. 基本使用方法 在代码中写约束的方法 Auto Layout的原理 尺寸和优先级 Auto Lay ...
- Android开发中Eclipse里的智能提示设置
今天开始学习一下Android开发,直接在Android Developers下载的一个开发工具包,然后再下了一个JDK,配置完环境变量等一系列的工作后环境就搭建好了,在新建好第一个Android项目 ...
- android开发学习笔记系列(2)-android应用界面编程
前言 本篇博客将会简要介绍andriod开发过程中的一些界面元素和编程的实现,我将大家走进安卓的XML世界,当然可能会涉及到java代码,当然本文主要是介绍XML文件的界面布局. 那么我们的XML存在 ...
- android开发学习笔记系列(1)-android起航
前言 在学习安卓的过程中,我觉得非常有必要将自己所学的东西进行整理,因为每每当我知道我应该是如何去实现功能的时候,有许多细节问题我总是会遗漏,因此我也萌生了写一系列博客来描述自己学习的路线,让我的an ...
- [Android开发学iOS系列] 语言篇: Swift vs Kotlin
Swift vs Kotlin 这篇文章是想着帮助Android开发快速学习Swift编程语言用的. (因为这个文章的作者立场就是这样.) 我不想写一个非常长, 非常详尽的文章, 只是想写一个快速的版 ...
- Android开发进阶——自定义View的使用及其原理探索
在Android开发中,系统提供给我们的UI控件是有限的,当我们需要使用一些特殊的控件的时候,只靠系统提供的控件,可能无法达到我们想要的效果,这时,就需要我们自定义一些控件,来完成我们想要的效果了.下 ...
- android开发学习笔记系列(4)--android动态布局
前言 在做一个有关苏果APP的项目中,但是fuck的是,我完全使用相对布局之后及线性布局之后发现坑爹的事情了,屏幕不能适配,这是多大的痛,意味着,必须使用相应的代码实现动态布局!呵呵,不做项目不知道, ...
- android开发学习笔记系列(6)--代码规范
在开发android的时候,我对自己写的代码很是不满,原因在于自己看到别人的代码,很是头痛,原因很简单,别人写的代码,我就要去猜他的意思,极其烦恼,嗯,就是他没有遵循代码规范,因此我在博客园上寻找一篇 ...
随机推荐
- (43)zabbix报警媒介介绍
zabbix触发器到了要发送通知的情况下,需要一个中间介质来接收并传递它的消息给运维们,以往用nagios,通常用脚本发送邮件或者发送飞信来达到报警.这个脚本实际上就是一个媒介了. zabbix有如下 ...
- python安装mysql-connector出错
windows 7环境 1.进入命令行执行以下命令: C:\Users\Administrator>pip install mysql-connector 注:安装下载较慢,直接失败,改用VPN ...
- NFS网络共享服务 挂载参数及优化 内核优化建议
配置NFS服务端 nfs01上安装软件 [root@nfs01 ~]# yum install nfs-utils rpcbind -y nfs-utils:NFS服务的主程序,包括rpc.nfsd. ...
- linux中mysql自带同步
今天打算给一个做主备web服务器.考虑到数据库的同步,现在自己本地虚拟机做个实验. 经过慎重考虑(其实就是参考了下论坛大家的看法). 最后决定用mysql自带的同步设置. 话不多说 配置过程如下.
- struct 区别 在C 和C++ 中
C语言中: Struct是用户自定义数据类型(UDT). C++语言中: Struct是抽象数据类型(ADT),支持成员函数的定义. 在C++中,struct的成员的默认访问说 ...
- LeetCode(137) Single Number II
题目 Given an array of integers, every element appears three times except for one. Find that single on ...
- Verilog学习笔记基本语法篇(三)·········赋值语句(待补充)
在Verilog HDL语言中,信号有两种赋值方式. A)非阻塞赋值(Non-Blocking)方式(如:b<=a;) (1)在语句块中,上面语句所赋值的变量不能立即为下面的语句所用: (2)块 ...
- 基础训练 FJ的字符串
FJ的字符串 #include<iostream> #include<string.h> using namespace std; int main(){ string str ...
- python基础——11(模块初识)
一.函数回调 # 提前写出函数的调用,再去考虑函数体的实现 # 怎么样提前写出函数的调用:在另一个函数中写出函数的调用 # 再去考虑函数体的实现:根据实际的需求 # 自定义一个sleep def my ...
- struts向网页输出图片验证码
前言:今天做个功能需要展示图片到页面,并不是下载,在网上搜了老半天,大部分都是下载,有的话也是只能在IE下进行输出,其它浏览器就都是下载了. Action代码: public String proce ...