안녕하세요.
이전 글에서 아두이노로 Beacon 만드는 것을 확인해 보았습니다. 정상적인 UUID와 데이터 형태를 사용한 것은 아니지만, BLE를 사용해서 광고 가능한 것을 확인해 보았습니다.
이번에는 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
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/
'Embedded > Raspberry Pi Pico' 카테고리의 다른 글
Raspberry Pi Pico와 기울기 센서(SZH-EK084)로 간단한 기울기 테스트하기 (0) | 2024.10.27 |
---|---|
Raspberry Pi Pico(라즈베리파이 피코) W5100S-EVB-PICO 테스트하기(C/C++ 버전) (0) | 2024.08.15 |
Raspberry Pi Pico(라즈베리파이 피코) 간단하게 C/C++ SDK 설치 및 빌드해보기 (0) | 2024.08.13 |
Raspberry Pi Pico + dht11를 이용한 온도 습도 테스트와 1 wire 통신 소스 분석 (0) | 2024.08.10 |
Raspberry Pi Pico 내부 온도 센서 값 읽기 (0) | 2024.08.09 |