找回密码
 立即注册

QQ登录

只需一步,快速开始

本帖最后由 lou 于 2020-5-7 15:41 编辑

Blynk物联网系列(3)-远程开门
(基于Blynk平台+WeMos D1 WIFI开发板)



一、材料准备

9.png
  • 舵机
舵机是一种位置(角度)伺服的驱动器,可以在程序控制下转到指定的角度。

二,项目实践-远程开门
(1)思路分析

在本项目中,我们希望在APP中电机“开门”,舵机就可以将门打开;点击关门就可以将门关闭。

(2)硬件连接

舵机                   WeMos D1
S      <------>     D2(GPIO16)
V      <------>       5V
G      <------>      GNG

(3)创建项目

Blynk APP中,点击“New Project”,在“Create New Project”页面输入项目名称“远程开门”,选择ESP8266硬件类型,然后单击“Create”按钮,即可创建项目。

10.png

(4)添加组件

为了能控制舵机转动,我们使用Styled Button组件,在功能上和Button组件相似,但是比Button组件可设置更多的样式。
添加Styled Button组件后,设置输出管脚为V0(虚拟管脚),第一个值为0,第二个值为90,再设置“OFF”和“ON”的标签分别为“关门”和“开门”。

16.png

Styled Button组件设置参数说明如下:

  
设置项
  
推荐值
说明
设置组件名称
家门
设置组件名称,建议少于4个字
OUTPUT
V0
设置虚拟管脚为V0
OFF
0
关门时舵机角度
ON
90
开门时舵机角度
MODE
SWITCH
SWITCH为切换开关,按下发送ON,再按一次发送OFF;PUSH为轻触开关,按下发送ON,松开发送OFF
OFF  LABELS
关门
按钮关闭状态时的标签文本,此处设置为“关门”
ON  LABELS
开门
按钮开启状态时的标签文本,此处设置为“开门”
OFF  BACKGROUND
绿色
关闭时按钮的背景色
ON  BACKGROUND
绿色
开启时按钮的背景色
FONT  SIZE
设置文本大小
EDGES
ROUNDED
按钮样式,ROUNDED表示小圆角矩形,SHARP表示矩形,PILL表示大圆角矩形
STYLE
SOLID
按钮样式,SOLID表示实心按钮,OUTLINE表示带轮廓空心按钮
LOCK  SIZE
OFF
是否锁定按钮大小

(5)程序实现

用Mixly编写程序
在Mixly软件模块类别中,打开Blynk IoT,选择“服务器信息”,输入正确的服务器地址、WiFi名称、WiFi密码及Blynk授权码。
在本项目中,开发板需要从手机端获取数据,因此还需要一个“从APP获取数据”模块,虚拟管脚采用默认的“V0”,再将“舵机控制”模块拖入“从APP获取数据”内部,并将从虚拟管脚获取的值“vpin_value”放到舵机控制模块的角度中。这样就可以从手机端获取角度值,并让舵机转到指定角度。

245.png

用Arduino IDE编写程序
打开Arduino IDE软件,选择“文件”->“示例”->“Blynk”->“Hardewares”->”Servo”,打开示例项目。
修改程序中的授权码、WiFi名称和密码,舵机对应管脚号,具体程序如下:

  1. #define BLYNK_PRINT Serial // 开启串口监视
  2. #include <ESP8266WiFi.h>
  3. #include <BlynkSimpleEsp8266.h>
  4. #include <Servo.h>
  5. char auth[] = "2a365b624c0f4ea891256d4a66d428f7";//授权码
  6. char ssid[] = "ssid";//wifi名称
  7. char pass[] = "psssword";//wifi密码
  8. Servo servo;

  9. BLYNK_WRITE(V0)//通过虚拟管脚V0写入角度
  10. {
  11.   servo.write(param.asInt());
  12. }
  13. void setup()
  14. {
  15.   Serial.begin(9600);
  16.   Blynk.begin(auth, ssid, pass);//官方服务器
  17.   //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8080);//自建服务器域名模式
  18.   //Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 158), 8080);//自建服务器ip模式
  19.   servo.attach(16);//舵机连接管脚
  20. }
  21. void loop()
  22. {
  23.   Blynk.run();
  24. }
复制代码

接下来就可以在Bynk APP中实现远程控制开关门了。

12.png
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册