树莓派的功能用途无线热点、机械假肢、简易自制笔记本、WiFi小车、远程发送微博等。
1、无线热点。
这大概是地球人拿来干的最多的一件——插上网线和USB无线网卡,配置之后就可以作为一个无线热点。
2、机械假肢。
MIT Media Lab的研究员把它作为机械假肢的控制器。
3、简易自制笔记本。
把树莓派跟LCD液晶面板连上,再加上鼠标键盘和电源,找一个漂亮的壳子套上,就变成一个简易自制笔记本了。
4、WiFi小车。
IBM的一个工程师把它安在一个模型小车上,然后通过WiFi信号来控制小车的行动。
5、远程发送微博。
气象爱好者把它绑在检测气球上,还用它在平流层发了一条微博。
6、控制车库门开关。
还有拿树莓派控制车库门,再结合Siri遥控车库开关的达人。
7、监控拍摄。
最后还有接上摄像头,连上WiFi作为小型拍摄设备,体型小,易隐藏。
8、备份邮件。
我使用树莓派的最重要的功能之一就是备份我的邮件。我使用一个叫做getmail的软件来检查每份使用POP或者IMAP协议的邮件,定时查看各个帐号的邮件。然后把邮件保存到一个mbox文件,这个文件可以在任何时候被复制到另一台电脑上做长期的邮件归档。
9、搭建个人RSS阅读器。
我最近发现了miniflux,一个自托管的基于网络的RSS客户端,可以安装到树莓派上。和许多人一样,当谷歌宣布将在7月1号关闭Google Reader后我也开始将个人数据迁移出来。我使用了一阵子rss2email,让它把RSS每一条目都发送到我的邮箱中。但其实我不是很喜欢这个方法,于是我花了点时间寻找Google Reader替代品并试过了rss2email之后找到了miniflux。在树莓派上安装miniflux十分简单,你只需要提前安装PHP和一个web服务器软件就好了,比如nginx或者Apache。
10、搭建网站。
树莓派一个很明显的用处就是作为网站的后台服务器。我曾这么用过一阵子,而且很快就要重新这么干。树莓派有足够的能力来处理静态网站,一些web框架也不成问题。我就在上面搭建过一个Flask框架,我甚至听说有的人直接在树莓派搭建了个Wordpress。
11、家用网络存储。
只消耗很低的电量,树莓派就可以成为一个完美的NAS(网络连接式存储)。之前我把一个500GB的笔记本硬盘连接到树莓派上,还在上面安装了一个操作系统。我可以在上面存放许多需要在不同电脑间传输的文件。然后通过SFTP来连接,然后在家里的任何机器上都可以访问(即使不在家,只要路由设定对了也不成问题)。你也可以在派上安装Samba,这样Mac和PC都可以更容易地存取。
12、站点监控。
树莓派的另一个用处就是用来检测对我来说很重要的网站。我写了个Python脚本并定时运行,确保这些网站回复一个200状态码(这意味着一切正常)。如果脚本判断出网站出了问题或者无法访问,会把这个事件的总体情况发邮件给我。我使用的Python模块是Requests,而发邮件的模块则是smtplib。
13、事件提醒。
我让树莓派把我需要记住的重要事件发邮件给我。之前我用的是谷歌日历,但我只在简单事件才用它。所以我用树莓派代替了它,一段定时任务的Python脚本就够了。我设定了要记住的日期、时间和消息,这些参数会传给我的Python脚本,到了那一天它就会把消息发送到我的邮箱,提醒我当天的事件。
14、家庭相册。
我的树莓派同时还支持着一个私人网站,网站放着我所有的家庭照片。我设立了验证信息所以只有我希望让他们看到的人才能进入网站。这比你的Facebook相册要靠谱多了,因为脸书上面你的账户有可能被删除,而且照片会被陌生人偶然看到。很简单,就是用PHP获取树莓派上一个文件夹里的照片而已。
15、点唱机。
上面提到我把派当作一个网络存储器,所以我所有的音乐也都在上面。我的派上接了个立体扬声器,然后使用mpg123在树莓派的命令行里播放音乐。虽然有很多其他的mp3播放器,图形界面的也有,但我还是选择mpg123,因为它简单好用,安装也很方便。
这个太多了,随手写几个:
可以把打印机改装成网络打印机。在树莓派上跑个小服务器,能搭建成一个网络打印机,于是所有电脑就都可以无线打印了。
做成家庭娱乐中心,有这一类树莓派专门刷的系统,可以做成娱乐影音中心,功能类似小米盒子。
可以做机器人、无人机控制板,现在已经很多了。我自己有个项目就是用树莓派控制无人机,实现无人机的远程控制。
做成一个智能家居中心,比方说树莓派上可以接个摄像头,对外发送视频,可以访问来看家里的情况。还可以连接到灯、电器上,远程控制家电。当然还可以接一个红外发射器,能起到遥控器的作用,也能实现远程控制家电的作用。
做成智能化监控,运行一些计算机视觉的软件,就能实现诸如判断画面中有没有人、或者画面中一共有几个人之类的这种应用。
当电脑用。不过这个不常用,因为树莓派的图形界面实在是太卡了。
语音识别开发平台有很多,具体总结如下:(更详细的介绍参见本人的博文:几个常见的语音交互平台的简介和比较)
1商业化的语音交互平台
1)微软Speech API
微软的Speech API(简称为SAPI)是微软推出的包含语音识别(SR)和语音合成(SS)引擎的应用编程接口(API),在Windows下应用 广泛。目前,微软已发布了多个SAPI版本(最新的是SAPI 54版),这些版本要么作为于Speech SDK开发包发布,要么直接被包含在windows 操作系统中发布。SAPI支持多种语言的识别和朗读,包括英文、中文、日文等。
2)IBM viaVoice
IBM是较早开始语音识别方面的研究的机构之一,早在20世纪50年代末期,IBM就开始了语音识别的研究,计算机被设计用来检测特定的语言 模式并得出声音和它对应的文字之间的统计相关性。1999年,IBM发布了VoiceType的一个免费版。2003年,IBM授权ScanSoft公司拥有基于ViaVoice的桌面产品的全球独家经销权,随后ScanSoft与Nuance合并,如今viaVoice早已淡出人们的视线,取而代之的是Nuance。
3)Nuance
Nuance通讯是一家跨国计算机软件技术公司,总部设在美国马萨诸塞州伯灵顿,主要提供语音和图像方面的解决方案和应用。目前的业务集中 在服务器和嵌入式语音识别,电话转向系统,自动电话目录服务等。Nuance语音技术除了语音识别技术外,还包扩语音合成、声纹识别等技术。世界语音技术市场,有超过80%的语音识别是采用Nuance识别引擎技术, 其名下有超过1000个专利技术,公司研发的语音产品可以支持超过50种语言,在全球拥有超过20亿用户。苹果的iPhone 4S的Siri语音识别中就应用了Nuance的语音识别服务。
4)科大讯飞
科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项 技术上拥有国际领先的成果。占有中文语音技术市场60%以上市场份额,语音合成产品市场份额达到70%以上。
5)其他
其他的影响力较大商用语音交互平台有谷歌的语音搜索(Google Voice Search),百度和搜狗的语音输入法等等。
2开源的语音交互平台
1)CMU-Sphinx
CMU-Sphinx也简称为Sphinx(狮身人面像),是卡内基 - 梅隆大学( Carnegie Mellon University,CMU)开发的一款开源的语音识别系统, 它包括一系列的语音识别器和声学模型训练工具。最早的Sphinx-I 由@李开复 (Kai-Fu Lee)于1987年左右开发,使用了固定的HMM模型(含3个大小为256的codebook),它被号称为第一个高性能的连续语音识别 系统(在Resource Management数据库上准确率达到了90%+)。 最新的Sphinx语音识别系统包含如下软件包:
Pocketsphinx — recognizer library written in C
Sphinxbase — support library required by Pocketsphinx
Sphinx4 — adjustable, modifiable recognizer written in Java
CMUclmtk — language model tools
Sphinxtrain — acoustic model training tools
这些软件包的可执行文件和源代码在sourceforge上都可以免费下载得到。
2)HTK
HTK是Hidden Markov Model Toolkit(隐马尔科夫模型工具包)的简称,HTK主要用于语音识别研究,最初是由剑桥大学工程学院(Cambridge University Engineering Department ,CUED)的机器智能实验室(前语音视觉及机器人组) 于1989年开发的,它被用来构建CUED的大词汇量的语音识别系统。HTK的最新版本是09年发布的341版,关于HTK的实现原理和各个工具的使用方法可以参看HTK的文档HTKBook。
3)Julius
Julius是一个高性能、双通道的大词汇量连续语音识别(large vocabulary continues speech recognition,LVCSR)的开源项目, 适合于广大的研究人员和开发人员。它使用3-gram及上下文相关的HMM,在当前的PC机上能够实现实时的语音识别,单词量达到60k个。
4)RWTH ASR
该工具箱包含最新的自动语音识别技术的算法实现,它由 RWTH Aachen 大学的Human Language Technology and Pattern Recognition Group 开发。RWTH ASR工具箱包括声学模型的构建、解析器等重要部分,还包括说话人自适应组件、说话人自适应训练组件、非监督训练组件、个性化 训练和单词词根处理组件等。
5)其他
上面提到的开源工具箱主要都是用于语音识别的,其他的开源语音识别项目还有Kaldi 、simon 、iATROS-speech 、SHoUT 、 Zanzibar OpenIVR 等。
全屋智能家居控制系统推荐攻略如下:
1做智能开关和智能插座。对于单消防电源智能开关,只需卸下原来的机械开关,然后用智能开关替换即可。同样,将旧的插座换成智能的插座。
智能开关
2安装智能红外转发器。红外直放站可以使用智能家居的主控制器通过遥控器(例如电视空调)来控制电器,以便主控制器可以实现通用遥控器的功能,因此需要安装智能红外直放站在电视和其他设备对面的墙上,并确保红外中继器和受控设备之间没有障碍物。
智能红外转发器
3做智能电动窗帘和窗帘控制器。
4在正确的位置安装安全设备,由于所选的安全设备也是完全由无线和电池供电的,因此我们只需将其固定就位。
5安装智能音响系统、智能门锁系统、智能监控系统、智能照明系统、智能空调系统等多方位智能。
6安装完所有设备后,您可以在智能家居手机上安装软件,然后进入系统调试程序。
调试各系统设备
利用树莓派实现米家套件与苹果Homekit对接的准傻瓜级操作技巧
智能家居&报警器的应用效果展示自动化策略推荐
设备准备篇
什么是智能家居?有人说不就是感应灯么,10年前小区楼道里就有了,有什么可说的。从效果上来看,的确真还差不多。但核心的区别在于智能家居可以实现传感器和设备之间的高度可编程性,最终可以实现什么功能完全取决于使用者的想象力。
在开始之前首先要优化一下网络结构,图中全部设备均处于同一网段,斐讯K2和Airport TC均为桥接模式。由于网络设备甚多,为了定时释放缓存(也是为了省电)R8500、整个影音中心模块以及Airport TC会在闲时进行“断电维护”,此时仅有斐讯K2和监控相关设备在持续工作。因此对于需要24小时工作的树莓派和米家网关来说,接在斐讯K2下最合适不过了。
此次智能家居搭建的必备设备为树莓派3代B型、米家多功能网关(传感器配件根据自己的需求搭配购买),实现在同一网络下的苹果Homekit对接,最终可用Siri语音控制。可选设备为Apple TV第四代,可实现远程的家庭设备访问控制及Homekit自动化控制,如果没此需求的话可以省略。
树莓派介绍
树莓派是个高度集成化的一个迷你PC,在不到名片大小的PCB上集成了CPU、内存、网卡、Wifi、蓝牙等芯片,虽然在性能上不要指望太高,但功能和扩展性相当的强大,是极客们开发的理想平台。
为了保护树莓派的PCB及加强散热,需要购买配套的亚克力盒子、散热片、散热器。
树莓派共有4个USB 20、1个100M RJ45、1个HDMI、1个音频输出、一个TF卡槽,对于这种性能量级的产品来说够用。电源接口为1个micro USB,供电规格为5V 25A,推荐使用iPad的充电头,做工好电量足。
树莓派系统安装
想要实现用树莓派将家中智能设备对接苹果Homekit的方法有很多,主流的有三种:1在树莓派原生系统Raspbian中通过指令装Hass控件;2安装集成Hass控件的Hassbian系统;3安装直接安装操作极其简单的图形化Hassio系统。三者最终效果没区别,对于像我这种编程小白来说果断选择第三种方法。
第一步:找个16GB以上的TF卡,并进行格式化,Win格成FAT32、Mac格成ExFAT。(为毛不同系统下格式化的文件系统不一样?因为本人在Mac下格成FAT总报错格不了,就变通一下格成ExFAT了)
第二步:将下载好的Hassio系统镜像用Etcher软件刻录进TF卡中。(和Ghost同理,个人猜测第一步无论格成什么文件格式,在这一步都会变成镜像中的文件格式)
第三步:把TF卡插在树莓派上,树莓派插上网线,开机等5分钟。用在同一个网段的电脑访问http://hassiolocal:8123/ ,如果浏览器出现了与上图相同的界面,恭喜你已经成功一半了。你可以喝个下午茶或吃个大餐庆祝一下去了。(界面里让你等20分钟,那是中关村时间,如果你的网络没有进行科学上网的话,至少一个小时见。)
第四步:等你吃饱喝足撇完大条之后,刷新网页就可以看到以上的界面了。
第五步:安装基本插件Samba、蓝牙、SSH,每一个安装完之后都要将Auto update勾选上,并点击下方的START。
第五步:Samba服务启动之后,在Mac和Win的网络文件夹里就可以看到Hassio的共享盘了。
第六步:手机中打开米家APP找到米家网关的MAC地址和KEY。(怎么把米家网关绑定在米家APP上,我就不教了,这个要是都搞不明白,说明Homekit不适合你)
xiaomi:
gateways:
- mac: 米家网关的mac地址(不要冒号)
key: 米家网关的key
第七步:用Atom软件打开树莓派config文件夹的Configurationyaml配置文件,在最下面加入代码。
第八步:重启服务并确认已经连接上(首页多了一个开关,点一下试试米家网关灯亮不亮,要是亮了说明安装树莓派系统安装正确)
对接Homekit
Hassio系统基本配置已经完成,可以对米家的设备进行控制了。但是总不能每次想控制都要登陆WEB页面吧。下面就要开始对接iPhone的Homekit,来实现iPhone的快速控制。
第一步:添加Home-bridge的第三方源,添加成功后页面下方会多下载选项。
第二步:安装Home-bridge插件,并将自动更新打开。(如果你没有科学上网的话,又是个漫长的等待,不要以为是网页未响应了,它真的只是慢。不信你看看路由器的流量,是不是它还在努力下载呢)
第三步:打开树莓派config→homebridge文件夹的Configjson配置文件,将host和password字段填入树莓派正确的IP地址和WEB管理界面的登录密码。并记住pin字段的8位PIN码(强烈推荐树莓派和小米网关使用固定IP,要问怎么在设备上设定?我也不会我是通过路由器DHCP保留地址功能实现的)
第四步:这时iPhone自带的“家庭APP”已经识别到了HomeAssistant附件了,点击图标狂点下一步,过程中需要输入8位PIN码。米家网关已经关联的设备会全部自动添加进去。
第五步:在家庭APP内、快捷菜单、Siri语音测试一下。不过此时有个影响体验的问题,设备显示为英文+序列号,如果只是菜单按钮也就忍了,可Siri语音念得那叫一个销魂呀。
第六步:改成中文名很简单,在家庭APP中打开设备,以中文名称重新命名即可。
添加HomeKit中枢
经过上述复杂的设定过程,智能家居已经初见眉目,理论上就该设定自动化策略了,由于现有智能家居配件全部为米家的,最简单的方式自然是在米家APP中设定。不过正如本人在开头所说,本人有一点核心需求为通用性和扩展性,如果哪天本人心血来潮又买了个BroadLink RM Pro,要想实现BroadLink和米家设备的联动,只能在HomeKit平台上设定。届时为了保证不出BUG,米家APP中设定的自动化策略,需要重新设定在HomeKit上。为了减少未来重复劳动,干脆就一步到位,建立HomeKit中枢。
为了让大家更好的理解,本人从度娘借来一张图。通过上图可以看到智能家居的结构图,简单概括起来就是:想要通过米家APP实现自动化,只需米家网关24小时开机就好了;想要增加Siri语音控制功能时,树莓派需要开机,此时Homekit只是iPhone中的一个服务;想要通过Homekit实现自动化和远程访问,就需要一个Apple TV4或iPad作为Homekit服务的硬件载体,和米家网关、树莓派一起24小时开机。(PS:Apple TV4不会截屏,下面就用iPad给大家做示范了,步骤差不多)
第一步:分别在iPhone和iPad上iCloud选项中开启“iCloud钥匙串”和“使用安全码批准”
第二步:在设置中的家庭选项卡中,开启“将此iPad用作家庭中枢”。打开家庭APP就可以看到自动化选项被激活啦。
自动化策略推荐
枯燥乏味的系统安装调试阶段终于结束,真正烧脑的工作才刚刚开始,接下来就到了自动化策略的设定阶段。
设定本身并不难,只需要选好在什么位置、什么时间段、什么传感器状态、触发什么设备即可,难点在于要发挥想象力明确自己的需求。
1、打开小米手机的设置界面,设置的图标在小米桌面上就可以找到,齿轮状的即是。打开后,在设置界面找到其他高级设置选项。
2、进入高级设置界面选择按键,进入手机按键动作设置界面。
3、在按键设置界面里面点击桌面键选项,设置长按动作为启动语音助手,设置完毕。
4、长按桌面键成功调出语音助手。
小米网关homeassistant断线是因为home assistant 需要联网。
home assistant是一个基于python的家庭智能化平台,可运行于本地服务器,或者树莓派上。利用该平台,可以统一控制家庭中所有的智能设备。
home assistant集成了小米、博联等公司的通信协议,可以直接发现并控制这些公司的智能设备,也可以通过mqtt协议连接其它设备。同时可以通过插件扩展与苹果的Apple HomeKit互动,使用Siri语音控制其它智能设备。