blynk入门:简单的diy物联网设备

Blynk是一种物联网(IoT)服务,旨在使远程控制和从您的设备读取传感器数据尽可能快和容易。...

Blynk是一种物联网(IoT)服务,旨在使远程控制和从设备上读取传感器数据尽可能快和容易。在本文中,我们将详细介绍Blynk是什么,它是如何工作的,并提供两个关于NodeMCU和Raspberry Pi开发板服务不同用途的简短示例项目。

getting-started-blynk-featured

使用微控制器开发智能对象从未如此容易,物联网设备近年来迅速普及。像Arduino或Raspberry Pi这样的开发板可以用来控制从家里的电源插座到运动激活的圣诞装饰品的一切。

一个可能给新手带来问题的领域是编码和网络。Blynk的目标是消除对大量编码的需求,并使您可以从智能**的任何位置轻松访问您的设备。它对业余爱好者和开发者是免费的,但也可以收费用于商业用途——公司可以使用Blynk创建自己的应用程序和系统,然后以自己的品牌销售。

Blynk使用自己的服务器和库来实现服务,但Blynk应用程序似乎是它的主要优势。

进入blynk应用程序

Blynk应用程序在Android和iOS上免费提供。它是您项目的起点,具有一个简单易用的拖放系统,用于为您的物联网设置构建自定义控件。工作流程很快:当启动一个新项目时,系统会提示您从一个广泛的列表中选择开发板,以及您的连接方法。然后应用程序通过电子邮件发送授权令牌,以便通过Blynk服务器连接到您的设备。

控制元素称为小部件:各种类型的输入方法和输出显示,包括按钮、滑块、操纵杆、图形和文本反馈。还有一些特定于组件的小部件,带有led、LCD显示器甚至直播视频的样式化控件。另外值得一提的是一些小部件,它们添加了一些功能,比如自动发布到Twitter和定制通知。

虽然这个应用程序是免费的,但它限制了你一次可以使用的小部件的数量,给它们一个“能量”成本。该应用程序为您提供了2000英镑的余额,如果需要,您可以选择购买更多。

我发现,对于这里列出的示例项目来说,提供的初始余额已经足够了,不过如果您的设置更复杂,您可能会发现自己很快就耗尽了精力。

widgets and button blynk

每个小部件都有一个编辑菜单,允许您更改名称和颜色。然后选择要影响的管脚(无论是板上的管脚还是Blynk的虚拟管脚)以及要发送的值的范围。对于图形和文本框等输出显示,您还可以选择希望更新的频率,这可能会节省宝贵的带宽。

Blynk还具有向“虚拟”管脚分配指令的功能,这些管脚是用户配置的应用程序和硬件之间的连接。因此,应用程序中的一个按钮可以用来触发设备上的许多不同事件。我们将在本文后面介绍如何使用这些。

应用程序提供了与其他人共享项目的选项。生成一个二维码,可以通过电子邮件发送或直接扫描,并由任何人使用的Blynk应用程序。无论与谁共享,都不能对项目进行更改,这使它成为共享设备控制的快捷便捷方式。但是值得注意的是,应用程序中的项目必须运行,以便其他人能够访问硬件。

你也可以在不允许访问你的硬件的情况下共享这个项目,这是一个很好的方法来教人们如何使用这个应用程序,而不让他们打开和关闭你的灯!

我发现创建一个应用程序非常快速和直观。创建后,您可以立即开始使用它,方法是按下右上角的播放符号。如果您需要稍后进行更改,您可以简单地按相同的按钮返回编辑模式。

blynk服务器

一旦你创建了一个应用程序来控制你的设备,你有两个选择如何与之通信。

Blynk云服务器速度快,响应快,而且可以****。连接到Wi-Fi设备就像将生成的授权码复制到Arduino草图中,并提供Wi-Fi详细信息一样简单。对于Raspberry-Pi,Blynk提供了一个测试脚本,您可以使用授权代码运行该脚本以获得相同的效果。在本文后面,我们将使用Blynk库创建自己的脚本来连接到服务。

第二种选择是托管自己的Blynk服务器。Blynk提供了一个开源的基于Netty的Java服务器,它可以从您的计算机上运行,甚至可以从Raspberry-Pi上运行。对于一些用户来说,这在功能和安全性方面有各种各样的好处,不过对于我们这里的示例,我们将集中讨论使用提供的Blynk云服务器。

blynk website

布林克图书馆

Blynk的第三个也是最后一个元素是Blynk库。这个库与大量的开发板一起工作,以允许应用程序和硬件之间的通信。

最简单的情况是,只需安装库,并加载所提供的一个注释良好的示例草图。

blynk:初始设置

在智能**上安装Blynk应用程序,并创建一个帐户。确保您使用的电子邮件地址,您可以实际访问,因为这是您的授权令牌将被发送。现在创建一个项目,选择要使用的板和连接方式。这里的两个例子都是通过Wi-Fi连接的,不过也可以通过蓝牙、以太网甚至GSM连接。

创建项目。这将自动发送授权令牌。如果您没有收到它,您可以通过选择项目设置图标(小螺母),选择您的设备,然后选择“电子邮件”来重新发送它。

接下来,从Blynk网站安装Blynk库。对于Arduino,通过将文件复制到Arduino>libraries文件夹来安装库。如果你是Arduino的新手,这里有一个指南让你开始。

对于覆盆子皮,你需要确保你有节点.js先安装。有一个安装指南节点.js在这篇文章中你应该需要它。

首先,确保Pi是最新的,并且安装了build-essential包。

sudo apt-get updatesudo apt-get upgradesudo apt-get install build-essential

然后通过在终端窗口中键入这个来安装节点包管理器、OnOff库和Blynk库。

sudo npm install -g npmsudo npm install -g onoffsudo npm install -g blynk-library

您可以通过运行Blynk测试脚本来检查一切是否正常:

blynk.js [YourAuthorizationTokenHere]

如果一切正常,它应该是这样的:

blynk pi blynk test script

如果您遇到任何错误,请确保Pi是最新的,并且您有最新版本的节点.js安装后,重新安装NPM、OnOff和Blynk库。

使用nodemcu快速设置

第一个例子展示了使用Blynk建立简单系统的速度有多快。它不需要编码,一旦设置,它是完全独立的。只要电路板可以访问您的Wi-Fi连接,您就可以使用智能**从任何地方访问它。

首先,在试验板上建立一个简单的电路。将针脚D0连接到LED的正极支脚,然后通过220欧姆电阻器连接回GND针脚。

nodemcu fritzing

在Blynk应用程序中打开NodeMCU项目。在右侧,从菜单中选择按钮小部件。选择项目中的按钮以打开其“属性”菜单。在这里您可以命名它,并选择它应该影响NodeMCU板上的哪个pin。从输出列表中选择引脚D0,然后切换模式,使其成为一个on和off开关,而不是一个瞬时按下开关。

按back(所有更改将自动保存),然后按右上角的播放图标启动应用程序。您可以随时按此按钮返回编辑项目。

接下来,打开ArduinoIDE并从tools菜单中选择NodeMCU板和端口。如果在此菜单中看不到电路板,则可能需要安装ESP8266库(本指南应有帮助)。

现在,通过导航到文件>示例>Blynk>Boards_uwifi>ESP8266_2;standalone,打开其库中提供的ESP8266独立脚本Blynk。将授权令牌的占位符替换为通过电子邮件接收的占位符,然后输入Wi-Fi详细信息。

char auth[] = "YourAuthToken";char ssid[] = "YourNetworkName";char pass[] = "YourPassword";

以新名称保存草图,并将其上载到板上。现在,当你按下应用程序中的按钮时,LED应该打开和关闭。如果它不起作用,请检查你是否按下了应用程序中的播放图标。

在这种简单的情况下,Blynk的设置速度非常快。

blynk nodemcu finished

另外值得注意的是,由于它使用的是Blynk服务器,您可以从任何地方控制您的主板,只要主板可以访问您的家庭Wi-Fi连接,并且您的智能**可以访问移动数据。

在树莓皮上

通过使用Blynk测试脚本,您可以使用Blynk,与上面的Raspberry Pi示例完全相同,但是Blynk的虚拟管脚提供了一些更深层次的功能,我们现在将研究这些功能。

Blynk使用节点.js,所以我们今天要写的代码将是Javascript。如果你是一个新的语言,这应该是一个伟大的入门。

我们将使用Blynk库创建一个应用程序,该应用程序报告门传感器是打开还是关闭,并在门打开时发送电子邮件并向**推送通知。

您需要:

  • 门磁开关(又称簧片开关)
  • 1x 1k?电阻器
  • 1x 10公里?电阻器
  • 1x 220?电阻器
  • 1x发光二极管
  • 试验板和连接线

设置您的胸板,如下所示:

pi fritzing

请注意,Blynk的库使用Pi管脚的GPIO编号,因此我们将在整个项目中使用它们。将5V和GND引脚连接到试验板上的电源轨。将Raspberry Pi上的GPIO引脚22连接至LED阳极,并通过220?将阴极连接至接地轨?电阻器。将GPIO引脚17连接到1k的一侧?电阻,然后连接10?另一侧的电阻器,以及电源轨的5V侧。最后,将簧片开关连接到电源轨的GND一侧,并在线路上的1k?还有10公里?电阻在另一边相遇。此上拉电阻器设置将导致开关打开时针脚17上的电压读数为高。

在Blynk应用程序中创建一个新项目,然后选择您的树莓Pi板。从小部件菜单中选择一个标记的值、电子邮件和通知小部件

选择带标签的值,将其命名,然后选择虚拟管脚V0作为其输入管脚。您还可以更改信息的显示方式。在这种情况下,在“标签”选项卡的/pin/之前添加“门是”。我们可以将读取频率值保留为默认设置,不过您可以更改此设置以不同的速率向应用程序发送数据。

值得注意的是,您实际上不必在email小部件中输入电子邮件地址,因为我们稍后会将其添加到代码中,尽管小部件必须存在才能工作。

一旦你对你的应用程序的外观满意,按右上角的播放按钮。

project labeled value

现在创建一个名为blynkdoor.js公司. 完整的代码在这里有完整的注解。

sudo nano blynkdoor.js

我们首先需要导入Blynk库,添加授权密钥,并创建一个Blynk实例以在脚本中使用。

var blynklib = require('/usr/local/lib/node_modules/blynk-library');var AUTH ='PasteAuthorizationCodeHere'var blynk = new blynklib.Blynk(AUTH);

我们还需要导入OnOff库,并声明设置簧片开关和LED的变量。我们还将为Blynk应用程序上设置的虚拟pin创建一个变量。

var Gpio = require('onoff').Gpio,reed = new Gpio(17, 'in', 'both'), //register changes 'both' when switch is opened and closedled = new Gpio(22, 'out');var virtualPin = 0;

现在我们将使用OnOff库中的watch函数来监视簧片开关的变化。门开关处于0或1,每当该值发生变化时,我们都会将该变化写入LED引脚。

reed.watch(function(err,value){led.writeSync(value);

我们还可以使用该值将数据发送到Blynk应用程序。如果门是关闭的,我们希望能够看到在您的标签值小部件。如果门开了,我们希望收到通知和电子邮件告诉我们。我们使用if语句并使用Blynk库中的virtualWrite、notify和email函数来实现这一点。Blynk的完整文档可以在这里找到。

if(value==0){ blynk.virtualWrite(virtualPin,"Closed"); c***ole.log('Door Closed'); }; if(value==1){ blynk.notify("The door just opened!"); blynk.email("[email protected]", "Front Door", "The front door just opened."); blynk.virtualWrite(virtualPin,"Open"); c***ole.log('Door Open'); };});

现在,每当簧片开关注册一个值的变化时,数据就会被发送到我们的虚拟pin,在应用程序中的通知小部件开门的情况下,数据也会被发送到控制台。请注意,最后的大括号是从我们开始上面的watch函数的地方开始的。

最后,我们需要在程序结束时重置pin。这和GPIO.cleanup文件()你可能已经熟悉了。

process.on('SIGINT', function () { led.unexport(); reed.unexport();});

现在保存代码并退出。使用node运行脚本。

sudo node blynkdoor.js

现在,当您将磁铁从簧片传感器移开时,您应该会收到一个通知,告诉您门已打开,并且您的标签显示应该更改。再次关闭开关,您将看到标签显示再次更改。

pi working gif

值得注意的是,Blynk应用程序必须在**上运行才能接收推送通知,尽管电子邮件无论应用程序是否运行都有效。

在与Blynk相处的短短时间里,这似乎是一个非常容易使用的服务。最简单的方法是让没有编码知识的人轻松构建DIY家庭自动化系统。有了一点额外的编码知识,它变得更加强大,允许更复杂的系统和多个事件触发器从应用程序中的一个按钮按下。

这个项目是对Blynk的一个基本介绍,尽管我们在这里介绍的内容可以很容易地修改为几乎任何家庭自动化或微控制器项目。

你用过Blynk吗?你有一个疯狂的复杂系统使用的服务,你想与我们分享?请在下面的评论中告诉我们!

图片来源:Giuseppe Caccavale viaYouTube.com网站

  • 发表于 2021-03-16 11:06
  • 阅读 ( 466 )
  • 分类:IT

你可能感兴趣的文章

6种将arduino连接到android的简单方法

... 有关这些廉价小模块入门的优秀入门资料,请参阅Tinkernut实验室的以下视频: ...

  • 发布于 2021-03-12 23:13
  • 阅读 ( 352 )

简单的diy修理开始的人谁害怕diy

...更换插头中的保险丝。本视频还以保险丝如何工作的快速入门开始。 ...

  • 发布于 2021-03-12 23:48
  • 阅读 ( 202 )

arduino nano利弊:最便宜的arduino值得吗?

... Arduino官方网站上有一个关于Nano的快速入门指南,可以使用Arduino Web编辑器直接从浏览器对电路板进行编程。 ...

  • 发布于 2021-03-13 04:51
  • 阅读 ( 309 )

如何用arduino遥控你的家,5个diy项目

...器。这是YouTuber GreatScott的深入指南!不仅是一个伟大的入门使用IR在您的项目,而且包括一个完整的构建,以控制12v RGB LED条! ...

  • 发布于 2021-03-13 11:21
  • 阅读 ( 283 )

32款手机和平板电脑天才diy黑客

... 这张大单子根据完成任务所需的DIY技能分为简单难度、中等难度和高级难度。不管你选择安卓还是iOS,这些黑客都会奏效,这里有适合每个人的东西。我们开始吧! ...

  • 发布于 2021-03-14 03:20
  • 阅读 ( 334 )

9个最好的pi编程资源,把你的树莓pi使用

...主题包括在Windows上使用pip到Git简介,甚至包括Minecraft Pi入门。Minecraft是Raspbian Linux操作系统上Raspberry Pi的标准配置。虽然Minecraft是一款游戏,但它是目前最好的编码应用程序之一。 ...

  • 发布于 2021-03-14 03:57
  • 阅读 ( 234 )

使用nodemcu为计算机添加wi-fi控制的照明

... LED装置越来越普遍。一个简单的12v的RGB带可以买到只要1美元每米,并将照亮一个案件(连同几乎任何其他)的内部非常好。 ...

  • 发布于 2021-03-14 05:31
  • 阅读 ( 247 )

用这些arduino项目像个怪人一样控制你的灯光

...章中,我们将涵盖所有,以及一些更多。您可以在这里用简单的组件和基本的编码技巧构建几乎所有的项目,甚至可以将它们组合在一起。 ...

  • 发布于 2021-03-15 06:56
  • 阅读 ( 364 )

黑客威胁医疗物联网设备:以下是如何保证它们的安全

... 另外,要小心充电站。有时,充电站将是一个简单的USB电缆和充电器,这可以安全使用,因为它不能用来传输数据。但有时,充电站会有一个USB电缆进入一个洞或墙壁,这样你就看不到电缆连接到什么。 ...

  • 发布于 2021-03-20 04:51
  • 阅读 ( 168 )

7可怕的物联网黑客和真正发生的剥削

... 物联网设备看起来很简单。这就是他们的卖点之一:通过购买更容易管理的产品来简化你的生活。但是为了连接到互联网,这些产品必须拥有所有必要的代码,就像普通电脑一样。 ...

  • 发布于 2021-03-21 21:30
  • 阅读 ( 181 )