RF315M 无线遥控开关数据抓取实验

之前在TAOBAO买了220v无线遥控开关 单路 86型 单火线面板 替换了卧室老式单联开关,使用起来非常方便。不用大冷天还要起来开关灯。

最近对智能家居很感兴趣,折腾树莓派、还有几年前玩的arduino想自己通过树莓派DIY智能家居中心,实现智能感应控制、语音控制(比如Siri语音控制开关灯)。

乘兴趣正浓,赶紧开始动手分析,首先需要知道这个无线开关采用什么无线协议,一般便宜货都是用比较常见的RF433M/315M模块,淘宝上一样买了几对,使用超外差接收模块,分析出这货是RF315M模块控制,可以获取到无线指令。接下来就可以使用树莓派控制房间灯了。

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
Simple example for receiving

http://code.google.com/p/rc-switch/
*/

#include "./RCSwitch.h"

RCSwitch mySwitch = RCSwitch();

void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
if (mySwitch.available()) {

int value = mySwitch.getReceivedValue();

if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );

digitalWrite(13, digitalRead(13) == LOW ? HIGH : LOW);
}

mySwitch.resetAvailable();
}
}