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

- URL: https://wuming.si/blog/980/
- Author: Aaron
- Published: 2013-01-26
- Language: zh-Hans
- Categories: Raspberry Pi
- Originally published at: https://blog.wo.ai/archives/980

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

原文：  
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/](http://www.idownloadblog.com/2011/12/09/how-to-install-siri-proxy-tutorial-video/) 告诉你怎么安装和运行siriproxy。如果你按照这些步骤，并且把11，12，13步的顺序更换为12，13，11。顺便说一下，命令7大概需要在PI上编译90分钟。

然后开始安装wiringPi，可以从 [https://projects.drogon.net/rasp … wnload-and-install/](https://projects.drogon.net/raspberry-pi/wiringpi/download-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>

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