前言

智能家居,又称智能住宅,在国外常用Smart Home表示。通俗来说,智能家居是将灯光、家电、家庭影院、燃气预警、远程控制、电动窗帘、安防设备、背景音乐等连接成一个网络——物联网,通过一台智能家居主机(控制管理系统)进行统一管理,实现家居设备的自动化和智能化控制,给使用者带来最大程度的高效、便捷、舒适与安全的体验。

使用者可通过语音、短信、手机或平板电脑触摸屏、无线遥控器、上网设备等在家里或通过网络远程控制家用设备。我们想象一下,在回家的路上,你可以提前用手机打开家中的空调和热水器;晚上走进自己家的门厅时,对着门厅直接说“开灯”,门厅的灯就亮了;开门时,安卓密码锁功能开启,系统会自动打开电子门锁,安防撤防;坐在沙发上用手机遥控自己家的电视、空调;睡觉前在床上就可以用手机关闭所有房间的灯光。这一切是多么惬意啊!

出门在外,如果突然想起家里的水壶还在炉台上加热,我们可以通过网络远程、短信等关闭燃气阀门;也可以在接到家中安防告警的短信或家中患病的老人通过手机发来的SOS短信时,在网上通过摄像头观察家中的情况。

我们还可以进一步设定和执行各种复杂的场景操作,假如使用安卓手机设计了一个“家庭影院”场景,当按下“家庭影院”场景按钮时,智能家居系统将自动执行事先设定好的多个动作:关闭窗帘、关闭吊灯、打开背景灯、打开电视并切换到高清输入模式、打开DVD、打开功放等,以前需要执行多个动作,现在只需按一个键就可以全部完成了。正如比尔·盖茨在《未来之路》中曾经说过的那样:“在不远的未来,没有智能家居系统的住宅会像今天不能上网的住宅那样不合潮流。”

很多人或许觉得智能生活离我们还很远,只是个传说中的东西,只闻其名不见其形。其实智能家居系统早已在高端住宅或别墅中实现了,只是没有普及到大众家中,究其原因,首先是目前主流的智能家居厂家如美国Control4(华歌)、霍尼韦尔、索博、波创、科力屋等,一套系统动辄几万、几十万,甚至上百万,这不是一般家庭能够消费得起的。

其次,市场上许多智能家居产品的功能多为噱头,实用性不强,价格偏高,与我们的实际需求相距甚远。比如,某品牌的智能马桶,价格在万元以上,拥有诸多功能,如自动冲洗、洁身、坐圈加热、暖风烘干、除菌消毒以及夜间照明等,但其中很多功能对于一般家庭来说中看不中用。其实智能家居系统对使用者来说实用和舒适最重要。

能不能我们自己动手做一套简单易用的智能家居系统呢?答案是肯定的。作为一名业余电子爱好者,我很早就考虑自己动手设计一套符合自己需求的智能家居系统,只是一直没有找到合适的平台。2014年年初接触到Arduino互动电子技术后,其系统软硬件的开源性、丰富的扩展性给我很大启发,于是决定利用Arduino电子积木搭建心中的系统,从开始的点滴尝试到最终完成虽经历了很多曲折,却让我学到了更多的知识。对有兴趣动手做电子产品的业余电子爱好者说,其实做一个产品并不难,难的是恒心和毅力。

大家或许觉得智能家居系统涉及计算机技术、网络通信技术、传感器技术、互联网技术,这么多技术都要学习一定很难。我要对大家说,零基础的读者也可以完成本书所涉及的内容。利用Arduino开源代码,可以完全不需要了解硬件、内部结构和寄存器设置的特点,仅仅知道它的端口作用即可;即使完全不懂硬件知识,只要会简单的C语言,就可以按照书中一步一步的指导完成整个系统的搭建。

手机上的Android程序编写工作也许会让大家头痛,为此,在本书中,我向大家介绍一款图形化的编程软件App Inventor。它根本不需要你具备任何编程知识,只要像搭积木一样将预先存放好的组件拖到你想要的位置,即可完成一个复杂的Android程序。

本书前6章介绍了8个手机Android程序和Arduino单片机利用蓝牙之间相互通信控制的实验制作过程,一个用语音控制Arduino遥控器实验和一个室内温湿度用语音合成器播报实验。第7章介绍了3个物联网平台功能和借助平台通过网页接收数据并控制设备的方法,以及如何实现微博发布和微信互动。最后一章介绍了如何自己动手搭建一个微信智能家居平台。这一章里涉及PHP语言和MySQL数据库知识。大家只要根据注释部分修改自己的信息,复制其他部分就可以实现微信平台的搭建。

如果大家在实验过程中觉得制作过程比较繁琐,也可以直接到附录B指定的网站下载我已经编写好的程序和源代码。实验中所需要的素材、库函数、App Inventor离线数据包、Arduino编译软件等书中所提到的所有需要从网上下载的程序和资料也都保存在附录B指定的网站上,供大家下载和相互学习。

这本书能够出版,首先感谢机械工业出版社华章公司能够给我这么一个机会,还要特别感谢华章公司的编辑们,没有他们的辛苦工作,这本书不可能与广大读者见面。

我还要感谢张国强和程晨两位老师对本书提供的帮助和指导,他们提供了大量信息和资料。这里还要向大家推荐两本书:《Arduino开发实战指南》(程晨编著)、《C++程序设计》(谭浩强编著)。如果大家对我的作品感兴趣,就一起动手吧!

由于时间非常仓促,作者水平有限,书中难免存在错误,恳请广大读者批评指正!

赵志