ESP8266 实现 红外信号 转 射频信号

2020-06-26  本文已影响0人  Txxxy

0x00 用途

集成 射频发射装置 到 天猫精灵的 红外网关

0x01 使用到的软件/硬件

ESP8266
Arduino 编辑器
https://github.com/crankyoldgit/IRremoteESP8266
https://github.com/sui77/rc-switch

0x02 安装驱动, 配置编辑器

参考这篇文章
http://www.taichi-maker.com/homepage/download/

0x03 ESP8266 引脚图

image.png

0x04 代码实现

#include <RCSwitch.h>
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>

const uint16_t kRecvPin = 14;
const uint16_t kSendRCPin = 2;
IRrecv irrecv(kRecvPin);
decode_results results;
RCSwitch mySwitch = RCSwitch();


void setup() {
  Serial.begin(115200);
  while (!Serial)
  delay(50); 
  irrecv.enableIRIn();
  Serial.println();
  Serial.print("IRrecvDemo is now running and waiting for IR message on Pin ");
  Serial.println(kRecvPin);
  mySwitch.enableTransmit(kSendRCPin);
  mySwitch.setProtocol(1);
}

void change_light_status() {
  mySwitch.send(20172033, 26);
}

void loop() {
  if (irrecv.decode(&results)) {
    serialPrintUint64(results.value);
    Serial.println("");
    if (results.value == 3856494594){
      Serial.println("Match");
      change_light_status();
    }
    irrecv.resume();
    delay(100);
  }
}

0x05 代码解释

获取到 值为 3856494594 的红外信号时候, 就发射 20172033 的射频信号
可以自行修改

0x06 遇到的坑

上一篇 下一篇

猜你喜欢

热点阅读