搜索
首页web前端js教程将IoT和Node.js连接到IFTTT

将IoT和Node.js连接到IFTTT

钥匙要点

    IFTTT的Maker Channel
  • 允许开发人员在收到HTTP请求时定义引发的触发器,从而扩大其可用性几乎是出于任何目的,仅受开发人员社区的创造力的限制。
  • 制造商通道可用于设置一个简单的arduino,通过node.js与IFTTT进行通信,允许通过Arduino驱动的灯开关打开和关闭LIFX Lightbulbb,或更改RGB LED颜色等动作收到Twitter提及。
  • 制造商通道的设置过程涉及在IFTTT上创建一个新食谱,选择“ Maker”作为触发通道,定义触发类型,事件名称和操作类型,然后使用Node.js代码来定义连接到连接到的按钮将触发http请求到ifttt的arduino 为了使Arduino对IFTTT触发器做出响应,遵循类似的过程,但相反,触发频道是将导致操作的服务(例如Twitter),而动作渠道是“制造者”,这将是“制造者”然后,每当发生触发事件时,请向Node.js服务器和Arduino提出Web请求。
  • IFTTT
  • 在快速,轻松连接设备的能力方面具有巨大的潜力。一段时间以来一直缺少一件事 - 可以发送和接收通用的HTTP获取和发布请求的能力。如果您想将IFTTT用于某些东西,则必须将其特定用途由IFTTT定义,并在其频道内发布在其网站上。也就是说,到目前为止!
  • > IFTTT最近发布了制造商频道。这正是开发人员一直在等待的!它允许您定义当他们收到HTTP请求时引发的触发器,以及可以向定义的位置提出HTTP请求的操作。这打开了IFTTT,几乎用于任何东西。现在,这完全取决于开发人员社区的想象。
  • >要显示制造商频道的能力,我们将设置一个简单的Arduino,通过Node.js来回与IFTTT来回通信。为了尝试将触发器发送到IFTTT,我们将通过Arduino动力的灯开关打开和关闭LIFX灯泡。为了尝试IFTTT Maker Action,我们将把RGB连接到我们的Arduino,该RGB将在Twitter上提到的任何时候更改颜色。不喜欢Twitter或没有LIFX灯泡?根本不是问题,请在IFTTT上使用其他内容切换动作/触发器。使用Facebook频道而不是Twitter或在手机上触发操作,而不是灯泡。这对于修补。
>这很有趣

如果您是IFTTT的新手,我先前介绍了有关使用IFTTT将LIFX灯泡连接到IoT的文章中的基础知识。本文假设您了解触发器和动作的所有知识,现在准备将其提升到一个新的水平!

代码

如果您渴望直接进入代码并尝试一下,则可以在GitHub上找到它。

这将如何工作

>我们将拥有通过USB连接的Arduino运行的本地Node.js服务器。按下Arduino设置的按钮将触发HTTP请求以提交IFTTT,以告诉其切换我们的LIFX灯。我们的node.js服务器还将有Express运行以处理任何传入的HTTP请求。每当IFTTT在Twitter上看到我们的新提及时,它都会向我们的服务器提出发布请求,以触发我们的Arduino LED。

我们的arduino素描

我们将连接一个简单的按钮,RGB导致Arduino。

设置制造商频道将IoT和Node.js连接到IFTTT

要开始,我们需要在IFTTT上转到Maker Channel,然后单击“连接”。设置后,您将到达看起来像这样的屏幕:

在此屏幕上,它提供了您的秘密键,您需要通过HTTP命令触发IFTTT操作。当然,您需要更多的信息,而不仅仅是密钥,我们需要一个URL才能启动这会触发操作。要找到此问题,请单击“如何触发事件”的链接。它将打开一个页面,其中包含您要使用的URL,可以方便地使用您的密钥附加到它。将IoT和Node.js连接到IFTTT>

我们将用于LIFX灯泡的URL看起来像:http://maker.ifttt.com/trigger/light_switch/with/key/key/ {yourkeykeyhere}}。说明Light_switch的URL部分是我们的活动名称。将其放在一起时,我们会使用它。如果您没有触发LIFX灯泡,请选择一个更准确地匹配活动的名称。将IoT和Node.js连接到IFTTT>

>使用Maker Triggers triggers

切换IFTTT

>我们的制造商渠道已活跃并且可以使用。我们将首先查看如何使用Arduino中的按钮切换我们的IFTTT操作 -

打开和关闭LIFX Lightbulb。

使食谱本身很简单:

我们转到IFTTT。
    上的创建新食谱页面
  1. 选择“ Maker”作为我们的触发通道。
  2. >单击“接收Web请求”作为我们的触发类型。
  3. 输入我们的light_switch的事件名称。
  4. 选择“ lifx”作为我们的动作频道。
  5. >单击“开/关”作为我们的动作类型。>
  6. 选择我们希望这会影响的LIFX灯。
  7. >
  8. 给食谱一个标题,然后单击“创建食谱”!
  9. >
  10. >在我们的node.js代码中,我们使用johnny-five访问我们的arduino。准备好板时,我们定义了在BTN变量中连接到引脚7的按钮:
    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服务器。使用本地测试服务器时,我有错误,因此它可能需要具有不自行签名的证书。> 响应IFTTT触发器

    我们现在可以通过Node.js和我们的Arduino触发IFTTT动作。让我们看一下如何以相反的方式做事 - 使我们的Arduino对IFTTT触发器做出反应。每当我们在Twitter上提到时,我们都会设置IFTTT来告诉我们的Node.js Server和Arduino。

    我们以相反的方式将食谱放在一起:

    我们转到IFTTT。

    上的创建新食谱页面

    选择“ Twitter”作为我们的触发频道。

      单击“新提及您”作为我们的触发类型。
    1. >
    2. 单击“创建触发器”。
    3. 选择“制造商”作为我们的动作渠道。
    4. >单击“制作Web请求”作为我们的操作类型。
    5. >
    6. >放入您的邮政请求设置(我们将在下面介绍这些设置),然后单击“创建动作”!
    7. >
    8. 带有HTTP请求设置的屏幕看起来像:将IoT和Node.js连接到IFTTT
      1. >放入您的节点服务器的公开访问URL。我个人使用Ngrok来测试所有这些。我在我的文章中介绍了如何从任何地方访问Localhost的文章中使用Ngrok和类似服务。选择该方法的帖子(如果您喜欢的话,GET请求也应该有效)。
      2. >
      3. >为内容类型选择“应用程序/json”,因为我们的节点服务器将期望接收JSON。
      4. >最后,包括我们要发送的JSON消息。我放下{“ color”:“#55acee”,“ text”:text}。 #55acee是我从Twitter的Bird Mascot中发现的颜色,所以我认为这是最合适的选择!
      5. >
      6. 文本是IFTTT动态填充的字段,其中提到了您的推文中的文本。这些字段称为IFTTT成分。我们并没有真正使用它来更改我们的LED颜色,但我想在其中包括一个IFTTT成分来展示它的完成方式。
      7. >
      8. >要在JSON中添加一种成分,请单击“身体”字段以输入JSON字符串,您会在右侧找到一个试管图标。如果单击它,您将打开一个菜单,该菜单可让您选择一个字段以包括:
      9. 将IoT和Node.js连接到IFTTT
      >在我们的节点代码中,我们设置了LED,以便我们的Johnny-F-Five模块知道它并设置服务器以聆听该帖子请求。它将通过更改我们的LED来做出响应。

      在董事会的准备事件中,我们在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颜色更改!>

      结论

      >拥有IFTTT及其所有渠道的生态系统,可以提供任何可以发送和接收HTTP请求的Internet启用技术的制造商。尽管我们已经能够完成很长时间的诸如将Twitter API纳入Node.js应用程序之类的事情,但它在API中提供了一系列可能性,它易于使用,并且非常模块化。切换Twitter以获取其他东西,一切都应该仅使用几个调整!>

      >如果您从本指南中制作了一些非常整洁的IFTTT Maker Channel创建,请在评论中留下注释或在Twitter上与我联系(@thatpatrickguy),我想看看!

      >

      经常询问有关将IoT和Node.js连接到IFTTT

      的问题(常见问题解答)

      > node.js在将IoT连接到IFTTT?

      node.js中的作用在将IoT设备连接到IFTTT方面起着至关重要的作用。这是基于Chrome的V8 JavaScript引擎的JavaScript运行时,该引擎用于开发服务器端和网络应用程序。 Node.js应用程序是用JavaScript编写的,可以在各个平台上的Node.js运行时运行。在IoT的上下文中,Node.js可用于编写与IoT设备进行交互的服务器端代码,并通过Maker Webhooks服务将命令发送到IFTTT。

      >

      > Maker Webhooks Service在IFTTTT中如何工作IFTTT中的Maker Webhooks服务允许您创建自定义Webhooks,它可以在IFTTT上触发操作 服务。当您想将自己的硬件或软件与IFTTT连接时,此服务特别有用。您可以将Web请求发送到由Maker Webhooks服务生成的特定URL,此请求将触发IFTTT服务上的操作。

      >我可以使用其他编程语言而不是Node.js将Iot连接到Iot。是的,您可以使用其他编程语言将IoT设备连接到IFTTT。但是,Node.js由于其效率和可伸缩性而是一个流行的选择,在处理生成大量数据的IoT设备时,这特别有用。也可以使用其他语言,例如Python,Java或c,但是实现可能会有所不同。

      >

      >物联网,node.js和ifttt之间的连接在很大程度上取决于您如何实现它。在将来自IoT设备的数据发送到node.js以及从Node.js到IFTTT时,使用安全方法很重要。这可以包括将HTTPS用于所有连接,验证所有传入数据,并保留您的IFTTT密钥秘密。

      >我可以使用node.js?

      可以连接到IFTTT的哪些类型的IoT设备。这包括但不限于智能家居设备,例如灯光,恒温器和安全摄像头,智能手表和健身追踪器等可穿戴设备,甚至是定制的物联网设备。关键要求是该设备必须能够通过Internet发送数据。 在将IOT连接到IFTTT时,使用Node.js?

      在将IoT连接到IOT时如何调试问题。可以使用各种方法完成使用node.js的IFTTT。您可以在node.js代码中使用console.log语句来打印有关应用程序状态的信息。您还可以使用node.js debugger或节点Inspector。使用node.js。每个设备都会将数据发送到您的Node.js应用程序,然后使用Maker Webhooks服务在IFTTT上触发操作。您甚至可以为不同的设备设置不同的操作。

      >

      >将IFTTT与IoT和node.js?

      ​​

      一起使用的局限,它确实有一些局限性。例如,IFTTT的免费版本限制了您可以创建的小问题的数量。另外,并非所有服务都在IFTTT上可用,因此您可能无法将IoT设备与要使用的每个服务连接。

      >

      >如何优化Node.js应用程序的性能。可以通过多种方式完成IFTTT?这包括使用有效的算法和数据结构,最大程度地减少阻止操作的使用以及正确管理内存。您还可以使用Node.js Profiler之类的工具来识别性能瓶颈。

      >我可以使用node.js和ifttt将IoT设备连接到IFTTT?使用Node.js和IFTTT将IoT设备连接到广泛的服务。 IFTTT支持数百种服务,包括Gmail,Twitter和Dropbox等受欢迎的服务。您可以根据您的IoT设备的数据触发这些服务的操作。

      >

以上是将IoT和Node.js连接到IFTTT的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在JavaScript中替换字符串字符在JavaScript中替换字符串字符Mar 11, 2025 am 12:07 AM

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

构建您自己的Ajax Web应用程序构建您自己的Ajax Web应用程序Mar 09, 2025 am 12:11 AM

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

10个JQuery Fun and Games插件10个JQuery Fun and Games插件Mar 08, 2025 am 12:42 AM

10款趣味横生的jQuery游戏插件,让您的网站更具吸引力,提升用户粘性!虽然Flash仍然是开发休闲网页游戏的最佳软件,但jQuery也能创造出令人惊喜的效果,虽然无法与纯动作Flash游戏媲美,但在某些情况下,您也能在浏览器中获得意想不到的乐趣。 jQuery井字棋游戏 游戏编程的“Hello world”,现在有了jQuery版本。 源码 jQuery疯狂填词游戏 这是一个填空游戏,由于不知道单词的上下文,可能会产生一些古怪的结果。 源码 jQuery扫雷游戏

如何创建和发布自己的JavaScript库?如何创建和发布自己的JavaScript库?Mar 18, 2025 pm 03:12 PM

文章讨论了创建,发布和维护JavaScript库,专注于计划,开发,测试,文档和促销策略。

jQuery视差教程 - 动画标题背景jQuery视差教程 - 动画标题背景Mar 08, 2025 am 12:39 AM

本教程演示了如何使用jQuery创建迷人的视差背景效果。 我们将构建一个带有分层图像的标题横幅,从而创造出令人惊叹的视觉深度。 更新的插件可与JQuery 1.6.4及更高版本一起使用。 下载

Matter.js入门:简介Matter.js入门:简介Mar 08, 2025 am 12:53 AM

Matter.js是一个用JavaScript编写的2D刚体物理引擎。此库可以帮助您轻松地在浏览器中模拟2D物理。它提供了许多功能,例如创建刚体并为其分配质量、面积或密度等物理属性的能力。您还可以模拟不同类型的碰撞和力,例如重力摩擦力。 Matter.js支持所有主流浏览器。此外,它也适用于移动设备,因为它可以检测触摸并具有响应能力。所有这些功能都使其值得您投入时间学习如何使用该引擎,因为这样您就可以轻松创建基于物理的2D游戏或模拟。在本教程中,我将介绍此库的基础知识,包括其安装和用法,并提供一

使用jQuery和Ajax自动刷新DIV内容使用jQuery和Ajax自动刷新DIV内容Mar 08, 2025 am 12:58 AM

本文演示了如何使用jQuery和ajax自动每5秒自动刷新DIV的内容。 该示例从RSS提要中获取并显示了最新的博客文章以及最后的刷新时间戳。 加载图像是选择

如何在浏览器中优化JavaScript代码以进行性能?如何在浏览器中优化JavaScript代码以进行性能?Mar 18, 2025 pm 03:14 PM

本文讨论了在浏览器中优化JavaScript性能的策略,重点是减少执行时间并最大程度地减少对页面负载速度的影响。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),