无线开关模组

简介

当你的项目需要无线传输一些简单的信号时,是否有以下问题困扰着你,蓝牙繁琐的AT指令配置和高昂的成本、Wifi的信号局限性和超高的功耗、红外的发射角度和无法穿墙......

“Gravity: 数字量无线开关”可能正是您所需要的!这是一款利用433Mhz射频通信技术的无线开关模组,包括发射器和接收器两部分。具有操作简单、扩展性高、穿透性强、待机功耗低等优势,传输数字量信号,兼容任何可以读写数字量信号的控制器和传感器。适用于需要无线传输数字量的设计,适合部署为一个信号采集节点,或将有线按钮升级为无线按钮。

其中发射器可以不接控制器,接入电池后可以直接用数字量传感器或开关按钮作为信号发射的“触发按钮”,当然也可以连接控制器,通过控制器的数字引脚来控制信号的发射,采用EV1527编码格式,四位键值码可以组合成15种不同的状态;接收器具有配对功能,以保证只有配对的发射设备才能控制接收器,接收器支持点动、锁存、自锁、互锁四种工作模式,可以配对EV1527编码的发射器,一个接收器最多可配对32个发射器。发射器和接收器通过配对后支持“一发多收”或“一收多发”。具体的使用方法请察看基础示例。

使用场景

产品功能描述

产品参数

工作电流 发射器 接收器
5V电源,工作状态 10mA 6mA
5V电源,待机状态 <10uA 3mA
3.3V电源,工作状态 8mA 5mA
3.3V电源,待机状态 <10uA 3mA
状态 传输距离
办公室,不隔墙 15M
办公室,隔1面墙 14~15M
办公室,隔2面墙 13~14M

引脚说明

设备 名称 功能描述
发射器 D0 ~ D3 数字信号输入端
为外接传感器供电
绿色引脚接收到高电平发射信号
发射器 G-D0 ~ G-D3 数字信号输入端
连接控制器后可为发射器供电,DC 3.3-5V
接收到高电平发射信号
发射器 BAT IN 外接电源输入3.3-5V
接收器 D0 ~ D3 数字量信号输出端
默认低电平,收到信号高电平
接收器 按钮 配对/模式切换

接收器操作说明

配对

模式切换

注:接收器默认为点动模式,以下的示例全部以点动模式为例, 如果没有特殊要求,可跳过此步骤

模式 说明
锁存 D0收到一次信号后就一直保持高电平,直到D1~D3收到信号
自锁 D0每收到一次信号,对应的输出状态就反转一次,D1~D3同理
点动 D0收到信号输出高电平,没有收到信号低电平,D1~D3同理
互锁 D0收到信号,D0就保持高电平,其余全部低电平,D1~D3同理

按住按钮0.5~1.5 秒, 然后松开,蓝色指示灯闪烁两次,表示您已经进入模式切换状态,然后可以根据6秒内按下按钮的次数进入不同的模式:

如果按1下,则进入锁存模式;

如果按2下,则进入自锁模式;

如果按3下,则进入点动模式;

如果按4下,则进入互锁模式;

根据需要进入的模式,按动相应次数的按钮,然后按住按钮0.51.5秒作为确认信号,松手后蓝色指示灯闪动2下即设置成功并进入相应的工作模式。0.51.5秒时间较短,注意不要超时。

清除配对

接收器最多可保存32组发射器编码,超过32组时,最先配对的一组编码会被覆盖;

清除所有配对过的发射器:长按接收端按钮超过4秒,松手后蓝色指示灯闪动2下即成功清除所有配对过的发射器;如果清除失败,则重复上述操作即可。

基础示例1-发射器连接电池和传感器

软硬件准备

说明:传感器可任意选择,数字量的即可,这里主要作为功能演示使用了按键和运动传感器,模拟了无线门铃的功能

接线图

发射端:

接收端:

样例代码

void setup() {
    Serial.begin(9600);
}
void loop() {
    if (((digitalRead(2)==1) && (digitalRead(3)==1))) {
        Serial.println("有人按门铃");
        delay(3000);
        while (!(digitalRead(2)==0)) {}
    }
    else if (((digitalRead(2)==0) && (digitalRead(3)==1))) {
        Serial.println("有人经过,但未按门铃");
        delay(100);
        while (!(digitalRead(3)==0)) {}
    }
    else if (((digitalRead(2)==1) && (digitalRead(3)==0))) {
        Serial.println("有人等了一会后按门铃");
        delay(3000);
        while (!(digitalRead(2)==0)) {}
    }
    delay(100);
}

Mind+代码:

现象结果:

当有人经过且按下按键时串口打印“有人按门铃”;当有人经过但没按门铃时串口打印“有人经过,但未按门铃”;当有人来到门前站了一会后再按门铃,串口打印“有人等了一会后按门铃”。

基础示例2-发射器连接控制器

软硬件准备

接线图

发射端:

接收端:

样例代码

发射端:

void setup() {

}

void loop() {
    digitalWrite(2, HIGH);
    delay(1000);
    digitalWrite(2, LOW);
    delay(1000);
}

接收端:

void setup() {
    Serial.begin(9600);
}
void loop() {
    if (digitalRead(2)) {
        Serial.println("Pressed:D2");
        delay(1000);
    }
}

现象结果:

发射端G-D2每隔一秒发出信号,接收端每隔一秒收到信号。

进阶示例1-多种状态的触发

软硬件准备

接线图

发射端:

接收端:

样例代码

接收端:

void setup() {
  Serial.begin(9600);
}
void loop() {
  if (((digitalRead(2)==0) && (digitalRead(3)==0))) {
    Serial.println("State:1,Pressed:NONE");
    delay(500);
  }
  if (((digitalRead(2)==0) && (digitalRead(3)==1))) {
    Serial.println("State:2,Pressed:D3");
    delay(500);
  }
  if (((digitalRead(2)==1) && (digitalRead(3)==0))) {
    Serial.println("State:3,Pressed:D2");
    delay(500);
  }
  if (((digitalRead(2)==1) && (digitalRead(3)==1))) {
    Serial.println("State:4,Pressed:D2&D3");
    delay(500);
  }
  delay(100);
}

现象结果:

按下不同的按键组合,串口打印不同的状态值。

进阶示例2-发射器外接电源和跳线

软硬件准备

发射端:

接收端:

样例代码

void setup() {
    Serial.begin(9600);
}
void loop() {
    if (digitalRead(2)) {
        Serial.println("Pressed:D0");
        delay(300);
    }
}

现象结果:

1.先接好电源,再使用导线/跳线帽短接发射端D0口的红色和绿色引脚,发射端会发射出信号,同时接收端对应引脚接收到信号

2.先使用导线/跳线帽短接发射端D0口的红色和绿色引脚,通过可控的电源为发射端供电,供电瞬间(>60ms)连接了导线的接口发射端会发出信号,同时接收端对应引脚接收到信号。如果电源持续供电,则发射端将一直处于发射状态

发射器电源说明

FAQ

Q1:接收器接在控制器上,发射器没有发射信号但是接收器却收到了信号
A:接收器受到了代码的控制,烧录示例代码或烧录一个空代码即可解决问题
Q2:使用电池连接发射器和传感器时,如何尽可能降低功耗
A:对于一些无源传感器,例如按键 碰撞传感器磁感应传感器等,连接传感器的红色和绿色导线到发射器,断开黑色的导线,这样可以降低功耗
Q3:是否可以搭配别的发射器和接收器使用
A:可以,但要确保编码格式和速率相同,不同的设备D0-D3可能不是完全对应的。发射器编码格式为EV1527,发射速率10K;接收器解码格式EV1527,解码速率10K

更多