아두이노 RF LINK 를 이용해서 무선 통신 구현하기

메카 2017-01-13 (금) 14:04 4년전 6592  

안녕하세요 메카솔루션입니다.


이번에는 RF LINK 모듈을 이용해서 무선 통신을 구현 하는 방법을 알아보도록 하겠습니다.


 


http://mechasolution.com/shop/goods/goods_view.php?goodsno=539650



RF LINK 무선 통신 모듈은 송신 모듈과 수신모듈이 따로있어 한 방향으로만 데이터를 전송할 수 있습니다.


아두이노1 이 송신모듈이고, 아두이노2 가 수신 모듈이면 

1에서 2로만 데이터를 보낼 수 있습니다.


https://github.com/sui77/rc-switch/releases/tag/2.6.2

전용의 라이브러리가 나와있어 아주 쉽게 사용할 수 있습니다.


배선 알아보기


 



수신부 회로입니다.


디지털 핀 2번 처럼 인터럽트 기능이 가능한 핀을 위주로 사용이 가능합니다.





송신부 회로입니다.


 


아무 디지털 핀이나 사용이 가능한 듯합니다.



소스코드



수신부

#include <RCSwitch.h>


RCSwitch mySwitch = RCSwitch();


void setup() {

  Serial.begin(9600);

  mySwitch.enableReceive(0);  // 인터럽트 0번핀이 디지털핀 2번입니다.

  pinMode(13,OUTPUT);

}


void loop() {

  if (mySwitch.available()) {

    int value = mySwitch.getReceivedValue();

    if (value == 0) {

      Serial.print("Unknown encoding");

    } else {

      if(mySwitch.getReceivedValue() == 100){//수신받은 값이 100이면 LED를 키고 아니면 끕니다.

        digitalWrite(13,HIGH);

      } else {

        digitalWrite(13,LOW);

      }

    }

    mySwitch.resetAvailable();

  }

}


송신부 

#include <RCSwitch.h>


RCSwitch mySwitch = RCSwitch();


void setup() {


  Serial.begin(9600);

  

  // 디지털 핀 2번을 송신핀으로 지정

  mySwitch.enableTransmit(2);

}

  unsigned long sTime = 0;

void loop() {

  sTime = millis();

  while(millis() - sTime < 1000){//1초동안 계속 100을 보냄

    mySwitch.send(100, 24);

  }

  while(millis() - sTime < 1000){//1초동안 계속 0을 보냄

    mySwitch.send(1, 24);

  }

}



동작 영상 확인 해보기 




감사합니다.


출처 메카솔루션

메카리워즈 Image Map


모바일 버전으로 보기