透过Ameba存取 IFTTT
IFTTT 介绍
IFTTT(If This Then That) 为一个云端平台提供免费网路服务来创建applets 或是简单的条件陈述来指定网路服务触发条件使其他像是Gmail, Facebook, Telegram, Instagram, Pinterest 等网路服务进行特定的反应动作。
材料准备
- Ameba x 1
- https://ifttt.com/ 帐户来存取 IFTTT 服务*
*Note: 登入后有多个云端服务整合在 IFTTT 平台
范例说明
- 生成 IFTTT Applet
接下来示范如何透过 IFTTT Applet 来寄信至特定的收件者
这个范例中, 利用 ameba HTTP POST 功能来发布一个简单的webhook服务, IFTTT 收到后触发另一个网路服务(发送信件)
登录 https://ifttt.com/后, 点选My Applets
在Applet页面中点选 “New Applet”
点选下方指示的 +this 来新增触发服务
Choose a Service 中搜寻并选择 “Webhooks” 服务
接着会出现可用的触发服务, 目前 Webhooks 只有一个可选的 “Receive a web request” 触发服务
一旦选择 Receive a web request, 需要填入 event name 来成功辨别触发服务
范例中使用 “test_event” 来当作事件名称
接着选择 +That 栏位来创建 action service 对应的服务
范例中选择 Email 来当作触发后的执行动作
Action Service下有可用的 Actions 列表。此范例中只有 “Send me an Email”, 点选 Send me an Email 服务
在 Send me an Email 模板下, email 主旨与内文的内容是可编辑的。点选 Create Action 来完成执行的动作。注意 Email 服务是基于IFTTT帐号下注册的 email ID。
检阅完点选 Finish 来完成 Applet 的生成。接着可以在IFTTT页面中的 My Applet 下找到此应用。
- 透过 Ameba 发布触发事件
一旦Applet在IFTTT仪表板中准备就绪, 范例程式即可烧录至 Ameba 来发布 HTTP 请求.
1. 范例程式放置在 “HTTP_IFTTT_POST” 资料夹中。请按照以下步骤操作:
1) 在Arduino IDE 打开 “File” -> “Examples” -> “AmebaWiFi” -> “HTTP_IFTTT_POST”。
2) 在程式码中编辑下列三项使程式可以顺利执行。
编辑 wi-fi 凭证来连接至 wi-fi 热点或是无线接入点
在 host name 栏位中输入 IFTTT 服务的 hostname “maker.ifttt.com”
在 Path 栏位中输入 EventName 并在 Key 栏位中输入 “trigger//with/key/”
− Event name: 必须与 IFTTT applet 所指定的名子一致, 此范例中的 event name 为 “test_event”
− Key: 在 IFTTT 帐户中的 Webhook 服务下可以找到
3) 如何获取 Webhooks key?
在 Services 标签中寻找 Webhooks 服务
在 Webhooks 服务页面中点选右上角的 Documentation 标签
可以在 documentation 页面中找到所需的key。另外, 如何使用HTTP请求如下图所示
范例程式码如下所示
2. 在 Ameba 执行范例程式
透过 USB 连接 Ameba
点选 Arduino “Sketch” -> “Verify/Compile” 来编译程式码. “Done compiling” 会显示在 Arduino IDE 视窗底部
点选 “Sketch” -> “Upload” 来上传程式码至 Ameba (D3 元件会出现闪烁来表示上传的过程)
上传完成后 (D3 元件会停止闪烁), “upload finish” 会显示在 Arduino IDE 视窗底部
打开 serial monitor 并按 “Reset” 按钮来查看输出日志
在serial monitor中出现 “Congratulations! You have fired the test_event event” 字串表示成功, 且电子邮件活动提醒将会发送
在 IFTTT Applet 所注册的接收者将会收到 email 通知