查看: 3026|回复: 2|关注: 0

[我分享] 物联网专题:如用Thingspeak和IFTTT让物联网硬件发邮件

[复制链接]

论坛优秀回答者

39

主题

1288

帖子

110

最佳答案
  • 关注者: 65
发表于 2016-10-28 23:11:05 | 显示全部楼层 |阅读模式
本帖最后由 oopmatlab 于 2016-10-28 23:16 编辑

[size=1.05em]在前面的教程中,我们已经学习了Thingspeak的三种服务:MATLAB Analysis, MATLAB Visualization, Plugins 和TimeControl(图中绿色所示),这一节我们将用两个例子继续学习React,TalkBack和ThingHTTP服务(图中红色所示)。在第一个例子中,我们把React和ThingHTTP的服务和另一个物联网领域很流行的IFTTT服务连接在一起, 利用NodeMCU 来演示如何让智能硬件在一定条件下给邮箱发邮件。第二个例子中,我们将演示用Talkback服务来控制智能硬件。

如用Thingspeak和IFTTT让物联网硬件发邮件
[size=1.05em]这篇土壤湿度检测的教程中 (湿度数据存放在Thingspeak的 Channel 138112中), 我们设计了一个联网的硬件负责定时收集土壤的湿度,有些时候,我们希望在数据满足一定条件的情况下,可以触发一些反应(React)。比如土壤湿度低于某个值,就发出一个警报或邮件。 下面就是这个设想的架构:联网硬件通过湿度检测仪监视土壤湿度,然后通过HTTP Put定时向数据收集服务Thingspeak报告湿度数据,Thingspeak中通过React服务来监视该频道的数据,一但湿度数值低于15,就触发ThingHTTP服务,而ThingHTTP的工作则是继续触发IFTTT中的Maker Channel的服务,最后发送邮件。

Fullscreen capture 10282016 111606 AM.bmp.jpg

IFTTT Maker Channel的设置
[size=1.05em]现在我们从后向前来设置这个反应链,IFTTT是If This Then That的缩写,它的服务是:用户通过指定This和That来创建自己的Recipe,来自动化一些简单的小任务。比如:如果(If)用手机拍了照片,就(That)自动的把这张照片存在Dropbox中。IFTTT中有一个Maker Channel可以将Web Request作为If的条件,这就是我们今天要使用的。首先在Maker Channel中创建一个Recipe:
[size=1.05em]

                               
登录/注册后可看大图


[size=1.05em]这个Recipe的Trigger是:如果(If)收到一个Web Request
[size=1.05em]

                               
登录/注册后可看大图


[size=1.05em]下一步(That)选择Trigger的Response,这里选择mail(作为例子笔者选择gmail)
[size=1.05em]

                               
登录/注册后可看大图


[size=1.05em]还填入要发送的邮件的内容,注意它给出的模板格式,其中{{}}允许我们从发送来的Web Request中提取同名的数据,然后转发到邮件当中去
[size=1.05em]

                               
登录/注册后可看大图


[size=1.05em]Maker Channel中有详细如何向Channel发送HTTP的request的教程,参见这里
[size=1.05em]Maker Channel还提供了测试功能,来验证Response的设置

                               
登录/注册后可看大图
[size=1.05em]或者使用如下的命令直接测试
curl -X POST -H "Content-Type: application/json" -d '{"value1":"1"}' https://maker.ifttt.com/trigger/plant_alarm/with/key/cY05pyaeXXX


ThingHTTP的设置
[size=1.05em]首先创建一个新的ThingHTTP服务,和IFTTT的连接设置如下
[size=1.05em]

                               
登录/注册后可看大图


[size=1.05em]注意:
  • URL中要包括IFTTT提供的一个Private Key
  • Content type必须是JSON,因为IFTTT Maker Channel预期的格式是JSON
  • 在Body中,可以援引任何Channel中的数据,这是要发送给IFTTT的数据,格式如下:
{"value1":"%%channel_138112_field_1%%"}


React的设置
[size=1.05em]最后,创建一个React服务,设置如下:每15分钟检查一下Channel 138112,如果值低于15,触发ThingHTTP中的plant alarm服务

                               
登录/注册后可看大图
[size=1.05em]因为土壤的湿度一直低于15,所以完成这个设置之后,因为很快就会受到NodeMCU通过Thingspeak和IFTTT发送的邮件。




Ph.D, 软件工程师.  Email: oopmatlab@gmail.com
《MATLAB面向对象编程--从入门到设计模式》已经由北航出版社正式出版。
http://ilovematlab.cn/thread-313689-1-1.html

新手

11 麦片

财富积分


050


0

主题

2

帖子

0

最佳答案
发表于 2018-2-23 23:47:34 | 显示全部楼层
没有搜索到“MAKER”。。。请问是什么原因?
QQ图片20180223234635.png

新手

11 麦片

财富积分


050


0

主题

2

帖子

0

最佳答案
发表于 2018-2-25 12:16:08 | 显示全部楼层
找到了,现在叫“Webhooks”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表