2022년 라즈베리 파이 재단에서 출시한 호평받는 사물 인터넷(IoT) 개발 보드인 라즈베리 파이 Pico W는 다양한 기능으로 제작자들로부터 큰 관심을 받고 있습니다. 최근 릴리스된 C SDK 버전 1.5.1과 최신 마이크로파이썬 빌드를 통해 라즈베리 파이 Pico W 및 WH 보드에서 블루투스 연결을 설정하는 프로세스가 간소화되었습니다.

이 보드를 활용하면 블루투스를 통해 데이터를 열람하고 배포할 수 있어 사물 인터넷(IoT)과 관련하여 다양한 가능성을 제시할 수 있습니다. 또한, 이 기능은 라즈베리 파이 파이 피코 W에서 센서 정보를 무선으로 읽기 위해 제공된 지침을 준수하여 소프트웨어 수정만으로 달성할 수 있습니다.

라즈베리 파이 피코 W/WH 및 블루투스

라즈베리 파이 피코 W는 선구적인 라즈베리 파이 피코 설계의 뛰어난 품질을 구현하는 동시에 Wi-Fi 및 블루투스 연결을 모두 통합하여 무선 통신 기능을 추가로 통합한 소형 마이크로 컨트롤러 보드입니다. 이 혁신적인 장치는 전작과 동일한 물리적 크기와 레이아웃을 유지하여 기존 Raspberry Pi Pico 확장 보드와의 완벽한 호환성을 유지합니다. 트윈 20핀 GPIO 헤더는 변경되지 않은 상태로 유지되어 사용자가 Raspberry Pi Pico 시리즈에서 기대할 수 있는 포괄적인 범용 입력/출력 핀에 대한 액세스를 저하 없이 제공합니다.

Pico W는 802.11n Wi-Fi 및 Bluetooth 5.2를 모두 지원하는 통합 Infineon CYW43439 무선 칩 세트가 내장되어 있습니다.

최신 Pico C/C++ SDK 설치

Pico C/C++ 소프트웨어 개발 키트(SDK)는 C 및 C++ 프로그래밍 언어를 사용하는 라즈베리 파이 Pico 마이크로 컨트롤러용 애플리케이션 개발을 위한 전문 툴세트입니다. 이 포괄적인 패키지에는 개발 프로세스를 간소화하고 Pico 보드에서 강력한 애플리케이션을 쉽게 만들 수 있도록 설계된 라이브러리, 리소스 및 도구 모음이 포함되어 있습니다.

Pico C/C++ SDK로 작업하려면 다음 프로그램이 필요합니다:

Arm GCC 컴파일러는 Pico 마이크로 컨트롤러에서 사용할 수 있도록 C 또는 C++ 프로그래밍 언어로 작성된 코드를 컴파일하고 빌드하는 프로세스를 용이하게 하는 도구입니다.

CMake는 다양한 플랫폼에서 다양한 프로젝트를 빌드하기 위해 빌드 프로세스를 감독하고 프로젝트 파일을 생성하는 데 사용되는 플랫폼에 구애받지 않는 다용도 도구입니다.

이 글도 확인해 보세요:  새로운 아두이노 우노 R4가 메이커의 판도를 바꾸는 이유

Visual Studio 2019에 탑재된 유틸리티는 소프트웨어 개발을 위한 통합 플랫폼(IDE)으로 사용하려는 경우 필수입니다.

널리 사용되는 고급 프로그래밍 언어인 Python은 특정 Pico SDK 도구에 필요합니다. 따라서 시스템에 버전 3.9 이상이 설치되어 있는지 확인하십시오.

Git은 소스 코드의 수정 사항을 효율적으로 관리하여 개발자 간의 협업을 촉진하고 시간 경과에 따른 변경 사항을 추적할 수 있는 강력한 도구입니다.

Visual Studio Code는 높은 평가를 받고 있는 코드 편집기로, 기본 구문 강조 표시, 코드 자동 완성 및 디버깅 기능과 같은 다양한 유용한 기능을 제공하여 Pico SDK와의 뛰어난 호환성을 자랑합니다.

마이크로파이썬 설치

Pico W 프로그래밍을 위한 또 다른 옵션은 마이크로파이썬을 활용하는 것이며, 다음 예제에서 이를 시연할 것입니다. 설치 및 사용을 진행하려면 다음 지침을 참조하십시오.

UF2 펌웨어 플래싱

Pico W 보드를 부트로더 모드로 시작하려면 두 가지 방법을 사용할 수 있습니다. 첫 번째는 MicroPython REPL에서 “machine.bootloader()” 명령을 입력하는 것입니다. 또는 USB를 통해 컴퓨터에 보드를 연결한 상태에서 Pico의 BOOTSEL 버튼을 누른 상태로 유지할 수도 있습니다.

Pico를 부트로더 모드로 설정하면 컴퓨터에서 USB 대용량 저장 장치에 액세스할 수 있는 것이 관찰됩니다.

업데이트된 펌웨어 파일(UF2)이 포함된 USB 대용량 저장 장치를 기기의 지정된 포트에 삽입하십시오.

UF2 파일은 마이크로파이썬 다운로드 페이지 에서 다운로드할 수 있으며, 블루투스 지원 업데이트에 대해 자세히 알아보려면 릴리즈 노트 을 참조하세요.

펌웨어를 업데이트하는 동안 Pico 보드의 LED 표시등이 빠르게 깜박이는 패턴을 나타냅니다. 그 후 장치는 자동으로 재부팅되고 기본 상태로 돌아가 추후 활용을 위해 준비됩니다.

다음 단계에 따라 Thonny 통합 개발 환경(IDE)을 통해 Pico 장치의 펌웨어를 업그레이드할 수 있습니다:

Thonny IDE 사용

연결을 설정하기 전에 부트셀 버튼을 눌러 부트 로더 모드에 있는지 확인하면서 USB 인터페이스를 통해 Pico 장치를 컴퓨터에 연결하십시오.

컴퓨팅 장치에서 Thonny IDE를 실행하면 아래 그림과 같이 편집기 창이 있는 인터페이스가 표시됩니다.

이 글도 확인해 보세요:  블루투스 클래식과 블루투스 LE 비교: 오디오 스트리밍에 가장 적합한 것은?

Thonny 애플리케이션에서 MicroPython이 사용하는 현재 인터프리터를 교체하세요. 교체하려면 메뉴에서 도구 > 옵션으로 이동하세요.

옵션 창의 드롭다운 메뉴에서 사용 중인 플랫폼에 적합한 인터프리터를 선택해 주세요. 특히, 사용 가능한 옵션 목록에서 마이크로파이썬(라즈베리 파이 피코)을 선택하여 인터프리터로 선택하세요.

보드 유형을 자동으로 감지하도록 포트를 설정한 다음 아래에 있는 설치 링크를 클릭합니다. 그러면 새 설치 창이 열리고 통합 개발 환경(IDE)에 설치에 필요한 최신 펌웨어 버전과 함께 보드에 대한 필수 세부 정보가 채워집니다. 설치가 완료되면 닫기 버튼을 클릭한 다음 확인을 선택하여 계속 진행합니다.

필요한 블루투스 모듈 저장

라즈베리 파이 파이에서 블루투스 저에너지 통신을 용이하게 하려면 두 개의 마이크로파이썬 모듈을 다운로드하여 설치해야 합니다. 이 프로세스는 Thonny와 같은 통합 개발 환경(IDE) 또는 uPyCraft를 포함하되 이에 국한되지 않는 기타 적절한 대안을 사용하여 수행할 수 있습니다.

GitHub 리포지토리에서 “ble\_advertising.py”로 식별되는 초기 유틸리티 스크립트를 검색해 주세요. 이 소프트웨어 구성 요소는 페이로드 데이터를 쉽게 생성하고 관련 엔드포인트로 전송할 수 있도록 설계되었습니다.

코드를 받으면 토니 IDE 내에서 비어 있는 작업 공간으로 이동하여 해당 구현을 복제하세요. 그런 다음 앞서 설명한 파일 저장 절차(“파일” > “다른 이름으로 저장”을 클릭한 다음 “라즈베리 파이 파이코”를 선택)를 사용하여 스크립트를 저장할 새 폴더를 생성합니다. 결과 문서의 제목은 “ble\_advertising.py”가 됩니다.

토니에서 새 파일을 생성한 후, 해당 코드를 깃허브 리포지토리의 ble\_simple\_peripheral.py 파일에 복사하세요.

파이를 사용하여 블루투스 LE를 통해 데이터 읽기

새 파일 생성을 진행하기 전에 필요한 모듈을 Pico W 보드에 로드한 다음 아래 제공된 코드를 새로 생성된 문서에 붙여넣으세요.

 from machine import Pin, ADC
import bluetooth
from ble_simple_peripheral import BLESimplePeripheral

# Create a Bluetooth Low Energy (BLE) object
ble = bluetooth.BLE()

# Create an instance of the BLESimplePeripheral class with the BLE object
sp = BLESimplePeripheral(ble)
adc = ADC(4)

while True:
    if sp.is_connected(): # Check if a BLE connection is established
        # Read the value from the internal temperature sensor
        temperature = adc.read_u16() * 3.3 / (65535 * 0.8)

        # Transmit the temperature value over BLE
        temperature_data = str(temperature).encode()
        sp.send(temperature_data)
    time.sleep(1)

앞서 언급한 코드는 Pico에 내장된 온도 센서에서 데이터를 추출하여 블루투스 기술을 통해 무선으로 전송하도록 설계되었습니다. main.py라는 이름의 이 파일은 Thonny 내에서 실행되기 전에 Pico W 보드에 저장해야 합니다.실행 시 사용자는 셸 인터페이스에 “광고 시작 중”이라는 메시지가 표시되는 것을 확인해야 합니다.

이 글도 확인해 보세요:  10가지 창의적인 DIY 어버이날 선물

안드로이드 앱 구성하기

안드로이드 스마트폰을 소유한 개인은 구글 플레이 스토어에서 “시리얼 블루투스 터미널” 애플리케이션을 기기에 다운로드할 수 있습니다.

다운로드: 직렬 블루투스 터미널 (무료, 인앱 구매 가능)

모바일 장치에서 블루투스 기능을 활성화한 다음 애플리케이션을 시작하세요. 그런 다음 애플리케이션 내의 장치 섹션으로 이동합니다.

관련 섹션에서 “스캔”을 클릭하여 사용 가능한 옵션을 사용하여 블루투스 저에너지(BLE) 장치를 스캔하세요.

사용 가능한 블루투스 장치를 스캔하면 결과 목록에 “mpy-uart”라는 명칭의 장치가 표시됩니다. 장치와 Pico W를 연결하려면 이 항목을 클릭하기만 하면 됩니다.

두 장치 간에 통신이 설정되면 애플리케이션의 터미널 보기에 “연결됨”이라는 메시지가 표시됩니다.

온도 센서의 판독값은 앞서 설명한 그림과 같이 애플리케이션의 명령줄 인터페이스에 실시간으로 표시될 것으로 예상됩니다.

블루투스를 통해 두 대의 Pico Whatevers를 연결하려면 한 대는 중앙 장치로, 다른 한 대는 주변 장치로 작동해야 합니다. 이 구성을 설정하려면 중앙 장치로 작동할 Pico Wafe에 올씽스 엔 GitHub 저장소의 “ble\_simple\_central.py”라는 도우미 모듈을 로드해야 합니다.

Pico W 경험 향상

블루투스 기술의 통합으로 센서 판독값을 원활하게 수집할 수 있어 사물 인터넷(IoT) 프로젝트에 새로운 길을 열어주고 라즈베리 파이 Pico W를 활용할 때 향상된 사용자 경험에 기여할 수 있습니다.

By 박준영

업계에서 7년간 경력을 쌓은 숙련된 iOS 개발자인 박준영님은 원활하고 매끄러운 사용자 경험을 만드는 데 전념하고 있습니다. 애플(Apple) 생태계에 능숙한 준영님은 획기적인 솔루션을 통해 지속적으로 기술 혁신의 한계를 뛰어넘고 있습니다. 소프트웨어 엔지니어링에 대한 탄탄한 지식과 세심한 접근 방식은 독자에게 실용적이면서도 세련된 콘텐츠를 제공하는 데 기여합니다.