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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5512|回复: 7

[已解答] 用blinker连接蓝牙控制led灯

[复制链接]
发表于 2019-3-7 20:41 | 显示全部楼层 |阅读模式
根据这个网站以及论坛上的实例改的程序
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的使用问题上出现了问题,附图
2.PNG                 1.PNG


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


 楼主| 发表于 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();
}



发表于 2019-3-8 01:21 | 显示全部楼层
一、0、1引脚已经用作和PC通信了,请不要再连接蓝牙模块;二、请确认你蓝牙模块的波特率,并按文档所示配置。
如果不理解以上的话,那请按照文档操作即可。
 楼主| 发表于 2019-3-8 10:40 | 显示全部楼层
奈何col 发表于 2019-3-8 01:21
一、0、1引脚已经用作和PC通信了,请不要再连接蓝牙模块;二、请确认你蓝牙模块的波特率,并按文档所示配置 ...

我将引脚换成了2,3,步骤也都是按照网上的来的,程序也是网上的,但还是不成功
 楼主| 发表于 2019-3-8 11:01 | 显示全部楼层
解决了。。。

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

(终于可以继续做下去了。。。)
发表于 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 | 显示全部楼层
同楼上,一直显示连接超时
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 20:57 , Processed in 0.082788 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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