본문 바로가기
아두이노

아두이노(arduino) / 아두이노 블루투스 모듈, 라즈베리파이 블루투스 통신

by clean_h 2021. 8. 26.
728x90

아두이노 블루투스 모듈

아두이노는 유선 통신인 시리얼 통신을 사용한다. 그래서 아두이노 자체만으로는 무선통신이 불가능하다.(블루투스 모듈이 내장되어있는 블루투스 제외) 따라서 무선 통신을 하기 위해서는 무선통신을 시리얼 통신으로 바꿔주는 모듈 블루투스 모듈이 필요하다. 이를 통신 변환 모듈 통신 모듈이라 한다. 

블루투스 모듈(HC-06)

블루투스 모듈(HC-06)을 사용하여 무선통신을 가능하게 할 것이다. 

핀은 RXD, TXD, GND, VCC가 존재한다. 

 

아두이노에 다음과 같이 꽂아줄 수 있다. 

블루투스 RXD핀은 아두이노의 블루투스 TXD에 TXD핀은 아두이노의 RXD에 맞춰서 꽂아준다. 

보통 RXD핀과 TXD핀은 0과 1이 아닌 다른 핀을 사용하지만 여기서 사용한 아두이노는 0과 1번에 연결되어 통신하게 된다. 0과 1은 보통 pc와 시리얼 통신하기 때문에 블루투스 통신으로 잘 사용되지는 않는다. 블루투스 모듈을 0과 1번 핀에 사용하기 위해서는 pc와 아두이노 통신할 때는 잠시 빼두고 통신이 끝나면 연결해야 한다.

 

코드

void setup(){
    Serial.begin(9600);
    Serial.println("Start");
}
 
void loop(){
    //라즈베리 -> 아두이노 (데이터 받기)
    if(Serial.available()){ // 수신 버퍼에 수신된 데이터가 있는 경우
        Serial.write(Serial.read()); // 1바이트 수신한 데이터를 송신    
    }
}

간단하게 스마트폰에서 'Serial Bluetooth Terminal'을 다운로드하여 블루투스 테스트를 진행해볼 수 있다.

 

 

라즈베리파이 블루투스 통신

라즈베리파이 블루투스 설치

// 라즈베리파이 업데이트
Sudo apt-get update
Sudo apt-get upgrade
// 필요한 라이브러리 설치
Sudo apt-get install bluetooth blueman bluez
Sudo apt-get install python-bluetooth
// 재부팅
Sudo reboot

 

블루투스 페어링

sudo bluetoothctl
power on
scan on

HC-06 모듈이 나타난 것을 확인할 수 있다.

 

pair "MAC 주소" 

초기 블루투스 모듈의 비밀번호는 1234이다.

블루투스 연결을 할 수 있다.

 

VNC 아이콘 사용

[Add Device...] -> [HC-06] [Pair]으로 연결한다. 

PIN code를 입력하면 블루투스 연결이 완료된다. 

 

여기서 라즈베리파이가 이미 와이파이에 연결되어있다면 블루투스가 연결이 잘되지 않을 경우가 있다. 그럴 경우에는 장치를 제거하고 다시 해봐도 좋은 방법이다.

Bluetooth Devices에 들어가 Serial Port로 연결해주면 /dev/rfcomm0 시리얼 통신이 가능하다.

 

다음 글에는 라즈베리파이에서 node-red로 시리얼 통신 확인을 해본다. 

 

참고 - https://popcorn16.tistory.com/196

728x90

댓글