智能家居应用教程6——定时震动器-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1397|回复: 0

智能家居应用教程6——定时震动器

[复制链接]
发表于 2022-1-21 14:51 | 显示全部楼层 |阅读模式
本帖最后由 OpenJumper 于 2022-1-21 14:51 编辑

[md]## 简介

blinker设备端SDK已经集成了定时控制功能,用户只需要添加定时组件到设备页面后,点击定时组件即可设置定时任务。定时任务可绑定按键动作,当到了用户设定的时间,设备端即会触发按键对应的动作。

本节我们制作一个定时震动提示器,添加一个按键,当按下按键后,执行震动命令。随后,我们添加一个倒计时时间,与这个按键绑定。当倒计时完成后,发出震动提醒。

## 器材准备

+ wifiduino主板 * 1

+ wifiduino拓展板 * 1

+ 震动模块 * 1

+ 3P连接线 * 1

+ 3.7V可充电电池 * 1

## 程序下载

下载例程:button_state.ino

修改程序中的 auth[]值和要连接的wifi的ssid及密码
01.jpg
注意程序里定义的震动模块接口为D13[/md]
  1. #define PIN D13
复制代码
[md]
下载程序到wifiduino板中。下载结束后,IDE提示栏中显示“上传成功”
02.jpg
程序中,我们用到了按键的两种状态,单击按键、长按按键

BLINKER_CMD_BUTTON_TAP  ——单击按键

BLINKER_CMD_BUTTON_PRESSED ——长按按键

在出于单击按键状态时,触发震动。 如果要关闭震动的话,就长按按键。

## 完整程序[/md]
  1. #define BLINKER_WIFI

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


  4. char auth[] = "d8bdba0f8f8d";
  5. char ssid[] = "mostfun";
  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. }
复制代码
[md]
## blinker制定软件界面

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

05.jpg
## 连接硬件模块

将扩展板堆叠在wifiduino主板上,并将震动模块通过连接线连接在扩展板上的D13(程序定义)接口中。
连接完成后,插上电池,并将开关打开供电 , 使wifiduino能够连接上网。
06.jpg
## 观察现象

等到定时1分钟结束后,观察震动模块是否震动。 当震动开始后,我们想要停止震动,手机app回到主界面,长按震动按键,知道图标变成黄色,便可关闭震动提示 。
07.jpg [/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 15:17 , Processed in 0.078013 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表