用Siri来控制车库门[翻译]

本文为本站首发,在树莓派论坛转载,其他网站转载需要指明出处及作者信息。

原文:
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=25118&hilit=siriproxy&sid=aa0660b88dd63482d287d7fb089e0d60

hi,这是我第一个树莓派的项目,SiriProxy。它运行在树莓派上,使用wiringPi访问派的GPIO口,并发一个延时的on/off信号。这个延时信号用来控制我车库门。所以我可以在iphone上用siri来控制我的车库门。

可能有其它的方式来做同样的事情,比如在Pi上跑一个web服务器来访问Pi的GPIO端口,但是我只是简单的做了一个,符合我自己的需求,并且运行的一切正常。

我的派在整个安装过程中都用root用户运行,这样可以比较简单一些(原文粗制滥造)。我用wheezy版本。

下面这个链接 http://www.idownloadblog.com/201 … oxy-tutorial-video/ 告诉你怎么安装和运行siriproxy。如果你按照这些步骤,并且把11,12,13步的顺序更换为12,13,11。顺便说一下,命令7大概需要在PI上编译90分钟。

然后开始安装wiringPi,可以从 https://projects.drogon.net/rasp … wnload-and-install/ 获得。

一旦这些都安装好了,我们只需要更改一下siriproy里面自带的ruby脚本的例子。
编辑/root/SiriProxy/plugins/siriproxy-example/lib/siriproxy-example.rb 文件

找到这几行:

listen_for /test siri proxy/i do
say “Siriproxy is up and running!” #say something to the user!

request_completed #always complete your request! Otherwise the phone will “spin” at the user!
end

在它后面追加这几行

listen_for /open the garage door/i do
say “Opening the garage door..”
request_completed
system(“gpio mode 1 out”)
system(“gpio write 1 1”)
system(“sleep 0.5”)
system(“gpio write 1 0”)
end

listen_for /close the garage door/i do
say “Closing the garage door..”
request_completed
system(“gpio mode 1 out”)
system(“gpio write 1 1”)
system(“sleep 0.5”)
system(“gpio write 1 0”)
end

你可以看到,ruby脚本简单的用system命令来访问wiringPi,设置GPIO针脚作为输出端口,设置它半秒高电平,半秒低电平。

你可以让siri调用任何你在命令行终端能用的命令,比如说通过无密码的SSH登录到远程的电脑让它关机或重起。

listen_for /turn off my laptop/i do
response = ask “Are you sure you want me to shut down your laptop?”

if(response =~ /yes/i)
say “OK, I’ll shut it down now..”
system(“ssh root@192.168.1.74 shutdown -h now”)
else
say “OK, I wont!”
end

request_completed
end

你可以把树莓派放在不同房间使用不同的命令控制,但只使用一个siriproxy服务器。注意:每次你修改完配置后,你需要在重起服务器之前运行”siriproxy bundle”命令。

这里还有一个我安装过程的演示视频。

http://youtu.be/NUJ5z76Xv5o

墙内的朋友安了吧,墙了。