如何通过互联网远程控制Arduino使用Blynk应用程序
扫描二维码
随时随地手机看文章
你有没有想过远程控制你的Arduino板,而不使用任何屏蔽或模块,如ESP8266和蓝牙?是的,在Blynk应用程序及其服务器的帮助下,这是可能的。
Blynk是一个非常受欢迎的物联网平台,用于构建物联网项目,如:
•使用Blynk和ESP8266 (Node MCU)的物联网控制LED
•基于物联网的温湿度监测,使用BLYNK, ESP8266和DHT11传感器
•物联网家庭自动化使用Blynk应用程序使用ESP32
•基于物联网的家庭自动化使用Blynk应用程序和树莓派
•物联网控制LED使用ESP32与Blynk应用程序
在这个项目中,我们将使用Blynk应用程序远程控制两个LED。两个LED都将与Arduino连接,一个LED将被打开和关闭,另一个LED将使用Blynk应用程序控制亮度。
布林克是什么?
Blynk是一个物联网平台,允许我们快速构建项目来控制和监控使用Android和iOS设备的数据。我们可以创建一个项目仪表板,并添加控件,如按钮、显示器、滑块等,用于控制微控制器和其他外围设备。使用这些小部件,我们可以控制设备,可以监控手机屏幕上的传感器数据。
我们之前已经介绍了Blynk应用程序与其他基于物联网的微控制器,请点击链接找到它们。
Blynk的特点:
1. 您可以使用Blynk应用程序添加通知服务,而无需使用任何第三方平台,如IFTTT。例如,您可以在Twitter上发布数据,并在达到阈值时收到电子邮件。这可以通过配置Blynk应用程序来实现。
2. 在物联网项目中,与软件部分相比,硬件部分更容易。但是使用Blynk,软件部分也变得比硬件更容易。所需的编码非常少,所有代码都包含在其库中。Blynk是构建简单项目的完美工具。
3. 市场上大多数可用的微控制器都由Blynk支持,这些微控制器可以使用Blynk应用程序通过Wi-fi, BLE, USB, GSM和以太网进行控制。
4. 您可以创建自己的本地Blynk服务器,只需使用几个步骤即可在本地控制设备,并且可以使用Blynk应用程序轻松控制。
5. Blynk最有趣的特性之一是虚拟引脚的使用。虚拟引脚是Blynk发明的一个概念,用于在硬件和Blynk移动应用程序之间提供任何数据交换。这些引脚不同于数字和模拟引脚,它们没有任何物理属性。
因此,如果您想要来自虚拟引脚的任何数据,Blynk应用程序将将数据发送到定义的虚拟引脚,然后可以在MCU引脚上访问此数据。此外,数据可以从Blynk应用程序发送到任何虚拟引脚,然后可以很容易地在应用程序上访问数据。
在这个项目中,我们还将使用虚拟引脚来控制Arduino。
所需的材料
•Arduino Uno
•Arduino Uno USB电缆
•两个发光二极管
•跳线
•电路试验板
线路图
电路图非常简单,只需将一个LED连接到PWM引脚(5),另一个LED连接到Arduino Uno的数字引脚4。
现在,让我们从安装Blynk应用程序和库开始。
安装和配置Blynk应用程序来控制LED
1. 从play store下载Blynk应用。Android和iOS用户都可以使用。打开应用程序,通过输入你的电子邮件ID和密码创建一个帐户。
2. 现在,我们将创建一个新项目。点击新建项目。
3. 给出一个项目名称,并选择设备为Arduino UNO,连接类型为USB,因为我们使用串行通信与Arduino和Blynk服务器进行通信。现在,单击Create,如下所示。
4. 创建项目后,您将在注册邮件id上收到一个认证令牌。此令牌将在代码中使用。在本教程的末尾给出了完整的代码。
5. 现在将显示一个空的仪表板,我们将放置所有所需的小部件,即按钮,显示器,滑块等。点击+号。这里显示了所有可用的小部件。您可以浏览所有的小部件,并根据自己的需求使用它们。
在本教程中,我们将切换一个LED并控制其他LED的亮度。我们需要一个按钮和一个滑块来控制亮度。
选择按钮小部件和滑块类型(H或V)通过点击它。
6. 现在,设置这两个小部件的属性。轻按仪表盘上的按钮。在D4上选择输出和模式切换,然后回到仪表板并点击滑块。在虚拟引脚V1上选择输出引脚,所有属性保持不变。
现在我们已经准备好了Blynk应用程序。让我们开始编程Arduino板,以便与Blynk应用程序一起工作,为此有一个可用于Arduino的库。
在Arduino中安装Blynk Library
在开始为Arduino Uno编写代码之前,我们将首先在Arduino IDE中安装Blynk库:
1. 要安装库,请转到Sketch -> Include Libraries -> Manage Libraries。然后搜索Blynk并安装最新版本,如下所示。
2. 现在,我们将修改一个示例代码。因此,打开示例->Blynk->Boards_USB_Serial->Arduino_Serial_USB。
让我们看看给定的代码并试着理解它。
基于Blynk App的Arduino编程
在本教程的最后给出了完整的代码和演示视频。在这里,我们一步一步地解释了代码。
1. 首先,在代码中根据需要使用#define声明宏。这里宏BLYNK_PRINT被定义为DebugSerial用于打印。
2. 现在,包括software serial和Blynk函数的头文件,并为software serial创建一个实例DebugSerial。
3. 将该验证令牌存储在字符数组中。
4. 在setup()函数中初始化波特率为9600的软件串口、内置串口和Blynk。函数blynk.begin()接受两个参数,即Serial和auth token。
5. 在void loop()函数中,应该有非常少的代码,以便Blynk可以在没有任何中断或数据丢失的情况下工作。这是因为当你把一些东西放入空循环函数中,比如从MCU或智能手机获取传感器读数,它执行百万次,这些数据上传到Blynk服务器上,这意味着Blynk云将被大量消息淹没,服务器将认为这是垃圾邮件,所以Blynk云将自动终止连接。此外,避免在环路中使用延迟功能,因为它完全停止了MCU的功能,在这种情况下连接也会关闭。
从Arduino获取传感器数据的最佳选择是使用计时器。在setup函数中初始化计时器,并定义一个函数来执行任务。
这将需要一个最小的函数——Blynk.run()和timer函数可以处理获取数据并将其发送到服务器的所有任务。但在本教程中,我们不发送任何数据,因此不需要计时器。
6. 用于切换LED的代码内置在Blynk.run()函数中,但我们必须创建一个用于从智能手机获取滑动条值的函数。有两个函数用于发送和接收数据,即BLYNK_READ()和BLYNK_WRITE()。这些函数将虚拟引脚作为读取和写入数据的输入参数。因此,我们必须使用BLYNK_WRITE函数从Blynk应用程序写入虚拟引脚V1上的数据。
现在,将从引脚V1传入的值赋给一个变量,param.asInt()函数将接收到的值作为整数返回。如果接收到的值不是整数,则可以使用float、double或string。
然后使用analogWrite()函数将此值放入Arduino的PWM引脚中。
就是这样。我们已经完成了编码部分。现在,使用USB电缆插入Arduino板,并在设备管理器中检查板的COM端口。
互联网连接脚本:
在这里,我们没有使用Arduino板的任何模块,但需要一个工作的互联网连接来发送和接收云上的数据,所以有一个脚本包含在Blynk库中,可以访问我们的笔记本电脑/PC互联网连接。因此,该脚本通过串行通信从Arduino板获取数据,并使用笔记本电脑的互联网连接将数据上传到Blynk云上。我们必须运行这个脚本来启动操作。
这个脚本可以在Arduino目录下的Documents文件夹中找到,转到Libraries -> Blynk -> Scripts。有一个名为blynk-ser.bat的文件,它是所需的脚本。使用Arduino板的COM端口和Blynk云端口号编辑此脚本。
使用记事本打开脚本并替换以下内容。你只需要替换你的COM端口并保存文件,所有其他的东西保持不变。
测试-使用Blynk应用程序远程控制Arduino
现在,我们都准备好了用Blynk应用程序控制Arduino GPIO引脚。确保你已经连接了两个led,并在笔记本电脑和智能手机上有一个工作的互联网连接。
为了运行项目,双击脚本,它将开始执行。现在,打开应用程序,点击右上角的播放按钮。
然后轻按LED按钮开启LED,再轻按关闭LED。
同样,移动滑块来改变LED的亮度。
如果你在应用程序的棋盘图标上看到一个红点,这意味着两边都没有互联网连接,所以检查一下互联网连接,然后再试一次。
这就是如何轻松地使用Blynk应用程序远程控制Arduino板。
本文编译自iotdesignpro