3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【解決】Raspberry Pi Pico W + MicroPython で BlynkLib.py を使った時のエラーに関する対処メモ

Last updated at Posted at 2024-06-09

本記事へのコメントで、「この記事に書いた問題に対応したライブラリをリリースした」というお知らせをいただきました。

その修正版のライブラリを使ってみたところ、安定版の最新バージョン「RPI_PICO_W-20240602-v1.23.0.uf2」でエラーが解消されたことを確認できました。

↓コメントのリンクをこちらに掲載しておきます
https://qiita.com/youtoy/items/ac1510b76b43936c33fb#comment-c6c6cf6381c6ef89f1cc

以下のポストをしていた時(Raspberry pi もくもく会というイベントに参加した時)に、そこで出くわしたエラーの対処法に関するメモです。

この時にやろうとしたことは、「Blynk というサービスを使って、スマホアプリ上のボタンを押すごとに、Raspberry Pi Pico W のボード上の LED の ON/OFF が切り替わる仕組みを実装する」というものでした。

以下が、それをうまく動かせた時の様子です。

この動画のようにうまくいく前に、軽くハマってしまいました...

問題が発生した状況

今回、Blynk の基本的な設定や、MicroPython + Raspberry Pi Pico W を使って開発する環境のセットアップ(※ 今回、Thonny を使いました)の詳細については省略します。

今回の話は、MicroPython で書いたプログラムを Raspberry Pi Pico W で動かせる状態になった後の話です。

またその際に、MicroPython + Raspberry Pi Pico W を使った開発で Blynk を利用するために、以下のライブラリを用いています。

●blynk-library-python/BlynkLib.py at master · vshymanskyy/blynk-library-python
 https://github.com/vshymanskyy/blynk-library-python/blob/master/BlynkLib.py

そして、スマホアプリ上のボタンを押すごとに、Raspberry Pi Pico W のボード上の LED の ON/OFF が切り替わる仕組みを実装したところ、以下のエラーが発生しました。

image.png

Connecting to blynk.cloud:443...
Traceback (most recent call last):
  File "<stdin>", line 37, in <module>
  File "/lib/BlynkLib.py", line 214, in __init__
  File "/lib/BlynkLib.py", line 81, in __init__
  File "/lib/BlynkLib.py", line 239, in connect
AttributeError: 'module' object has no attribute 'create_default_context'

処理の流れの中でエラーが発生した部分は、Raspberry Pi Pico W が Wi-Fi につながって、その後に Blynk用のサーバーに接続するところのようでした。

問題の解決方法

エラーが発生した後、いろいろ検証した結果、これを解決できた方法は「ファームウェアを少し古いバージョンにする」というものでした。

当初、公式ページの以下から「RPI_PICO_W-20240602-v1.23.0.uf2」をダウンロードして使ったのですが、その状況だと上記のエラーが発生していました。

●MicroPython - Raspberry Pi Documentation
 https://www.raspberrypi.com/documentation/microcontrollers/micropython.html
image.png

最終的に、以下のページにある 1つ前のバージョン = 「RPI_PICO_W-20240222-v1.22.2.uf2」を用いることで、以下のようにエラーが発生せず、無事に動作するようになりました。

●MicroPython - Python for microcontrollers
 https://micropython.org/download/RPI_PICO_W/

image.png

プログラム実行後、以下の画像の下のほうの「0」「1」という数字が出力される = スマホ側のボタン操作で指定した状態が「ON/OFF のどちらか」を示す値の出力が確認できる、という状態になりました。
そして、上で掲載した動画のように、Raspberry Pi Pico W のオンボードLED の ON/OFF をスマホから行えることも確認できました。

image.png

なお、1つ前のバージョンではなく、プレビューバージョンとなっていた「RPI_PICO_W-20240608-v1.24.0-preview.34.g5903ee561.uf2」も試したのですが、「RPI_PICO_W-20240602-v1.23.0.uf2」を用いた時と同じエラーが出ました。

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?