Embedded/Raspberry Pi Pico

Raspberry Pi Pico W에서 BLE(Beacon) 작동 확인하기

변화의 물결1 2024. 10. 23. 00:05

 

 

 

안녕하세요.

 

 이전 글에서 아두이노로 Beacon 만드는 것을 확인해 보았습니다. 정상적인 UUID와 데이터 형태를 사용한 것은 아니지만, BLE를 사용해서 광고 가능한 것을 확인해 보았습니다.

 

 

 

Arduino Nano iot 33를 이용한 센서 데이터 전송 Beacon 만들어 보기

안녕하세요.  Arduino Nano iot 33을 가지고 Beacon과 유사한 하게 작동하는 것을 테스트해 보았습니다.그런데, 타업체 BLE 스캐너(BLE to WiFi(MQTT)) 제품이 있는데, UUID를 자체를 센서데이터로 보내는 것

remnant24c1.tistory.com

 

 

 

 이번에는 Raspberry Pico W를 이용해서 가능한지 테스트해 보았습니다. 관련해서 몇 가지 예제로 된 것들 중 하나를 선택해서 테스트했습니다.

 

 


 

1. 테스트 환경

 

 - Raspberry Pi Pico W (ver 2022)

 - MicroPython v1.21.0 on 2023-10-06

 - thonny 4.1.6

 - Window 10

 - nRF Connect android app

 

 

2. 테스트 소스코드 실행방법

 

 먼저 Pico W의 MicroPython 펌웨어를 최소 v1.21.0으로 업그레이드합니다.

 하단 <참고 사이트>에서 첫 번째 링크를 통해 소스코드를 확인합니다. Thonny를 실행해서 새 파일을 두 개 만들어서 내용을 복사해서 사용해도 되고, 아래와 같이 Download raw file을 눌러 다운로드해서 테스트해도 됩니다.

 

 

 

 다운로드한다면 picow_ble_temp_sensor.py, ble_advertising.py을 다운로드하면 됩니다.

ble_advertising.py 파일을 먼저 Pico W에 업로드합니다. picow_ble_temp_sensor.py 파일은 Pico W에 같이 저장해도 되지만 그냥 불러와서 이런저런 것을 바꿔 보면서 실행해도 됩니다.

 

 

 

3. 동작 확인

 

 picow_ble_temp_sensor.py를 실행한 후, Shell 창을 보면 Pico 내부의 칩 온도를 ADC로 변환해서 온도를 출력해 줍니다.  demo() 함수에서는 LED를 1초마다 깜박이며 10초마다 한 번씩 온도데이터를 BLE로 송신합니다.

 

 

 

 nRF App에서 Scan 하면 Pico+맥주소가 나타나고 이것을 Connect 하면 Temperature 항목에  온도가 나오는 것을 알 수 있습니다.

 

 

 

4. no module named 'bluetooth' 에러 발생 시

 

 Pico W에 다른 펌웨어를 올려서 테스트하다가 MicroPython 1.21.0, 1.22.0로 업그레이드를 해도 bluetooth 라이브러리를 임포트 할 수 없다고 나왔습니다.

 

 이 문제 해결책이 것이라고 할 수 없지만, 이번에 해결했던 방법은 Flash를 flash_nuke.uf2 파일로 삭제하고 다시 1.21.0.uf2 버전으로 다시 업로드하면 문제없이 실행되었습니다.

 

 

Traceback (most recent call last):

File "<stdin>", line 3, in <module>

ImportError: no module named 'bluetooth'

 

 

 그런데 이상하게도 현재 시점에서  v1.23.0 (2024-06-02).uf2, v1.24.0-x.uf2 버전으로 업그레이드하면 Thonny에서 인식되지 않아 실행할 수가 없었습니다.

 

 

감사합니다.

 

 

 

<참고 사이트>

1. pico-micropython-examples/bluetooth

https://github.com/raspberrypi/pico-micropython-examples/tree/master/bluetooth

2. Getting to grips with Bluetooth on Pico W

https://www.raspberrypi.com/news/getting-to-grips-with-bluetooth-on-pico-w/

3. Raspberry Pi Pico W Bluetooth(BLE) using MicroPython | Point-to-Point

https://electrocredible.com/raspberry-pi-pico-w-bluetooth-ble-micropython/#Send_Data_from_Raspberry_Pi_Pico_to_Android_App_Using_BLE

4. MicroPython Download

https://micropython.org/download/RPI_PICO_W/

5. Everything about Bluetooth on the Raspberry Pi Pico W

https://picockpit.com/raspberry-pi/everything-about-bluetooth-on-the-raspberry-pi-pico-w/  

 

 

반응형