Blynk是一项物联网(IoT)服务,旨在使远程控制和从您的设备中读取传感器数据的速度尽可能快和容易。在本文中,我们将确切介绍Blynk的含义,工作方式,并提供两个简短的示例项目,说明如何通过NodeMCU和Raspberry Pi开发板使用该服务。
开始开发从未如此简单。近年来,使用微控制器和物联网设备的智能对象迅速普及。诸如Arduino或Raspberry Pi之类的开发板可用于控制一切,从家里的电源插座到运动激活的圣诞节装饰品。
一个可能引起初学者问题的领域是编码和联网。 Blynk旨在消除对广泛编码的需求,并使从智能手机上任何位置的设备访问变得容易。业余爱好者和开发人员可以免费使用它,尽管也可以付费付费使用-公司可以使用Blynk创建自己的应用和系统,然后以自己的品牌进行销售。
Blynk使用其自己的服务器,库以使服务正常运行,但这似乎是Blynk应用的主要优势。
输入Blynk应用
Blynk应用可在Android和Android上免费使用iOS。这是项目的起点,它具有易于使用的拖放系统,可为IoT设置构建自定义控件。工作流程非常快速:启动新项目时,系统会提示您从广泛的列表中选择开发板,以及连接方式。然后,该应用通过电子邮件发送授权令牌,以通过Blynk服务器连接到您的设备。
控制元素称为小工具:各种类型的输入法和输出显示,包括按钮,滑块,游戏杆,图形和文本反馈。还有一些特定于组件的小部件,带有用于LED,LCD显示器甚至是实时流式视频的样式化控件。另外值得注意的是添加了功能(例如自动发布到Twitter和自定义通知)的小部件。
该应用程序是免费的,但通过为所有这些部件提供“能源”成本,它限制了一次可使用的小部件数量。 。该应用程序为您提供了2,000的余额,可以选择是否需要购买。
我发现,提供的初始余额对于此处列出的示例项目来说绰绰有余,尽管您的设置更为复杂,您可能会很快发现果汁耗尽。
每个小部件都有一个编辑菜单,可让您更改名称和颜色。然后,您选择要影响的引脚(无论是板上的引脚还是Blynk的虚拟引脚之一)以及要发送的值范围。对于图形或文本框之类的输出显示,您还可以选择更新频率,从而节省宝贵的带宽。
Blynk还具有将指令分配给“虚拟”引脚的功能,这是用户配置的应用程序与硬件之间的连接。因此,应用程序中的单个按钮可用于触发设备上的许多不同事件。我们将在文章的后面介绍如何使用它们。
该应用程序提供了与他人共享您的项目的选项。生成的QR码可以通过电子邮件发送或直接扫描,也可以由拥有Blynk应用的任何人使用。与您共享的任何人都不能对项目进行更改,这使之成为共享设备控制权的快速便捷的方法。但是,值得注意的是,您的应用程序中的项目必须正在运行,其他人才能访问硬件。
您也可以在不允许访问硬件的情况下共享项目,这是一种很好的教学方法人们如何使用该应用程序而又不让他们打开和关闭灯!
我发现创建应用程序非常快捷,直观。创建完成后,您可以通过按右上角的播放符号立即开始使用它。如果您以后需要进行更改,则只需按相同的按钮即可回到编辑模式。
Blynk服务器
创建了用于控制设备的应用后,您可以有两种方法与之通信。
Blynk云服务器快速,响应迅速且免费使用。连接到Wi-Fi设备就像将生成的授权代码复制到Arduino草图中并提供Wi-Fi详细信息一样容易。对于Raspberry Pi,Blynk提供了一个测试脚本,您可以将其与授权代码一起运行以达到相同的效果。在本文的后面,我们将使用Blynk库创建自己的脚本以连接到服务。
第二个选项是托管您自己的Blynk服务器。 Blynk提供了一个基于Netty的开源Java服务器,可以从您的计算机甚至Raspberry Pi运行该服务器。在功能和安全性方面,这为某些用户带来了各种好处,尽管在此处的示例中,我们将专注于使用提供的Blynk云服务器。
Blynk库
Blynk的第三个也是最后一个元素是Blynk库。该库与大量开发板一起使用,以允许该应用程序与您的硬件之间进行通信。
最简单的是,所需要做的就是安装该库并加载提供的带有注释的示例草图之一。 。
Blynk:初始设置
在智能手机上安装Blynk应用并创建一个帐户。确保使用您可以实际访问的电子邮件地址,因为这是授权令牌的发送位置。现在创建一个项目,选择要使用的板以及连接方式。这两个示例都通过Wi-Fi连接,尽管也可以通过蓝牙,以太网甚至GSM进行连接。
创建您的项目。这将自动发送授权令牌。如果没有收到,可以通过选择项目设置图标(小螺母),选择设备,然后选择“电子邮件”来重新发送。
下一步,从以下位置安装Blynk库: Blynk网站。对于Arduino,请通过将文件复制到您的 Arduino》库文件夹中来安装库。如果您不熟悉Arduino,请参阅以下指南。
对于Raspberry Pi,您需要确保先安装Node.js。
首先,请确保您的Pi是最新的,并且已安装了build-essential软件包。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
然后安装 Node Package Manager , OnOff 库和 Blynk 库,方法是:您的终端窗口。
sudo npm install -g npm
sudo npm install -g onoff
sudo npm install -g blynk-library
您可以通过运行Blynk测试脚本来检查一切是否正常:
blynk.js [YourAuthorizationTokenHere]
已提供一切正常,应该看起来像这样:
如果遇到任何错误,请确保您的Pi是最新的,并且拥有最多的最新版本的Node.js,然后重新安装NPM,OnOff和Blynk库。
使用NodeMCU进行快速设置
第一个示例显示了使用以下命令设置简单系统的速度有多快布林克它不需要编码,而且一旦设置,它就完全独立了。只要开发板可以访问您的Wi-Fi连接,您就可以使用智能手机从任何地方访问它。
首先,在面包板上设置一个简单的电路。将引脚 D0 连接到LED的正极,然后通过220欧姆电阻将其连接到GND引脚。
在Blynk应用程序中打开您的NodeMCU项目。在右侧,从菜单中选择 Button 小部件。选择项目中的按钮以打开其属性菜单。您可以在此处命名,并选择它应该影响NodeMCU板上的哪个引脚。从输出列表中选择 D0引脚,然后切换模式以使其为打开和关闭开关,而不是瞬时按动开关。
按向后(所有更改将自动保存) ,然后按右上角的播放图标启动您的应用。您可以随时按此相同按钮以返回到编辑项目。
下一步,打开Arduino IDE,然后从工具菜单中选择NodeMCU板和端口。如果您在此菜单中没有看到您的开发板,则可能需要安装ESP8266库(本指南应会有所帮助)。
现在,通过导航到,打开其库中提供的ESP8266独立脚本Blynk。 》文件》示例》 Blynk》 Boards_WiFi》 ESP8266_Standalone 。将授权令牌的占位符替换为通过电子邮件收到的授权令牌,然后输入您的Wi-Fi详细信息。
char auth[] = “YourAuthToken”;
char ssid[] = “YourNetworkName”;
char pass[] = “YourPassword”;
以新名称保存草图,然后上传草图到你的董事会。现在,当您按应用程序中的按钮时,LED应该会亮起和熄灭。如果不起作用,请检查您是否已按下应用程序中的播放图标。
在这种简单情况下,Blynk的设置速度非常快。
还有一点值得注意,因为它使用了Blynk服务器,所以只要董事会可以访问您的家庭Wi-Fi连接并且您的智能手机具有移动功能,您就可以在任何地方控制董事会。数据访问。
在Raspberry Pi上使用Blynk
您可以通过使用Blynk测试脚本,以与上述示例在Raspberry Pi上完全相同的方式使用Blynk,但是有一些Blynk的虚拟引脚提供的更深层次的功能,我们现在将进行研究。
Blynk使用Node.js进行工作,因此我们今天要编写的代码将使用Javascript。如果您是该语言的新手,那么它应该是入门的好入门。
我们将使用Blynk库来创建一个应用程序,该应用程序报告门传感器是打开还是关闭,并发送一个
您将需要:
门磁开关(也称为簧片开关)
1x 1k?电阻
1x 10k?电阻器
1x 220?电阻器
1x LED
面包板和接线导线
设置面包板,如下所示:
请注意,Blynk的库使用Pi引脚的GPIO编号,因此我们将在整个项目中使用它们。将5V和GND引脚连接到面包板上的电源轨。将Raspberry Pi上的GPIO引脚22连接到LED阳极,然后通过220?将阴极连接到接地轨。电阻。将GPIO引脚17连接到1k的一侧吗?电阻,并连接10个?电阻的另一端,以及电源轨的5V端。最后,将簧片开关的一侧连接到电源轨的GND侧,并将其连接到1k?和10k?电阻彼此相遇。这种上拉电阻器设置将在开关打开时使引脚17上的电压读取高电平。
在Blynk应用中创建一个新项目,然后选择Raspberry Pi板。在小部件菜单中,选择“标签值”,“电子邮件”和“通知”小部件
选择标签值,为其命名,然后选择虚拟图钉V0 作为其输入图钉。您还可以更改信息的显示方式。在这种情况下,在“标签”选项卡的/pin/之前添加“门是”。我们可以将“读取频率”值保留为默认设置,尽管您可以更改此值以不同的速率将数据发送到您的应用。
值得注意的是,您实际上不必输入电子邮件地址到电子邮件窗口小部件,因为稍后我们将其添加到代码中,尽管该窗口小部件必须存在才能正常工作。
一旦您对应用的外观感到满意,请按“播放”按钮
现在创建一个名为 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应用上设置的虚拟图钉创建一个变量。
var Gpio = require(‘onoff’).Gpio,
reed = new Gpio(17, ‘in’, ‘both’), //register changes ‘both’ when switch is opened and closed
led = new Gpio(22, ‘out’);
var virtualPin = 0;
现在,我们将使用手表函数从OnOff库中观察我们的簧片开关的变化。门开关位于 0 或 1 ,并且每当该值更改时,我们都会将该更改写入LED引脚。
reed.watch(function(err,value){
led.writeSync(value);
我们可以使用该值还将数据发送到Blynk应用。如果门是关着的,我们希望能够在您的标签值小部件中看到它。如果门开了,我们希望收到通知和电子邮件告知我们。我们使用if语句,并使用Blynk库中的 virtualWrite ,通知和电子邮件功能。有关Blynk的完整文档,请参见此处。
if(value==0){
blynk.virtualWrite(virtualPin,“Closed”);
console.log(‘Door Closed’);
};
if(value==1){
blynk.notify(“The door just opened!”);
blynk.email(“email@address.here”, “Front Door”, “The front door just opened.”);
blynk.virtualWrite(virtualPin,“Open”);
console.log(‘Door Open’);
};
});
现在,只要簧片开关记录了值的更改,数据就会发送到我们的虚拟引脚,并且在这种情况下应用程序中通知小部件的门的开口以及向控制台的写入。请注意,最后的花括号是我们从上面的监视功能启动的位置开始。
最后,我们需要在程序结束时重置图钉。这与您可能已经熟悉的 GPIO.cleanup()相同。
process.on(‘SIGINT’, function () {
led.unexport();
reed.unexport();
});
现在保存代码并退出。使用节点运行脚本。
sudo node blynkdoor.js
现在,当将磁铁从干簧传感器上移开时,您将收到一条通知,告知您门已打开,并且标有标签的显示屏应更改。再次关闭开关,您将看到标记的显示再次更改。
值得注意的是,Blynk应用必须在您的手机上运行为了接收推送通知,尽管无论应用程序是否运行,电子邮件都能正常工作。
到目前为止,在Blynk花费的时间很短,这似乎是一种非常容易使用的服务。最简单的方法是,无需编程知识的人就可以轻松构建DIY家庭自动化系统。有了一点额外的编码知识,它就会变得更加强大,从而允许更复杂的系统和应用程序中的单个按钮按下操作产生多个事件触发器。
该项目是Blynk的基本介绍,尽管我们拥有几乎所有家庭自动化或微控制器项目都可以轻松修改此处介绍的内容。
您是否使用过Blynk?您是否有想要使用与我们共享的服务的疯狂复杂系统?在下面的评论中让我们知道!
责任编辑:wv
-
Arduino
+关注
关注
187文章
6463浏览量
186621
发布评论请先 登录
相关推荐
评论