原创 给Arduino打电话 — Twilio云通讯

2014-5-28 17:47 841 31 31 分类: 消费电子

Arduino_Call

怎样 用你的电话 呼叫Arduino,用Twilio和Yaler.net就可以做到!

Twilio是一个网页服务器,可以把所有的消息都转移到电话中。这是一个用于电话通讯的REST API,托管于云服务器。基于这样的环境,当有人呼叫Arduino预先设好的电话号时,Twilio向Arduino请求一个新的voice.xml文件。响应内容读给呼叫人Alice,一端发向语音识别引擎的Twilio的文本的语音。

Yaler.net 能使网页访问防火墙后的嵌入式设备,NAT或者一个移动网络路由。这就使Twilio在Arduino**问voice.xml文件,Arduino处于一个内部网络,因此它没有自己的公共IP地址(另:我是Yaler的创建者之一)

这里的演示使用一个温度传感器,其实任意传感器都行。一个真实的产品实例是Canary(现在叫Birdi)烟雾侦测器,业主可以打电话询问电池是不是还有电。

在一个更抽象的层面,这个教程展示了,在一个开放的物联网,模块化的云服务可以随意的融合到 建立新颖、简单且可靠的解决方案中。为了HTTP和Webhooks 的胜利!让我们开始…

材料

- Arduino Uno (e.g. https://www.adafruit.com/products/50)
- USB 标准 A-B线 (e.g. http://www.adafruit.com/products/62)
- Arduino 以太网插板 (e.g. http://www.adafruit.com/products/201)
- 网线 (e.g. http://www.adafruit.com/products/995)
- 模拟温度传感器 (e.g. https://www.adafruit.com/products/165)
- 面包板用线 (e.g. http://www.adafruit.com/products/153)
- 面包板 (e.g. http://www.adafruit.com/products/64)

步骤1  给传感器布线

Arduino_Call2

 

给Arduino加一个以太网插板,并如图连接温度传感器。更多关于TMP36传感器的内容,参见:

http://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor

如果你想添加其他(数字)传感器,记住,一些引脚已被太网插板用了。

步骤2:安装Yaler库

Arduino_Call3

在https://yaler.net/arduino上按照步骤安装库文件。

完成后,注册https://yaler.net/申请一个免费试用账户,并记下中继域名(不需要密钥)

步骤3:Arduino编译

Arduino_Call4

下载 TwilioYalerWebService Arduino 源代码

https://bitbucket.org/tamberg/iotworkshop/raw/default/Arduino/TwilioYalerWebService/TwilioYalerWebService.ino?at=default

打开Arduino代码

程序执行了一个非常简单的Web server,侦听进来的HTTP请求。一旦一个请求过来,程序就会用一个XML文件应答。服务器不要求 URL 路径是/ 或者是/voice.xml

更改MAC地址

确保Arduino代码中的MAC地址是唯一的。特别是如果很多Arduino在同一个局域网工作。一个简单得到唯一地址的方式是,查到你电脑的MAC,然后在最后以为上加1。

键入你的中继域名

用不着用 EthernetServer server(80) 创建本地服务器;我们通过Yaler接转try.yaler.net,如下行:

YalerEthernetServer server(“try.yaler.net”, 80, “RELAY_DOMAIN”);

RELAY_DOMAIN 换成你的中继域名,例如 gsiot-ffmq-ttd5 类型:

YalerEthernetServer server(“try.yaler.net”, 80, “gsiot-ffmq-ttd5″);

注意你也可以使用本地服务器,如果你知道怎样配置端口,在有本地防火墙时怎样给来的HTTP请求开一个入口。重要的是Twilio可以从云平台访问Arduino。

保存更改并上传

保存所有的更改,并将程序上传至Arduino。让USB线连接到你的电脑,打开串口调试工具看一下调试输出。

步骤4:访问Arduino

Arduino_Call5

用任意浏览器访问Arduino

Yaler 库让你的 Arduino (带有XML文件) 在公共网络http://RELAY_DOMAIN.try.yaler.net/上是可行的,用于转发域 gsiot-ffmq-ttd5 ,URL是 http://gsiot-ffmq-ttd5.try.yaler.net/

或者,使其在Twilio上更好看:ttp://gsiot-ffmq-ttd5.try.yaler.net/voice.xml

检查XML文档

XML文档的内容告诉Twilio怎样应答一个来电。你甚至可以选择文字转语音。这里是Alice。Twilio的XML格式被叫做TwiML。详见: https://www.twilio.com/docs/api/twiml

注意,应答文字包涵准确的温度。让你的传感器升温,在你的Web浏览器上按F5刷新一下。

错误排查

如果你得到一个空白页面或是错误,请先检查你的以太网线是否插紧,并检查 https://yaler.net/browser 的特定调试。

 

步骤5:建立一个Twilio号码

Arduino_Call6

Arduino_Call7Arduino_Call8

注册

首先,在https://www.twilio.com/上获得一个Twilio账号。

继续阅读:http://blog.iwiznet.cn/?p=6273

文章评论0条评论)

登录后参与讨论
我要评论
0
31
关闭 站长推荐上一条 /2 下一条