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

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

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

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

测试代码:

/*
  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();
  }
}