blinker 433M超外差 2个按键正常运行 注册4个按键程序无反应!-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7557|回复: 11

[已解答] blinker 433M超外差 2个按键正常运行 注册4个按键程序无反应!

[复制链接]
发表于 2020-6-6 18:01 | 显示全部楼层 |阅读模式
本帖最后由 ahua7336 于 2020-6-18 15:38 编辑

blinker+433Mhz超外差模块 注册2个按键程序正常运行  注册4个按键程序就无反应了!

代码如下↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

#define BLINKER_WIFI

#include <RCSwitch.h>
#include <Blinker.h>

RCSwitch mySwitch = RCSwitch();

char auth[] = "3ccd7e*****";     // 注册AAP时的KEY
char ssid[] = "HUAWEI-*****";     // 你的wifi名字
char pswd[] = "hero*****";         // 你的wifi密码

//新建组件对象
BlinkerButton Button1("btn-km");
BlinkerButton Button2("btn-gm");
BlinkerButton Button3("btn-tz");
BlinkerButton Button4("btn-sd");
BlinkerText txt1("tex-zt");

//按下开门按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("调试输出:", state);
    if (state == "tap")
    {
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    txt1.print("开门");
    mySwitch.send("010010101101010110010110");   //433按键输出
    Blinker.vibrate();              //手机震动
    digitalWrite(LED_BUILTIN, HIGH);
    Blinker.delay(500);
    digitalWrite(LED_BUILTIN, LOW);
    BLINKER_LOG("调试输出:", state);
    }
    else if (state == "press")
    {
    txt1.print("开门");
    BLINKER_LOG("调试输出:", state);
    }
    else
    {
    txt1.print("停止");
    BLINKER_LOG("调试输出:", state);  
    }
}

//按下关门按键即会执行该函数
void button2_callback(const String & state) {
    BLINKER_LOG("调试输出:", state);
    if (state == "tap")
    {
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    txt1.print("关门");
    mySwitch.send("010010101101010110011010");   //433按键输出
    Blinker.vibrate();              //手机震动
    digitalWrite(LED_BUILTIN, HIGH);
    Blinker.delay(500);
    digitalWrite(LED_BUILTIN, LOW);
    BLINKER_LOG("调试输出:", state);
    }
}

//按下停止按键即会执行该函数
void button3_callback(const String & state) {
    BLINKER_LOG("调试输出:", state);
    if (state == "tap")
    {
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    txt1.print("停止");
    mySwitch.send("010010101101010110011000");   //433按键输出
    Blinker.vibrate();              //手机震动
    digitalWrite(LED_BUILTIN, HIGH);
    Blinker.delay(500);
    digitalWrite(LED_BUILTIN, LOW);
    BLINKER_LOG("调试输出:", state);
    }
}

//按下锁定按键即会执行该函数
void button4_callback(const String & state) {
    BLINKER_LOG("调试输出:", state);
    if (state == "tap")
    {
    //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    txt1.print("停止");
    mySwitch.send("010010101101010110010100");   //433按键输出
    Blinker.vibrate();              //手机震动
    digitalWrite(LED_BUILTIN, HIGH);
    Blinker.delay(500);
    digitalWrite(LED_BUILTIN, LOW);
    BLINKER_LOG("调试输出:", state);
    }
}

void setup() {

   // 初始化串口,并开启调试信息
    Serial.begin(9600);  
    BLINKER_DEBUG.stream(Serial);
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
    // 初始化433遥控
    mySwitch.enableTransmit(10);  //433遥控
    mySwitch.setPulseLength(340);  //433遥控
    // 初始化blinker
    Blinker.begin(auth,ssid,pswd,0,1); //联网初始化
    Button1.attach(button1_callback); //注册开门按键函数
    Button2.attach(button2_callback); //注册关门按键函数
    Button3.attach(button3_callback); //注册停止按键函数
    Button4.attach(button4_callback); //注册锁定按键函数

}

void loop() {

    Blinker.run();

}

大神帮忙看下  本人属于小白!!

解决办法:
此条发射指令(数据二进制)  
mySwitch.send("010010101101010110010100");    //433按键输出

更换为十进制数据 程序就正常了   mySwitch.send(4904340, 24);    //433按键输出


发表于 2020-6-6 18:49 | 显示全部楼层
不要在回调函数中使用delay;
blinker程序中所有delay使用Blinker.delay替代
 楼主| 发表于 2020-6-8 09:28 | 显示全部楼层
coloz 发表于 2020-6-6 18:49
不要在回调函数中使用delay;
blinker程序中所有delay使用Blinker.delay替代

还不行,把3,4 注释掉程序就正常了!

    Button1.attach(button1_callback); //注册开门按键函数
    Button2.attach(button2_callback); //注册关门按键函数
    //Button3.attach(button3_callback); //注册停止按键函数
    //Button4.attach(button4_callback); //注册锁定按键函数

这样上传后  运行是正常的
 楼主| 发表于 2020-6-8 17:47 | 显示全部楼层
来个大神啊!求帮助
发表于 2020-6-12 22:02 | 显示全部楼层
大佬,为什么我一个开关时正确的,复制了BUTTON,里面的io改了就不行了,创建不了第二个开关
发表于 2020-6-12 22:47 | 显示全部楼层
Blinker好垃圾,这种产品也好意思拿出来,说什么可以小爱同学报读DHT11检测,代码我都写了,小爱训练我也找了,训练的都是灯的操作,官网又不说怎么训练其他动作,定义3个按键时行时不行,录制一个视频总是出故障,用APP自带的语音人话都听不懂,关红灯,听成什么观鸿灯去了,上传代码串口通信乱码,连不上WIFI,极其不稳定,是不是要花钱呀,要花钱就直说,哪里可以免费做,哪里要钱才能完成的功能

设备操作

设备操作
 楼主| 发表于 2020-6-13 16:50 | 显示全部楼层
omikeai 发表于 2020-6-12 22:02
大佬,为什么我一个开关时正确的,复制了BUTTON,里面的io改了就不行了,创建不了第二个开关 ...

代码发上来看下!
发表于 2020-12-20 19:40 | 显示全部楼层
能不能发一个接收端学习按键的代码。
 楼主| 发表于 2020-12-21 16:13 | 显示全部楼层
lmzsj123 发表于 2020-12-20 19:40
能不能发一个接收端学习按键的代码。

这个和你硬件有关的!硬件需要带存储器的 否则一断电 按键数据就没有了!
发表于 2021-7-5 14:34 | 显示全部楼层
前辈模块在哪里买的,私个链接呗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 11:35 , Processed in 0.164163 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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