用 Twilio 与 Yaler 让 Arduino UNO 接听电话 — “给 Arduino 打电话”项目
零部件与材料
| Arduino UNO | ×1 |
| Arduino 以太网扩展板 | ×1 |
| 模拟温度传感器 (如 TMP36) | ×1 |
项目背景

(来源: Instructables)
如何让 Arduino 接听电话
结合 Twilio 云电话 API 与 Yaler.net 穿透服务,实现从任意电话拨打 Arduino 并听取传感器数据语音播报。
- Twilio:云端语音 REST API,来电时向 Arduino 请求
voice.xml,由其 TTS 引擎(如 Alice)朗读内容。 - Yaler.net:让处于防火墙/NAT/移动网络后的嵌入式设备暴露可公网访问的 HTTP 端点。本项目中让 Twilio 能访问本地 Arduino 的
voice.xml。(披露:作者是 Yaler 创始人之一)
演示使用温度传感器,实则可接任意传感器。实际产品案例如 Canary(现 Birdi)烟雾报警器,用户可致电查询电池状态。
更宏观地看,这展示了在开放物联网中,模块化云服务如何自由组合构建简洁可靠的方案。HTTP 与 Webhooks 是核心!
材料清单
- Arduino Uno (如 Adafruit #50)
- USB A-B 线 (如 Adafruit #62)
- Arduino 以太网扩展板 (如 Adafruit #201)
- 网线 (如 Adafruit #995)
- 模拟温度传感器 (如 TMP36)
- 面包板跳线 (如 Adafruit #153)
- 面包板 (如 Adafruit #64)
步骤 1:传感器接线

将以太网扩展板堆叠在 Uno 上,按图连接温度传感器。TMP36 详细用法见 Adafruit 教程。
注意:以太网扩展板占用部分引脚,若添加其他数字传感器请避开。
步骤 2:安装 Yaler 库

按 Yaler Arduino 页面 “Installing the library” 三步操作。
未注册者先去 yaler.net 免费试用,记下 Relay Domain(密钥不需要)。
步骤 3:编程 Arduino

下载源码:
TwilioYalerWebService.ino
打开代码要点:
- 程序实现极简 HTTP 服务器,响应 XML 文档,不关心路径是
/还是/voice.xml。 - 修改 MAC 地址:确保局域网内唯一。简单方法:查电脑 MAC,最后一位加 1。
- 填入 Relay Domain:将
YalerEthernetServer server("try.yaler.net", 80, "RELAY_DOMAIN");中的RELAY_DOMAIN替换为你的域名(如gsiot-ffmq-ttd5)。 - 也可用本地服务器 + 端口映射,关键是 Twilio 能从云端访问 Arduino。
- 保存上传,保持 USB 连接并打开串口监视器看调试输出。
步骤 4:从浏览器访问 Arduino

Yaler 让 Arduino 可在公网访问:https://RELAY_DOMAIN.try.yaler.net/ 或 https://RELAY_DOMAIN.try.yaler.net/voice.xml(如 https://gsiot-ffmq-ttd5.try.yaler.net/voice.xml)。
检查 XML: 内容即 Twilio 回复的 TwiML,可指定 TTS 声音(本例用 Alice)。刷新页面(F5)加热传感器可看到温度变化。
故障排查: 空白页或报错请检查网线,或去 yaler.net/browser 按浏览器调试。
步骤 5:配置 Twilio 号码



- 注册:Twilio 官网 开户。
- 购买号码:登录 → Numbers → Twilio Numbers → Manage Numbers → Buy a number → 勾选 Voice → Search → 选号 → Buy。
- 配置 Webhook:Manage Numbers 点击该号码,Response URL 填
https://RELAY_DOMAIN.try.yaler.net/voice.xml,Method 选 POST。
步骤 6:测试通话

一切就绪,用任意电话(甚至爷爷的座机)拨打该号码,即可听到 Arduino 实时播报温度。
—— @tamberg
源代码
原理图

制造工艺
- 构建 CMMS 商业论证:量化维护效能与 ROI,赢取高层预算
- 止汗除臭棒:科学原理、历史与制造洞察
- 树莓派车库门开启器加视频流:磁性门状态传感器与实时画面集成
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 用 Twilio 与 Yaler 让 Arduino UNO 接听电话 — “给 Arduino 打电话”项目
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- 自制尼克西管时钟:Arduino 驱动,MDF 木制外壳
- 基于电子层析成像的铅笔状GaN/(In,Ga)N核壳纳米线高分辨三维成像