给Arduino打电话 — Twilio云通讯

怎样 用你的电话 呼叫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加一个以太网插板,并如图连接温度传感器。更多关于TMP36传感器的内容,参见:

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

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

步骤2:安装Yaler库

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

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

步骤3:Arduino编译

下载 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

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号码

注册

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

购买一个电话号码

为了接到电话,你需要一个号码,没多少钱。

登录,导航至Numbers,并选择Twilio
Numbers子菜单,可以看到 Manage
Numbers
标签。点击Buy
a number (购买号码)按钮,选择Voice 勾选框,点击Search,然后选择一个号码并点击Buy购买。

配置voice.xml Webhook URL

在 Manage
Numbers
标签中,点击你购买的号码。

设置Response URL 为http://RELAY_DOMAIN.try.yaler.net/voice.xml,并确保POST被选择,例如用于Yaler
中继域名gsiot-ffmq-ttd5设置应答URL给http://gsiot-ffmq-ttd5.try.yaler.net/voice.xml。

步骤6:打一个测试电话

(Phone picture by flickr.com user William
Gantz
, licensed under CC
BY-ND
)

一旦Arduino弄好,你就可以接到电话了! 你的爷爷都可以做到!

感谢阅读!

@tamberg

Translated by Katrina from:http://www.instructables.com/id/Call-my-Arduino/?ALLSTEPS

给Arduino打电话 — Twilio云通讯

时间: 2024-10-10 05:17:46

给Arduino打电话 — Twilio云通讯的相关文章

接棒Twilio 中国版云通讯服务“独角兽”正在崛起

随着独角兽企业"Twilio"在美股上市,其所在的云通讯服务行业再次成为投资者.行业关注的热点,而其上市一周就股价翻番的现象也再次证明了全球市场对云通讯服务前景的肯定. 无独有偶,中国正在几乎同一时间见证一个中国版"Twilio"的崛起. 日前,专注于向企业提供基于互联网的云通讯服务商容联云通讯在北京召开发布会,正式宣布获得由红杉资本中国基金领投的7000万美金C轮融资.至此,容联云通讯发展仅3年有余,估值即高达数亿美元,这比Twilio发展8年才获得今天的成就,更

云通讯 添加群组

群组和双向回呼是一个级别的 应为他们都是属于子账户的操作 所以 他们的子帐号鉴权信息验证是一样 在sdk包里添加 /** 添加组 */ function CreateGroup($Group) { //子帐号鉴权信息验证,对必选参数进行判空. $auth=$this->subAuth(); if($auth!=""){ return $auth; } // 拼接请求包体 if($this->BodyType=="json"){ $body= "

基于 Arduino 和 IoT 云平台搭建物联网系统

在这篇文章中,我们将介绍如何搭建一款监测土壤水分的物联网系统,用于在土壤干燥时发出警报,提醒用户.本项目使用了IoT 云平台来管理警报系统,同时存储来自传感器的数据.众所周知,物联网是当今热门话题之一,它将改变我们的未来及生活方式.如今我们可以自己动手搭建物联网系统,因为市场上已有一些原型板,这使得我们不用花费太多金钱及精力就可以着手物联网项目. 搭建 IoT 系统项目 构建这个项目,我们需要: Arduino MKR1000: 湿度传感器: IoT 云平台 Carriots 的免费账户(点击这

C#批量发送手机短信——云通讯平台

云通讯平台:http://www.yuntongxun.com 1.在云通讯平台建短信模板 2.通过上述账号信息编辑如下: //phoneNumber 发送到的手机号 content 短信内容 public ResponseMessage SmsSend(string phoneNumber, string content) { CCPRestSDK api = new CCPRestSDK(); //ip格式如下,不带https:// bool isInit = api.init("app.c

开源企业IM,免费企业即时通讯软件-ENTBOOST云通讯平台Windows(r174)版本发布

经过恩布团队全体成员的不懈努力,按照原定计划,终于在今天(5月14日)发布第二个开源版本,恩布企业互联IM,ENTBOOST 0.2.0(r174beta)Windows版本:主要功能支持文本.表情,图片,文件共享,语音视频,云盘,群组,离线消息等功能:免费开放恩布 900在线客服系统,安卓手机客户端在线客服功能,开放客户端源码,支持PC SDK API,REST API.Android SDK等接口,支持对接企业内部各种业务系统: ENTBOOST是跨平台.跨应用的实时通讯开放平台,恩布网络致

容联云通讯API的学习过程及 RestAPI Node.js 封装

进入正文~ 公司最近有个活动,会用到云通讯的功能.作为一个全栈工程师自然是对 JavaScript 比较熟一点,所以决定选择 Nodejs 来进行开发.看了一下云通讯的文档,没有 Nodejs 的 SDK (´°????????ω°????????`) 好在 Rest API 是基于 HTTP 协议的,用其他语言也能很容易地实现接口 (?>?<?) 可能是因为对云通讯这种功能没什么概念吧,看了一遍文档还是云里雾里的.怎么办呢……于是决定对着文档一个一个接口试,试下来以后对云通讯的功能也有了个大

【转+修改】容联云通讯api调用短信发送调用

转自   https://my.oschina.net/u/1995134/blog/814540 需要荣联云通讯 的 相对应SDKjar包. CCP_REST_SMS_SDK_JAVA_v2.6.3r.jar 调用测试在main方法里: public static void main(String[] args){ ResponseObj obj = FhPhoneMassageSender.testSender("176****5720","呵呵"); -- 手

引领手机流量营销 容联云通讯嘿嘿流量打造多场景专业服务

随着4G网络和智能设备的快速普及,手机流量作为移动互联网时代的用户刚需,已经被越来越多的企业采购作为宣传推广产品的敲门砖.手机流量营销,其实是一种全新的激励营销方式,电商.APP.游戏等产品在做营销推广时,以手机流量包作为激励品,刺激用户参与活动和互动,以达到营销推广的目的. 当然,这些流量活动都离不开第三方手机流量分发平台,一个连接着运营商和互联网厂商的关键点.今日,我们就拿嘿嘿流量为例,简单分析下第三方手机流量分发平台的使用场景. 嘿嘿流量:多场景手机流量营销方案 嘿嘿流量为企业提供灵活.便

容联云通讯B轮融资1500万美元,任性送豪礼!!!

很想有钱,但没涨薪怎么有钱: 很想涨薪,没姿(neng)势(li)怎么高薪: 很想涨姿(neng)势(li),没钱怎么涨姿(neng)势(li). 没钱怎么涨姿(neng)势(li)! 没姿(neng)势(li)怎么高薪! 没涨薪怎么有钱! 没钱怎么任性! 云通讯融资1500万美元,任性送豪礼,购物卡.极客学院会员送不停! 这一次,让你没钱也能任性购物,没钱也能任性涨姿(neng)势(li)! 活动时间   即日起-2015年2月4日   活动内容 以下三种参与方式任选一种: 1.打开http: