4주차_블루투스 통신 - sookite22/SmartDivice_24 GitHub Wiki

목차

  • 네트워크(Network)
    • PAN
    • LAN
  • 블루투스(Bluetooth)
    • 블루투스란?
    • 클래식 블루투스
    • BLE(Bluetooth Low Energy)
  • 실습
    • 클래식 블루투스 방식
      • 블루투스 클래식 방식으로 스마트폰과 통신
    • BLE 방식
      • RGB 모듈 제어
      • BLE 통신으로 RGB 제어
  • 후기

1. 네트워크(Network)

1.1. PAN(Personal Area Network)

개인 영역 네트워크(PAN) 는 비교적 작은 영역 내에서 기기들 간 통신을 가능하게 하는 네트워크를 말하며, 일상적으로 사용되는 기기들 간 연결을 위해 사용된다. 예를 들어, 스마트폰과 블루투스 헤드셋 간의 연결이나 스마트 워치와 스마트폰 간의 연결이 이에 속한다. 이처럼 주로 개인이나 개별 작업 그룹 내에서 사용된다. 대표적인 PAN 기술로는 Bluetooth 가 속해있다.

1.2. LAN(Local Area Network)

지역 영역 네트워크(LAN) 는 상대적으로 작은 지리적 영역(건물, 사무실 등) 에서 네트워크 장치들이 서로 통신할 수 있는 네트워크를 말한다. 일반적으로 이더넷 케이블, Wi-Fi, 기타 유선 혹은 무선 기술을 사용하여 구축되며, 가정용 네트워크, 기업 네트워크, 학교 네트워크 등 다양한 환경에서 사용된다. 고속의 데이터 전송을 지원하며, 인터넷 접속을 위한 라우터와 같은 장비가 포함될 수 있다.

  • PAN과 LAN 외에도 더 넓은 개념의 네트워크들이 존재한다. img

2. 블루투스(Bluetooth)

2.1. 블루투스란?

블루투스는 무선 통신 기술 중 하나로, 짧은 거리에서 데이터를 주고받을 수 있게 해주는 기술을 말한다. 블루투스는 주파수 허브 기술을 기반으로 하며, 전자기파 를 이용하여 데이터를 전송한다. 블루투스 장치는 대부분 2.4GHz 주파수 대역을 사용하며, 일반적으로 10m 정도의 짧은 거리에서 작동한다. 무선으로 페어링된 장치들 간에 데이터를 안정적으로 전송하거나 연결 가능하게 하며, 전력 소비가 비교적 낮아 휴대용 장치에서도 많이 사용된다. 주로 휴대전화, 스마트폰, 노트북, 태블릿, 헤드셋, 스피커, 마우스, 키보드 등과 같은 다양한 전자 기기들 간에 데이터를 전송하거나 연결하는 데 사용된다.

  • 블루투스 통신에는 두 가지의 주요 방식이 존재한다. 스크린샷 2024-04-02 121122

2.2. 클래식 블루투스

블루투스 표준의 초기 버전으로, 비교적 더 많은 전력을 소비하지만 높은 데이터 전송 속도넓은 연결 거리 를 제공한다. 이러한 특성으로 인해 주로 데이터를 빠르게 전송해야 하는 많은 응용 프로그램에 사용될 수 있다. 그러나 더 큰 전력 소비로 인해 배터리 수명이 더 짧을 수 있다.

스마트폰, 노트북, 태블릿과 같은 장치들 간 파일 전송, 음악 스트리밍, 키보드와 마우스 연결 등의 작업에 사용된다.

2.3. BLE(Bluetooth Low Energy)

작은 전력 소비 와 단순한 데이터 전송을 위해 고안된 무선 통신 기술이다. 전통적인 블루투스와 비교하였을 때 전력 소모가 적으며, 주로 작은 패킷의 주고받기에 특화되어 있다. 이러한 특성으로 인해 배터리 수명이 중요한 장치나 센서 네트워크와 같은 분야에서 널리 사용되고 있다.

스마트 홈 장치, 웨어러블 기기, 센서 네트워크, 건강 모니터링 장치 등의 분야에서 활용된다.

3. 실습

3.1. 클래식 블루투스 방식

3.1.1. 클래식 블루투스 방식으로 스마트폰과 통신

코드 작성

  • File > Examples > BluetoothSerial > SerialToSerialBT

스크린샷 2024-04-01 230030

스크린샷 2024-03-27 161308

스마트폰과 연결

1단계

Serial Bluetooth Terminal 앱을 설치한다.

KakaoTalk_20240401_231408886_02

2단계

자신이 설정한 이름의 디바이스를 블루투스로 연결한다. KakaoTalk_20240401_230803395

3단계

설치한 앱에서 찾아 연결한다. KakaoTalk_20240401_231408886

4단계

클릭 후 메세지를 입력한다. KakaoTalk_20240401_231408886_01

결과 확인

  • Tools > Serial Monitor

스크린샷 2024-04-01 230433

  • 시리얼 모니터 를 통해 통신 결과를 확인할 수 있다.

스크린샷 2024-04-01 231125

  • 그러나 시리얼 모니터에 출력값이 깨지는 오류가 나타났다.

오류 해결

_시리얼 통신 설정_을 다시 확인해보았다. 시리얼 모니터와 ESP32 간 시리얼 통신 속도 가 일치하지 않는 경우 데이터가 손실되거나 왜곡될 수 있기 때문이다.

스크린샷 2024-04-01 232902 왼쪽 하단 시리얼 통신 속도를 115200baud로 바꿔주었다.

스크린샷 2024-04-01 233152

  • 출력에 성공하였다.

3.2. BLE 방식

3.2.1. RGB 모듈 제어

보드 연결

스크린샷 2024-03-27 160032

코드 작성

스크린샷 2024-03-27 161013

Red LED - analogWrite(RED_PIN, 0); 으로 설정

Green LED - analogWrite(GREEN_PIN, 0); 으로 설정

Blue LED - analogWrite(BLUE_PIN, 0); 으로 설정

White LED - 모든 핀을 0으로 설정

  • 각 색상 핀을 0으로 설정하면 해당 색상이 켜지고, 255로 설정하면 해당 색상이 꺼진다. 즉 캐소드 타입의 LED와 반대로 PWM값 을 설정하여 제어해야 한다.

결과 확인

KakaoTalk_20240401_164442950

3.2.2. BLE 통신으로 RGB 제어

코드 작성

  • UUID(Universally Unique Identifier): 고유한 식별자 를 나타낸다. https://www.uuidgenerator.net/ 에서 새로운 UUID를 생성하여 사용한다. 스크린샷 2024-04-02 003124

헤더 파일과 핀 번호를 추가로 정의해주었다.

스크린샷 2024-04-02 010713 스크린샷 2024-04-02 010744 스크린샷 2024-04-02 010824

스마트폰과 연결

nRF Connect for Mobile 앱을 설치한다. KakaoTalk_20240401_234601061

앱에서 RGB LED Control 을 연결한다. KakaoTalk_20240402_003801903 KakaoTalk_20240402_003801903_01 KakaoTalk_20240402_003801903_05 KakaoTalk_20240402_003801903_04

결과 확인

KakaoTalk_20240402_005738052

  • 빨간색 불빛을 확인할 수 있다.

4. 후기

블루투스라는 기술은 현재 일상생활에서 매우 가까이에 있으며 자주 쓰이는 기술 중 하나이다. 그러나 블루투스에도 어디에 어떻게 쓰이느냐에 따라 종류가 달라진다는 것은 모르고 있었다. 이번 강의에서 클래식 블루투스와 BLE의 차이점을 확실히 알게되었고, 추후에도 이 점을 고려하여 블루투스를 사용하거나 개발할 수 있을 것이다. 블루투스는 헤드셋에서 시작된 기술이라는 것에도 흥미가 갔다. 현재는 헤드셋 뿐만 아니라 수많은 블루투스 이어폰들이 존재하는데 실생활을 매우 편리하게 해주는 감사한 기술이라고 생각된다.