ESP32基于Arduino框架实现Blinker点灯

文章介绍了点灯app中的两种按键类型——普通按键和开关按键,以及如何通过Blinker库在Arduino上编写代码来控制LED灯的状态,根据接收到的指令改变LED的开和关。用户可以通过编辑模式设置按键类型,设备端则根据接收到的指令执行相应的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、点灯app独立设备组件介绍

在编辑模式下,点击按键进入编辑组件页面,可以看到 按键类型 有两种:普通按键、开关按键

在这里插入图片描述

普通按键
每次按下发送的指令为
默认状态:
{“btn-abc”:“tap”}

开关按键
按键本身会保存开关状态,默认为off,按下时会发送

{“btn-abc”:“on”}

保存的状态为on时,按下会发送

{“btn-abc”:“off”}

设备端可以发送指令改变当前按键的开关状态

二、 硬件连接参考图:

在这里插入图片描述

三、代码如下所示:

#define BLINKER_PRINT Serial
#define BLINKER_WIFI

#include <Blinker.h>

#define LED1 4
#define LED2 5

// 新建组件对象
BlinkerButton Button1("btn-abc");   // 点灯APP中的组件键名

char auth[] = "8ab016772e62";       // Blinker秘钥
char ssid[] = "Aimore";             // 2.4G频段的WIFI名称
char pswd[] = "1357924680";         // 2.4G频段的WIFI密码

bool LED_state=0;                   // 定义一个全局布尔型变量来控制LED的状态

//LED函数
void LED_ON_OFF()         
{
  if(true == LED_state)
  {
    Button1.print("LED1 ON");       // 点灯app中Monitor打印LED状态日志
  }
  else 
  {
    Button1.print("LED2 ON");
  }
  digitalWrite(LED1, LED_state);    //LED1状态控制
  digitalWrite(LED2, !LED_state);   //LED2状态控制
  LED_state = !LED_state;           // 变换状态
}
// 按下按键即会执行该函数
void button1_callback(const String & state)
{
  LED_ON_OFF();                    // 调用LED函数
}
void setup()
{
  Serial.begin(115200);           // 初始化串口通信,波特率为115200

  //Blinker Monitor窗口打印
  #if defined(BLINKER_PRINT)  
    BLINKER_DEBUG.stream(BLINKER_PRINT);      //将debug的输出流设置为串口
  #endif

  pinMode(LED1, OUTPUT);          // 设置led引脚为输出模式
  pinMode(LED2, OUTPUT);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);

  //Blinker配置
  Blinker.begin(auth, ssid, pswd);            // 配置blinker 
  Button1.attach(button1_callback);           //注册按钮回调函数
}
void loop()
{
  Blinker.run();
}

四、效果展示:

APP监视窗口展示:

实际电路效果展示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值