查看: 907|回复: 2

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都没有找到“定时”组件,不知是何原因? ...

原因应该是你自己没有找到,  界面的右上角 设置里面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

esp32s2 在Arduino IDE调试USB CDC
esp32s2 在Arduino IDE调
各位大佬好,最近尝试弄清如何使用esp32s2的usb功能。然后在Github上找的代码,放到自
一直想做个飞行器,但是出了电小问题
一直想做个飞行器,但是出
这是主函数的源码 extern uint8_t PWM_PIN[8]; void initOutput();//初始化函数 void
Arduino mega2560 usb串口01被modbus master库占用,无法下载程序
Arduino mega2560 usb串口
Arduino mega2560 用来测试modbus master通信,因未发现串口可选择,直接下载了串口(
DIY炫彩灯带,竟如此简单,更有硬件开发工具免费领!
DIY炫彩灯带,竟如此简单
什么是涂鸦Arduino SDK? Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Ardui
.h .cpp源代码转.ino草图
.h .cpp源代码转.ino草图
在Github上下载了源码,是.h 和.cpp文件,请问一下,如何才可以转成可以在arduinoIDE
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表