资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,智能家居之家电控制,木笙,智能家居,智能化的居住环境。利用的计算机技术、网络通信技术、自动控制等技术,将与家庭生活有关的各种设备结合在一起,通过综合管理,,让家庭生活更舒适、更加安全,高效和节能的一种新技术。与普通家居相比,智能家居不仅具有传统的居住功能,还能给我们打造一个人性化的生活空间;,将一批原来被动静止的家居设备转变为具有“智慧”的工具,帮助家庭与外部保持信息交流,优化人们的生活方式,发展背景,智能家居的概念起源很早,但一直未有具体的建筑案例出现,直到,1984,年美国联合科技公司(,United Technologies Building System,)将建筑设备信息化、整合化概念应用于美国康涅狄格州(,Connecticut),哈特佛市(,Hartford,)的,CityPlaceBuilding,时,才出现了首栋的“智能型建筑”,从此揭开了全世界争相建造智能家居的序幕。,国内现在与发展,智能家居作为一个新生产业,市场消费观念还未形成,但随着移动互联网的崛起,国家对信息产业的大力支持,宽带提速,激发了智能家居的市场潜能,一批企业开始看好智能家居的发展前景。智能家居至今在中国已经历了近12年的发展,从人们最初的梦想,到今天真实的走进我们的生活,经历了一个艰难的过程,萌芽期/智能小区期(1994年-1999年),开创期(2000年-2005年),徘徊期(2006-2010年),融合演变期(2011-2020年),爆发期,应用领域,家庭自动化(Home Automation),家庭网络(Home networking),网络家电(Web TV),信息家电(3C 或者说IA),比尔盖茨的家,智能家电,智能灯泡,智能摄像头,智能空调,课程内容,智能电灯泡,通过蓝牙将手机和智能灯泡连接起来,,实现电灯的打开、关闭、点动等操作,智能监控,通过wifi或者2G、3G、4G网络将手机和智能摄像接起来,实现实时的监控,上下左右移动摄像头等操作。,蓝牙灯泡,什么是蓝牙灯泡,智能家居的一部分,将蓝牙模块和灯泡相结合,通过手机和蓝牙模块进行通讯,控制电灯中的电压板,从而控制灯泡的打开、关闭、点动等操作。,应用场景,住家、卧室、客厅、厨房、浴厕,办公室、会议室、地下室、汗蒸房、美容院、医院、疗养院等等地方。,优缺点,优点:方便、快捷、能耗低、寿命长、扩展性好,缺点:受距离限制(5-10米),不稳定,imagic蓝牙灯泡,revogi蓝牙灯泡,基本组件,灯泡,蓝牙模块,手机,目标:通过手机控制灯泡的打开、关闭、点动操作,效果图,基本流程,关键步骤,获取本地蓝牙适配器,BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();,打开/关闭手机蓝牙,打开手机蓝牙,mBluetoothAdapter.enable();,关闭手机蓝牙,mBluetoothAdapter.disable();,扫描/取消蓝牙设备,扫描蓝牙设备,mBluetoothAdapter.startDiscovery();,取消扫描蓝牙设备,减少资源的消耗,mBluetoothAdapter.cancelDiscovery();,关键步骤,注册蓝牙广播接受者,IntentFilter filter=new IntentFilter();,/开始扫描的广播,filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);,/扫描完成的广播,filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);,/发现一个可用的设备的广播,filter.addAction(BluetoothDevice.ACTION_FOUND);,mBluetoothReceiver=new BluetoothReceiver();,/注册监听,registerReceiver(mBluetoothReceiver,filter);,关键步骤,蓝牙广播接受者,class BluetoothReceiver extends BroadcastReceiver,Override,public void onReceive(Context context,Intent intent),/获取蓝牙设备,连接设备,public void connectServer(final BluetoothDevice device),new Thread(new Runnable(),Override,public void run(),try,System.out.println(randomUUID.toString();,BluetoothSocket clientSocket=device.,createRfcommSocketToServiceRecord(,UUID.fromString(00001101-0000-1000-8000-00805f9b34fb);,clientSocket.connect();,out=clientSocket.getOutputStream();,System.out.println(连接成功);,Looper.prepare();,Toast.makeText(BluetoothDemoActivity.this,连接成功,0).show();,Looper.loop();,catch(IOException e),e.printStackTrace();,).start();,关键步骤,打开灯泡,private void openLight(),if(out=null)return;,try,/向服务端写数据,byte b=new byte5;,b0=(byte)0 x01;,b1=(byte)0 x99;,b2=(byte)0 x10;,b3=(byte)0 x10;,b4=(byte)0 x99;,out.write(b);,out.flush();,catch(IOException e),Toast.makeText(this,打开失败,0).show();,e.printStackTrace();,关键步骤,注销广播接受者,Override,protected void onDestroy(),super.onDestroy();,unregisterReceiver(mBluetoothReceiver);,功能扩展,加入语音控制灯泡的开灯,关灯,利用讯飞语音的语音读写功能,http:/ 有延时情况,小米摄像头,所需组件,1.网络摄像头,2.操控软件(PC或者APP),通过软件操作摄像头,我们今天来开发一个app,通过app开控制摄像头上下左右移动的简单Demo,效果图,基本流程,关键步骤,1.导入jar包和.so文件,jar包中需要用到的类和参数,Cmaera摄像头对象,封装了摄像头参数和相关操作的类,例如:,DEFAULT_AV_CHANEL 默认的渠道号,表示收集和摄像头连接的线路,Camera.CONNECTION_STATE_CONNECTING 正在连接的状态,connect()连接,disconnect()断开连接,registerIOTCListener()注册iotc指令返回信息监听,startshow()显示画面,stopshow()停止显示画面,sendIOCtrl()发送指令,jar包中需要用到的类和参数,Monitor 监控画面控件,继承自,SurfaceView,初始化参数和方法,例如:,DEFAULT_MAX_ZOOM_SCALE 默认最大焦距,PTZ_SPEED 移动速度,PTZ_DELAY,移动延时,FLING_MIN_DISTANCE,转动的最小距离,FLING_MIN_VELOCITY,移动的速率,setMaxZoom(),设置最大的焦距,attachCamera(Camera camera,int channel),绑定摄像头,deattachCamera(),解除绑定,jar包中需要用到的类和参数,IRegisterIOTCListener 指令返回信息的监听器,receiveChannelInfo();获取渠道返回的信息,receiveIOCtrlData();获取操作指令返回的信息,AVIOCTRLDEFs,封装了各种指令类型以及封装了各种指令类,型参数的内部类,OTYPE_USER_IPCAM_GETSUPPORTSTREAM_REQ 获取流的请求IOTYPE_USER_IPCAM_PTZ_COMMAND 移动指令,AVIOCTRL_PTZ_UP 上移动指令,内部类:SMsgAVIoctrl.封装指令参数内部类,关键步骤,2.连接摄像头,2.1初始化显示控件,com.tutk.IOTC.Monitor,2.2初始化摄像头和连接,初始化摄像头,Camera.init();,Camera camera=new Camera();,连接摄像头,camera.connect(uid);,camera.start(Camera.DEFAULT_AV_CHANEL,name,passowrd);,2.3注册监听发送测试指令,注册监听,camera.registerIOTCListener(this);,发送指令,camera.sendIOCtrl(Camera.DEFAULT_AV_CHANNEL,AVIOCTRLDEFs.IOTYPE_USER_IPCAM_GETSUPPORTSTREAM_REQ,SMsgAVIoctrlGetSupportStreamReq.parseContent();,关键步骤,3.获取指令返回信息和连接状态,获取指令信息的方法,Override,public void receiveChannelInfo(Camera camera,int channel,int resultCode),Message message=Message.obtain();,message.what=resultCode;,handler.sendMessage(message);,关键步骤,4.显示监控画面,/1,判断摄像头是否在连接状态,if(camera!=null&camera.isChannelConnected(Camera.DEFAULT_AV_CHANNEL),/2,设置最大焦距,monitor.setMaxZoom(1.0f);,/3,绑定摄像头,monitor.attachCamera(camera,Camera.DEFAULT_AV_CHANNEL);,/参数1:渠道号,/参数2:是否允许拍照,true 允许拍照;false 不允许拍照,camera.startShow(Camera.DEFAULT_AV_CHANNEL,true);,关键步骤,5.上下左右移动控制,/移动指令,camera.sendIOCtrl(Camera.DEFAULT_AV_CHANNEL,AVIOCTRLDEFs.IOTYPE_USER_IPCAM_PTZ_COMMAND,SMsgAVIoctrlPtzCmd.parseContent(,(byte)AVIOCTRLDEFs.AVIOCTRL_PTZ_UP,(byte)0,(byte)0,(byte)0,(byte)0,(byte)Camera.DEFAULT_AV_CHANNEL);,关键步骤,6.断开连接,1).解除绑定,cameraplay.deattachCamera();解除绑定,camera.stopShow(Camera.DEFAULT_AV_CHANNEL);结束显示,2).断开连接,camera.stop(Camera.DEFAULT_AV_CHAN
展开阅读全文