查看: 1313|回复: 3

blinker物联网教程——8、定时震动器

[复制链接]

该用户从未签到

发表于 2021-3-10 20:23 | 显示全部楼层 |阅读模式
本帖最后由 海神 于 2021-6-7 11:04 编辑

简介

blinker设备端SDK已经集成了定时控制功能,用户只需要添加定时组件到设备页面后,点击定时组件即可设置定时任务。定时任务可绑定按键动作,当到了用户设定的时间,设备端即会触发按键对应的动作。
本节我们制作一个定时震动提示器,手机端添加一个按键控件,当手机按下按键后,震动提示器就开始震动。
我们还添加一个倒计时时间,与这个按键绑定。当倒计时完成后,发出震动提醒。

硬件

wifiduino主板*1
wifiduino拓展板*1
震动模块*1
3P连接线*1

软件

Blinker手机app

代码

  1. #define BLINKER_WIFI

  2. #include <Blinker.h>
  3. #define PIN D13


  4. char auth[] = "d8bdba0xxxx";
  5. char ssid[] = "mosxxun";
  6. char pswd[] = "1803808xxxx";

  7. // 新建组件对象
  8. BlinkerButton Button1("btn-abc");

  9. int counter = 0;

  10. // 按下按键即会执行该函数
  11. void button1_callback(const String & state)
  12. {
  13.     BLINKER_LOG("get button state: ", state);
  14.     if (state == BLINKER_CMD_BUTTON_TAP) {      //按键被点击
  15.         BLINKER_LOG("Button tap!");   //blinker调试窗口显示"Button tap!"
  16.         Button1.color("#FF0000");    // 按键颜色设为红色
  17.         Button1.text("red");   //设置按键的描述
  18.         digitalWrite(PIN, HIGH); // 将LED灯状态反转,亮变灭,灭变亮
  19.         Button1.print();   //将按键状态信息输出给电脑上显示
  20.     }
  21.     else if (state == BLINKER_CMD_BUTTON_PRESSED) {    //按键被按下不放
  22.         BLINKER_LOG("Button pressed!");   
  23.         Button1.color("#FFFF00");    //按键颜色显示为黄色
  24.         Button1.text("yellow");
  25.         digitalWrite(PIN, LOW); // 将LED灯状态反转,亮变灭,灭变亮
  26.         Button1.print();
  27.     }

  28. }

  29. void setup()
  30. {
  31.     // 初始化串口
  32.     Serial.begin(115200);
  33.     BLINKER_DEBUG.stream(Serial);
  34.     // 初始化有LED的IO
  35.     pinMode(PIN, OUTPUT);
  36.     digitalWrite(PIN, LOW);
  37.     // 初始化blinker
  38.     Blinker.begin(auth, ssid, pswd);
  39.     Button1.attach(button1_callback);
  40. }

  41. void loop() {
  42.     Blinker.run();
  43. }
复制代码

注意程序里定义的震动模块接口为D13
  1. #define PIN D13
复制代码
程序中,我们用到了按键的两种状态,单击按键、长按按键
BLINKER_CMD_BUTTON_TAP  ——单击按键
BLINKER_CMD_BUTTON_PRESSED ——长按按键
在出于单击按键状态时,触发震动。如果要关闭震动的话,就长按按键。

blinker定制软件界面

添加按键组件,将键名修改为程序里定义的“btn-abc”,显示文本内容修改为震动。修改图标样式及图标颜色。
zdq1.png zdq2.png
添加定时组件。完成编辑,点右上角解锁。
点击定时任务编辑定时内容,选择定时时间为1分钟,单击震动按键,定时任务与按键动作相绑定。点击开始
zdq4.png zdq5.png

硬件连接

将扩展板堆叠在wifiduino主板上,并将震动模块通过连接线连接在扩展板上的D13(程序定义)接口中。
连接完成后,给wifiduino通电 wifiduino上电后会自动连接入网。
zdq6.png
观察现象

等到定时1分钟结束后,观察震动模块是否震动。当震动开始后,我们想要停止震动,手机app回到主界面,长按震动按键,知道图标变成黄色,便可关闭震动提示。
zdq7.png

进阶

除了添加一个定时任务,我们还可以添加多个任务,在定时结束时来触发按键控件,这样就可以实现设置不同的时间点触发同一个事件,比如开灯、打铃、喂猫等等。
以上实验我们用到了定时任务中的倒计时功能,除了倒计时功能,还有定时功能、循环功能,他们用法一致,可以根据实际情况选择对应的功能。




blinker物联网教程目录

该用户从未签到

发表于 2021-5-6 20:10 | 显示全部楼层
本帖最后由 lizjuee 于 2021-5-6 20:16 编辑

华为麦芒8手机上使用免费版和专业版app都没有找到“定时”组件,不知是何原因?

点评

原因应该是你自己没有找到, 界面的右上角 设置里面  详情 回复 发表于 2021-5-7 08:38

该用户从未签到

 楼主| 发表于 2021-5-7 08:38 | 显示全部楼层
lizjuee 发表于 2021-5-6 20:10
华为麦芒8手机上使用免费版和专业版app都没有找到“定时”组件,不知是何原因? ...

原因应该是你自己没有找到,  界面的右上角 设置里面

该用户从未签到

发表于 2021-7-28 22:03 | 显示全部楼层
在右上角三个点那里,点开有定时任务,新版的不在组件那里了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

atmega32u4芯片的主控最多有多少引脚?
atmega32u4芯片的主控最多
想自己diy一个键盘,涉及到的引脚比较多,淘宝找了下没找到相应的主控 需要atmega32u4
Arduino与S7-200 PLC 进行Modbus通信测试
Arduino与S7-200 PLC 进行
Modbus是一种串行通信协议,Modbus已经成为工业领域通信协议的业界标准,并且现在是工
Arduino Nano V3.0无法烧录问题
Arduino Nano V3.0无法烧
在t宝上买的那种改了“USB转TLL”芯片的nano板,上手后无法烧录程序,L灯闪烁(我的UN
请教一个有关NodeMCU和舵机的问题
请教一个有关NodeMCU和舵
[*]问题现象 我尝试使用网页控制NodeMCU引脚的方式来控制舵机。但是在程序烧进去
arduino pid麦克纳姆轮小车程序详解
arduino pid麦克纳姆轮小
之前发过几个帖子,大家可以参考,但经过多次尝试,整套系统升级了,优化了很多地方目录:
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表