你听说过IFTTT吗?IFTTT是一项基于互联网的方便易用的触发式服务,雷锋网之前已经有过详细介绍,详情看这里。
几年来,IFTTT所涵盖的范围和提供的服务都原来越多了,像是同步微博和Twitter、自动备份相册等等;另外,IFTTT还在积极向物联网领域拓展,硬件套件供应商Spark和Adafruit.等都针对IFTTT的API开发了自己的接口应用。
下面就是Adafruit网站上公布的一个基于IFTTT的应用:开门自动报警系统。接下来我们就来详细了解整个制作过程吧。
首先是硬件配置;要完成这个项目,首先你需要一个Adafruit HUZZAH ESP8266微控制器板(支持WiFi)和一个可以检测开关门的传感器。另外必须的组件包括一些电阻和供电电池。
如果一直保持ESP8266的开启,那么长时间来看其能耗也是相当高的。为了充分延长电池寿命,可以将ESP8266设置在低功耗模式,每几秒钟唤醒一次对传感器信号进行检测即可。实现这个功能的方式也很简单,只要将板上GPIO的16脚和RST连接起来就行了。
另外ESP8266的ADC的最大限制电压为1.0V,所以需要对4.2V电池进行分压。接线示意图如下所示:
Pin 16连接RST
Pin 13连接检测门开关的传感器的一脚
GND连接门传感器另一脚、电池-极、220kΩ
VBat连接电池+极和1MΩ电阻
220kΩ和1MΩ电阻另外的脚连接在一起,同时与板上A口相连
硬件部分的工作就是这么多,接下来就该设置Adafruit IO口了。首先,你需要在Adafruit IO上申请Adafruit IO Key(密钥),这样才能通过Adafruit的服务接入IFTTT。你所申请的密钥大概是这个样子:
获得密钥之后,继续在上面创建Feed(反馈):battery和door,之后这些Feed就将作为其它相关应用(IFTTT)的触发入口。
接下来在你的计算机上配置好开发环境之后,下载Arduino Sketch,首先你需要对其中一些文件进行简单的编辑。
1、修改trigger.ino文件中的密钥和网络接入信息,将WLAN_SSID(WiFi名)、WLAN_PASS(WiFi密码)和AIO_KEY(前面申请的密钥)的参数设置成你自己对应的参数。
2、默认情况下,该程序会每5分钟向Adafruit IO发送一次电池状态信息,并且每3秒就检查一次门的状态。你可以根据自己的需要对BATTERY_INTERVAL 和SLEEP_LENGTH两个常量进行定义。
其它的地方保持不变即可。接下来将修改好的文件通过FTDI或其它串行端口上传到ESP8266。
登陆adafruit.io账号,查看door的Feed,你应该会看到类似的信息,表示设置成功了。每隔5分钟,battery应该还会有电池状态的检测信息。
接下来配置IFTTT账号,这个就比较简单了。
注册IFTTT之后首先将IFTTT与Adafruit Channel进行绑定。之后就可以将你设置Adafruit ESP8266的Feed作为IFTTT的触发器使用了。
当然,首先你需要将以上做好的硬件部分安装到门上。当门被开启时,会有一个Feed触发传输到IFTTT中,你可以会这个触发设置相应的动作方式,比如:发送一份邮件、一条微博,甚至还可以通过其它支持IFTTT的组件实现鸣笛报警功能。
想了解更多创意?赶紧关注硬创邦微信(leiphone_bang)吧,每天都有新花样。