一、点灯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监视窗口展示:
实际电路效果展示: