BUILTIN_SWITCH是干什么的-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: Mahongmagu

[已解答] BUILTIN_SWITCH是干什么的

[复制链接]
 楼主| 发表于 2021-5-19 11:12 | 显示全部楼层
armduino 发表于 2021-2-8 17:45
根据这个builtin_switch反馈的状态on/off,可以控制指定的IO口,进而控制设备启停。
没有关联IO,就是虚的 ...

关于builtin_switch,我已经把下面的代码加了进去,但在设备图标上面为什么不显示开关按钮

void switch_callback(const String & state){                        //设备总开关
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));  //总是让LED灯发生明灭变化
    BLINKER_LOG("get builtin switch state: ", state);
   
    if (state == BLINKER_CMD_ON) {                                 //BLINKER_CMD_ON="on"
       switch_state = true;
       digitalWrite(D7, HIGH);
       BUILTIN_SWITCH.print("on");  
    }
    else if (state == BLINKER_CMD_OFF) {
       switch_state = false;
       digitalWrite(D7, LOW);
       BUILTIN_SWITCH.print("off");
    }
}

void setup( ){
......
BUILTIN_SWITCH.attach(switch_callback);  //设备总开关
}

点评

添加心跳包,返回下BUILTIN_SWITCH的状态  详情 回复 发表于 2021-5-19 14:17
发表于 2021-5-19 14:17 | 显示全部楼层
Mahongmagu 发表于 2021-5-19 11:12
关于builtin_switch,我已经把下面的代码加了进去,但在设备图标上面为什么不显示开关按钮

void switch_ ...

添加心跳包,返回下BUILTIN_SWITCH的状态
 楼主| 发表于 2021-5-19 17:17 | 显示全部楼层
奈何col 发表于 2021-5-19 14:17
添加心跳包,返回下BUILTIN_SWITCH的状态

是在心跳包里加类似一下的代码吗?


    BLINKER_LOG("get builtin switch state: ", state);
   
    if (state == BLINKER_CMD_ON) {                                 //BLINKER_CMD_ON="on"
       switchon=1;
        // 反馈开关状态
        BUILTIN_SWITCH.print("on");  
    }
    else if (state == BLINKER_CMD_OFF) {
            BUILTIN_SWITCH.print("off");
    }
 楼主| 发表于 2021-5-19 17:49 | 显示全部楼层
在心跳包里加了如下代码:
  if (switch_state) BUILTIN_SWITCH.print("on");
  else BUILTIN_SWITCH.print("off");
正常工作了,谢谢
发表于 2021-5-19 18:41 | 显示全部楼层
armduino 发表于 2021-2-8 17:25
前两天刚好被我鼓捣出来了。
BUILTIN_SWITCH字面意思是“内置开关”,我程序调试出来就是在设备图标上面显 ...

关于这个BUILTIN_SWITCH,我有几个问题麻烦请教一下。
1.不需要再APP中绑定按键吗?
2.如果有多个开关按键,如何确定是哪一个按键,还是说,这就是一个单纯的反馈状态的一个函数。
 楼主| 发表于 2021-5-20 10:38 | 显示全部楼层
一入极客深似海 发表于 2021-5-19 18:41
关于这个BUILTIN_SWITCH,我有几个问题麻烦请教一下。
1.不需要再APP中绑定按键吗?
2.如果有多个开关按 ...

不需要。在设备外面的图标上只会显示这一个开关按键
发表于 2021-5-20 22:10 | 显示全部楼层
Mahongmagu 发表于 2021-5-20 10:38
不需要。在设备外面的图标上只会显示这一个开关按键

我里面有多个按键,外面的图标怎么确定我里面的是哪一个按键呢?是默认的是按键1吗?
 楼主| 发表于 2021-6-7 16:01 | 显示全部楼层
一入极客深似海 发表于 2021-5-20 22:10
我里面有多个按键,外面的图标怎么确定我里面的是哪一个按键呢?是默认的是按键1吗?
...

不需要知道是哪个按键,就定义一个switch_callback(const String & state){
BLINKER_LOG("get builtin switch state: ", state);
   
    if (state == BLINKER_CMD_ON) {                                 //BLINKER_CMD_ON="on"
       switchon=1;
       switch_state = true;
        // 反馈开关状态
        BUILTIN_SWITCH.print("on");  
    }
    else if (state == BLINKER_CMD_OFF) {
        switch_state = false;
        switchon=0;
        digitalWrite(fanpin, LOW);
        fanpoweron=false;
        digitalWrite(wmpin, LOW);
        wmpoweron=false;  
        waterlevel=0;
        tempC=0;
        foodswitch=false;
       BUILTIN_SWITCH.print("off");
    }
},置按键状态就好了
发表于 2021-6-7 18:43 | 显示全部楼层
Mahongmagu 发表于 2021-6-7 16:01
不需要知道是哪个按键,就定义一个switch_callback(const String & state){
BLINKER_LOG("get builtin s ...

明白了,多谢指点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 12:49 , Processed in 0.199115 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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