理工男打造帝都89平智能家庭

 

毕业后的2016年年初,搬入新家,总算不用在出租屋里鬼混了,于是就想把之前童年的梦想:智能家居+家庭影院好好实现一下~ 相比帝都高昂的房价,这些东东还凑合玩得起,不过在有限预算下实现尽可能定制和强大的功能会更有意思。我yy了以下几个场景:

  • 每当下班回家,指纹解锁大门,家里温馨的灯光自动打开,天气热的话空调也会自动开启。第二天如果下雨,前一天晚上灯光还会自动提醒我带伞。

  • 即使出差在外地,我也能在宾馆里随时看家里电影,像访问本地硬盘一样读取家里文件,远程控制下载。

  • 对手机说“我要看电影!”就能关闭所有强光源,打开柔和的背景灯光,120寸的投影自动点亮,客厅窗帘关闭,家庭影院启动。然后手机还会推荐我哪些蓝光碟我还没看过。

整个户型为两室一厅,超长的客厅,集成了餐厅和阳台,严格来说这不是多么优秀的户型,可是预算有限木有办法。但好处是有一块特别巨大的白墙供我安装幕布,整体的家装以白色调为主,我们的智能家庭配置就都在这些基础之上进行。

智能家居

高端智能家居设备动辄成千上万,而且根本不开放编程接口,这必然是我不接受的,由于之前就有一套树莓派,功耗很低,用一根USB线供电就好,特别适合打造为中控。虽然我对小米手机等设备毫无好感,不过他家的智能家居物优价廉,还可以通过破解通信协议实现可编程控制,深得我意。

我购入了小米智能家居的大部分设备(温湿度,人体监测,智能开关,智能插线板,彩光灯泡和彩色灯带各一个),不过之前已经有三星空气净化器和净水器,我对扫地机器人也无太大好感,够用就好。所有这些成本不足1000元~

多功能网关(149元)是必须的,这样才能发挥所有设备的优势,并接入树莓派(279元)。而智能遥控器(79)更是良心之选,这种圆形设计能够控制身边的所有红外设备,因此改造成本很低。当然缺点很明显,就是只能控制而无反馈,你根本不知道空调或者电视到底开没开。

米家APP设计很简单,你能设置各种触发条件和情景模式,当进入卫生间时,人体传感器会检测到,之后照明会自动亮起。当想看电影或者打游戏时,只需要一个按键,之后窗帘关闭,投影打开,音响启动...

我把家里都换成了智能插线板(小米WIFI),平日离家除了路由器和树莓派之外都处于休眠状态,大大减少了待机功耗,当我回家之后这些插线板才自动开启,算下来一年能省好多电费~智能指纹锁是三星SHS-H705(亚马逊购入),我已经有四五次出门忘带钥匙了(ㄒoㄒ)

这些都是app的基本功能,稍微研究一下即可学会,只是这样就够了吗?这不能满足懒癌极客对智能设备的要求!iOS的语音唤醒让我印象深刻,我希望完全不动手,对着手机说“打开投影仪!“就能完成所有功能。所以我们就需要解决HomeKit和小米设备的互联互通。

网上类似的攻略不多,主要是用node.js实现的homebridge套件,以及专门用于小米智能家居的的homebridge-aqara插件。简单来说,Homebridge可以把各种智能设备模拟为满足iOS协议的设备,而后者则可通过TCP请求,访问和读写连接小米网关的各种硬件,这些都在GitHub上开放源代码。我在家里折腾了两个下午,才在树莓派上将所有插件安装完毕并成功运行,就像下面这个样子:

但是,这些插件的功能依然很弱,比如:

  • 无法一个命令同时控制多个设备
  • 不能实现”第二天下雨,则通过灯光颜色提醒我出门带伞“
  • 不能时刻记录我的习惯,实现更精确的数据分析

解决方法就是从小米的原生通信协议开始,修改homebridge源代码,,读取天气API获取天气预报数据,使用js注入的方式自定义逻辑。除此之外,我还会将所有家里行为数据的报表通过树莓派写入家里的MongoDB数据库,做之后的数据分析。看看几年下来我到底变懒没有。

离家之后,外网是无法通过树莓派直接控制家里设备的,这就需要做内网穿透,我不放心类似花生壳这类设备的安全性,因此就在阿里云主机上自己搭建了用go语言实现的ngrok反向代理,通过个人域名即可在任何地方管理家里的所有设备。某天晚上我在杭州宾馆闲来无事,还远程家里的树莓派暴力破解了邻居家的WIFI密码...

当然,不是所有时候都适合用语音,我在沙漠之鹰公众号上输入一串密码,即可切为管理员模式,通过自然语言就能与家里的设备交互,其中语义解析的部分用了之前编写的tnpy(也在GitHub上开源),超级方便。由于篇幅的关系,此处不展开。有兴趣的同学可以后台交流。

家庭影院

沙漠君是个特别喜欢宅在家里看电影的人,以前没有一大面墙供我安装投影幕布,这次有了足够的空间供我捯饬了。

投影仪使用了明基的W1070+, 1080P分辨率,2500流明,性价比较高,购入价6500左右,一年后价钱跌了1K,不过早买早享受嘛。虽然号称支持梯度矫正和侧投,但侧投效果很渣,画质影响很大,因此有条件一定要正面安装。

我在幕布上费了很多心思,因为母上不喜欢关灯拉窗帘看电视(估计没人喜欢),考虑过抗光幕,可是低端款的抗光幕就是七八千块钱,而且是一整块金属,电梯进不去,只能从外面用绳子吊上来,还要拆窗户,那画面简直累觉不爱。而且由于抗光幕的特性,对安装位置和观看角度都有需求。最后还是弃抗光幕选择了普通的增益框架白幕,价格2k左右。虽然晚上的观看效果出类拔萃,但是白天不拉窗帘则亮度感人,真是没有办法。

当时给我装投影的小哥说道,家庭影院的效果至少一半来自声音,因此他非常怂恿我换一套好的环绕音响系统。为了搭配整体的白色色调,且尽量不占面积,在预算之内可选并不多,于是就毅然选择了这款:

Sony BDV-N9200WL

JD平日价格6999,我在国庆优惠促销时6399购入。白色款自带灯光效果,会随着音乐一起摇摆。周五摇滚之夜听个DJ还是很带感的。音质可圈可点,由于低音炮的加入,低频渲染能力很强。但让我印象深刻的是它的高音,磁流体扬声器带来的人声相当干净。恕我没有太多接触过万元以上的箱子,这套系统对我来说已经够用。后置环绕音响的接线也完全不用考虑,索尼直接包含了无线音频套件,只是接收器体积感人。

为了渲染气氛,避免看电影时环境光太暗对眼睛造成伤害,我又在沙发后面安装了yeelight智能灯带,可以通过小米智能家居控制颜色和亮度。

由于没有布线,我也不想通过天花板走明线,所以投影仪和播放器之间是通过无线HDMI传送的,可选的设备并不多,我用的是

GUANYEE/冠艺,无线 1080P HDMI连接器,四进一出,1299。

除了刚启动时配对有些慢,显示效果与有线无异。

当然,还要有播放设备加持,XBox360+体感是研究生时候买的,现在除了极品飞车之外很少在用,PS4也有一票游戏碟。看电影主要使用索尼蓝光机,除了三四张蓝光正版铁盒电影之外,其他上百张蓝光碟都是淘宝款,价格超便宜!电影也需要从网上下载,我不太信任百度云和360云盘这种设备的安全性,因此自建NAS成了最好的选择,我使用树莓派作为家庭媒体核心,挂载2块2TB硬盘,通过阿里云代理到外网访问。

效果类似下面这样:

最爽的还是玩类似使命召唤这种FPS游戏,枪林弹雨在耳边清晰可辨,爆炸从低音炮里传出震得茶几直响,感觉甚爽!周五晚上早点回家,坐在沙发上来一瓶啤酒,看个枪战电影也是极好的。

结语

整个智能家庭从前到后折腾了接近一年的时间,成本非常低廉:

  • 小米智能设备,树莓派 约1500元
  • 投影仪,家庭影院,其他外设: 约16000元
  • PS4,XBOX,各类游戏碟: 约5000元
  • 智能门锁,智能马桶盖,空气净化器... (10000元所有)

所有设备的成本总和也就3W元左右,还不足北京一套房子首付的1/50,但是对生活幸福度的提升是巨大的。最重要的树莓派,这个如此便宜却功能强大的Linux系统扩展能力是无限的,我甚至还在上面跑了Python的数据分析服务,而你需要的仅仅是200多元和一条USB线!如果没有它,去买相应的智能设备,价格最少也在五位数以上。

绝大多数情况下,都能通过语音控制一切设备,通过联动实现各种丰富的场景,但这些还远未达到我心目中对”智能“的定义。心情好的时候是不是应该自动帮我放个音乐?是不是早上能帮我自动烤面包?是不是能随时告诉我今天穿什么衣服最合适?我妈说,懒死你得了。

有任何问题,随时留言交流~

作者:热情的沙漠 
出处:http://www.cnblogs.com/buptzym/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载智能家居 作者:热情的沙漠 出处:http://www.cnblogs.com/buptzym/的更多相关文章

  1. 【智能家居篇】wifi在智能家居中的应用

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 在设计智能家居系统方案时,一个很关键的point就是组网方式.组网方式关系到整个智能家居系统的稳定性.可扩展性.实时 ...

  2. Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇

    转载:Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇 目录 HASS 配置框架 主文件设置 Homebridge 设置 鹬蚌相争? 设备追踪设置 更新日志 作者的话 相信 ...

  3. Diy智能家居-1.基于esp8266的语音控制系统(开篇)

    目录Diy智能家居-1.基于esp8266的语音控制系统(开篇) https://blog.csdn.net/arno1988/article/details/82628589 Diy智能家居-2.基 ...

  4. 智能家居实践(番外篇)—— 接入 HomeKit 实现用 Siri 控制家电

    转载:智能家居实践(番外篇)—— 接入 HomeKit 实现用 Siri 控制家电 前面我写了一个系列共三篇的智能家居实践,用的是 Amazon Echo 实现语音控制,但是 Amazon Echo ...

  5. Home Assistant + 树莓派:强大的智能家居系统 · 安装篇

    Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 转载:Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 目录 1. 初始安装 3. Homebridg ...

  6. Android开发SDK接入机智云,智能家居实现APP远程控制多设备

    代码地址如下:http://www.demodashi.com/demo/12847.html 一.前言. 此框架只用了一周星期做了出来,因为对机智云的框架比较熟悉了 !期间SDK初始化出了问题,去咨 ...

  7. 【智能家居篇】wifi网络结构(上)

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! WIFI是什么.相信大家都知道,这里就不作说明了. 我们须要做的是深入了解其工作原理,包含软硬件.网络结构等.先说明 ...

  8. DIY智能家居——零基础入门篇

    概要 本文主要根据笔者从零开始接触硬件,以小白视角开启IoT探索,根据相关资料DIY一个温湿度传感器.后经过探索发现新大陆--Home Assistant&Homebridge,最终实现了一个 ...

  9. 使用Olami SDK 语音控制一个支持HomeKit的智能家居的iOS程序

    前言 HomeKit是苹果发布的智能家居平台.通过HomeKit组件,用户可以通过iphone.iPad和ipod Touch来控制智能灯泡,风扇.空调等支持HomeKit的智能家居,尤其是可以通过S ...

随机推荐

  1. springboot成神之——拦截器

    本文介绍spring boot拦截器 创建拦截器类LogInterceptor.java 创建拦截器类OldLoginInterceptor.java 拦截器配置类WebMvcConfig.java ...

  2. 航图转换相关sql

    --旧库列举所有类型航图 select distinct  c.identifier airport_icao,d.sc_code chart_type,s.namefrom special_char ...

  3. Tornado 高并发源码分析之一---启动一个web服务

    前言: 启动一个tornado 服务器基本代码 class HomeHandler(tornado.web.RequestHandler): #创建 RequesHandler 对象,处理接收到的 h ...

  4. android获取mp4视频文件总时长和视频宽高<转>

    android使用 MediaMetadataRetriever 获取视频文件的 总时长 和视频的分辨率. 根据该方式获取视频信息可以看出不仅仅可以获取时长和分辨率,还能获取到其他的一些视频信息,不错 ...

  5. Android适配器Adapter的学习

    Android中有很多的适配器,首先看看这些适配器的继承结构 这些适配器中,BaseAdapter用的最多,也用的最熟,先放过他,从ArrayAdapter开始 一个listAdapter用来管理一个 ...

  6. 整理出一个比较实用的SqlHelper类 满足大多数情况的使用

    /// <summary> /// SqlHelper类 by zy 2016-3-11 /// </summary> public sealed class SqlHelpe ...

  7. web服务器推送技术

    传统模式的 Web 系统以客户端发出请求.服务器端响应的方式工作.不能满足很多现实应用的需求,譬如: 监控系统:后台硬件温度.电压发生变化: 即时通信系统:其它用户登录.发送信息: 即时报价系统:后台 ...

  8. 06-Location详解之精准匹配

    之前nginx不是编译过吗?现在重新make install一下. 刚刚这个是我们新安装的.原始版的nginx,配置文件比较少,便于我们做调试. 试试精准匹配的概念. 匹配的是/.优先匹配这个最精准的 ...

  9. jQuery 给class附点击事件获取对应的索引

    有一类div标签,class为pointbox,数量不等,有多个.我需要在点击某一个标签的时候实时获取该标签在这类标签中索引值,以便进行其他操作. 代码很简单: $(".pointbox&q ...

  10. SpringMVC Controller 的简单应用

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...