用blinker连接蓝牙控制led灯-Arduino中文社区 - Powered by Discuz! Archiver

MrBattery 发表于 2019-3-7 20:41

用blinker连接蓝牙控制led灯

根据这个网站以及论坛上的实例改的程序
https://www.arduino.cn/thread-83177-1-1.html


附上完整代码,想用代码控制led灯开关


#define BLINKER_BLE
#include <Blinker.h>
#define BUTTON_1 "ButtonKey"
#define ledPin 12
BlinkerButton Button1(BUTTON_1);
void button1_callback(const String & state)
{
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("get button state: ", state);


   if (state == "on") {
      BLINKER_LOG("Toggle on!");
      Button1.icon("icon_1");
      Button1.color("#FFFFFF");
      Button1.text("Your button name or describe");

      Button1.print("on");
      digitalWrite(ledPin,HIGH);
    }
    if (state == "off") {
      BLINKER_LOG("Toggle off!");
      Button1.icon("icon_1");
      Button1.color("#FFFFFF");
      Button1.text("Your button name or describe");
      Button1.print("off");
      digitalWrite(ledPin,LOW);
    }
   

}
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    Blinker.vibrate();
   
    uint32_t BlinkerTime = millis();
    Blinker.print(BlinkerTime);
    Blinker.print("millis", BlinkerTime);
}
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    pinMode(ledPin, OUTPUT);
    digitalWrite(ledPin, LOW);
    Blinker.begin(0,1);
    Button1.attach(button1_callback);
    Blinker.attachData(dataRead);
}
void loop()
{
    Blinker.run();
}


代码调试是成功的,但是在blinker的使用问题上出现了问题,附图
               


按键一直都是on状态,我也不知道是我的设置出现了问题还是程序就编写的不对
使用blinker的过程中每按一次这个红色的开关手机就会震动一下,arduino上面的tx灯闪一下,就没有然后了。。。。
有大佬知道怎么解决么


MrBattery 发表于 2019-3-7 21:48

本帖最后由 MrBattery 于 2019-3-7 21:51 编辑

换成这个代码也是一样的没法用,不知道为什么,按键名称也改成相应的了



#define BLINKER_PRINT Serial
#define BLINKER_BLE

#include <Blinker.h>
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");

int counter = 0;
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}

void setup() {
    Serial.begin(115200);

    #if defined(BLINKER_PRINT)
      BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    Blinker.begin();
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
}

void loop() {
    Blinker.run();
}



奈何col 发表于 2019-3-8 01:21

一、0、1引脚已经用作和PC通信了,请不要再连接蓝牙模块;二、请确认你蓝牙模块的波特率,并按文档所示配置。
如果不理解以上的话,那请按照文档操作即可。

MrBattery 发表于 2019-3-8 10:40

奈何col 发表于 2019-3-8 01:21
一、0、1引脚已经用作和PC通信了,请不要再连接蓝牙模块;二、请确认你蓝牙模块的波特率,并按文档所示配置 ...

我将引脚换成了2,3,步骤也都是按照网上的来的,程序也是网上的,但还是不成功

MrBattery 发表于 2019-3-8 11:01

解决了。。。

按照大佬说的不用01,换成了23
另外把语句改成Blinker.begin(2,3,115200);(用的JDY-08)


(终于可以继续做下去了。。。)

邓文饼 发表于 2019-3-8 23:42

MrBattery 发表于 2019-3-8 11:01
解决了。。。

按照大佬说的不用01,换成了23


serial。begin()莫名奇妙 哈哈 我 下次也要注意

时间之矢 发表于 2019-8-29 14:41

请问楼主是把JDY-08买来之后能直接连上手机端的Blinker吗?我买的JDY08总是显示连接超时...

隔离指南 发表于 2019-8-29 15:37

同楼上,一直显示连接超时:dizzy:
页: [1]
查看完整版本: 用blinker连接蓝牙控制led灯