如果您是IFTTT的新手,我先前介绍了有关使用IFTTT将LIFX灯泡连接到IoT的文章中的基础知识。本文假设您了解触发器和动作的所有知识,现在准备将其提升到一个新的水平!
如果您渴望直接进入代码并尝试一下,则可以在GitHub上找到它。
>我们将拥有通过USB连接的Arduino运行的本地Node.js服务器。按下Arduino设置的按钮将触发HTTP请求以提交IFTTT,以告诉其切换我们的LIFX灯。我们的node.js服务器还将有Express运行以处理任何传入的HTTP请求。每当IFTTT在Twitter上看到我们的新提及时,它都会向我们的服务器提出发布请求,以触发我们的Arduino LED。
我们的arduino素描设置制造商频道
在此屏幕上,它提供了您的秘密键,您需要通过HTTP命令触发IFTTT操作。当然,您需要更多的信息,而不仅仅是密钥,我们需要一个URL才能启动这会触发操作。要找到此问题,请单击“如何触发事件”的链接。它将打开一个页面,其中包含您要使用的URL,可以方便地使用您的密钥附加到它。
我们将用于LIFX灯泡的URL看起来像:http://maker.ifttt.com/trigger/light_switch/with/key/key/ {yourkeykeyhere}}。说明Light_switch的URL部分是我们的活动名称。将其放在一起时,我们会使用它。如果您没有触发LIFX灯泡,请选择一个更准确地匹配活动的名称。
>使用Maker Triggers triggers
切换IFTTT打开和关闭LIFX Lightbulb。
使食谱本身很简单:我们转到IFTTT。
board<span>.on('ready', function() { </span> <span>console.log('Board ready'); </span> btn <span>= new five<span>.Button</span>(7);</span>在董事会的准备事件中,我们为按钮的下降活动设置了一张手表。如果我们检测到按下按钮,我们将登录单击到控制台进行调试目的(在面包板上的电线松动或沿着这些线路的情况下,拥有这些控制台日志可以节省很多时间!)。然后,我们使用NPM模块请求将HTTP POST请求发布到我们上面发现的URL。我们为调试目的的成功登录了控制台日志。
>
btn<span>.on('down', function(value) { </span> <span>console.log('Light toggle pressed.'); </span> request<span>.post({ </span> <span>url: 'http://maker.ifttt.com/trigger/light_switch/with/key/{{yourkeyhere}}' </span> <span>}, function(error<span>, response, body</span>) { </span> <span>console.log('Body response was ', body); </span> <span>console.log('Error was ', error); </span> <span>}); </span> <span>});</span>运行代码后,当我们单击按钮并且请求成功时,它应该打开和关闭我们的LIFX Lightbulb! IFTTT将返回一条不错的消息,在我们的控制台中看起来像是如此。
身体反应是恭喜!您已经解雇了Light_Switch事件
组合在一起真的很简单,但具有潜力的
。
>要注意的一件事 - 如果您想通过HTTPS致电IFTTT服务,则也需要适当的HTTPS服务器。使用本地测试服务器时,我有错误,因此它可能需要具有不自行签名的证书。
我们现在可以通过Node.js和我们的Arduino触发IFTTT动作。让我们看一下如何以相反的方式做事 - 使我们的Arduino对IFTTT触发器做出反应。每当我们在Twitter上提到时,我们都会设置IFTTT来告诉我们的Node.js Server和Arduino。
我们以相反的方式将食谱放在一起:我们转到IFTTT。
上的创建新食谱页面选择“ Twitter”作为我们的触发频道。
在董事会的准备事件中,我们在LED的变量中定义了连接到第9、10和11的LED:
>代码看起来很奇怪,因为引脚从11而不是上升。这样做的原因是我更喜欢我的布线具有红色,绿色,然后从Arduino板上的顶部到底部蓝色(例如11,然后是10和9)。
我们将其初始颜色设置为绿色:board<span>.on('ready', function() { </span> <span>console.log('Board ready'); </span> btn <span>= new five<span>.Button</span>(7);</span>
在董事会准备事件之外,我们使用Express创建 /LED POST请求的路由。在此路由的回调函数中,我们从req.body内部的IFTTT发送JSON数据,并在其中找到颜色键。我们将这种颜色赠送给Johnny-FiD的LED.Color()函数,以将LED的颜色更改为我们所获得的颜色。我们也将JSON数据记录在控制台中。
>>要记住的东西 - 如果您将其放在公开访问的服务器上,而不仅仅是用于测试目的,我建议检查所提供的JSON数据实际上是一种颜色,并且是合法的请求。
btn<span>.on('down', function(value) { </span> <span>console.log('Light toggle pressed.'); </span> request<span>.post({ </span> <span>url: 'http://maker.ifttt.com/trigger/light_switch/with/key/{{yourkeyhere}}' </span> <span>}, function(error<span>, response, body</span>) { </span> <span>console.log('Body response was ', body); </span> <span>console.log('Error was ', error); </span> <span>}); </span> <span>});</span>
如果您运行了节点服务器,然后在您的帐户中收到一条推文(一会儿就不会立即进行,因为IFTTT似乎需要时间来刷新Twitter的信息),您的LED应该应该去Twitter Blue!在您的控制台中,您应该看到以下内容:
响应是{颜色:'#55acee',文字:'@thatpatrickguy woo hoo'} 然后,如果您沿着相同的行设置了其他各种服务,但是使用不同的颜色,则可以进行各种LED颜色更改!结论
>
经常询问有关将IoT和Node.js连接到IFTTT的问题(常见问题解答)
> node.js在将IoT连接到IFTTT?> Maker Webhooks Service在IFTTTT中如何工作IFTTT中的Maker Webhooks服务允许您创建自定义Webhooks,它可以在IFTTT上触发操作 服务。当您想将自己的硬件或软件与IFTTT连接时,此服务特别有用。您可以将Web请求发送到由Maker Webhooks服务生成的特定URL,此请求将触发IFTTT服务上的操作。
可以连接到IFTTT的哪些类型的IoT设备。这包括但不限于智能家居设备,例如灯光,恒温器和安全摄像头,智能手表和健身追踪器等可穿戴设备,甚至是定制的物联网设备。关键要求是该设备必须能够通过Internet发送数据。
>将IFTTT与IoT和node.js?
>如何优化Node.js应用程序的性能。可以通过多种方式完成IFTTT?这包括使用有效的算法和数据结构,最大程度地减少阻止操作的使用以及正确管理内存。您还可以使用Node.js Profiler之类的工具来识别性能瓶颈。
以上是将IoT和Node.js连接到IFTTT的详细内容。更多信息请关注PHP中文网其他相关文章!