スイッチ・サイエンスやケイエスワイなどで、無線LANを搭載した Raspberry Pi Pico W の販売が開始されたので、さっそく入手してワイヤレス実験を行ってみました。
目次
技適マーク
下の写真は、スイッチ・サイエンスで購入した Raspberry Pi Pico です。国内の電波法に適合する工事設計認証の番号が印刷されたシール(通称=技適マーク)が貼られていました。

ファームウェアの書き込み
はじめに、ファームウェアを書き込みます。
- Raspberry Pi Pico 基板上の BOOTSEL ボタンを押しながら PCのUSBに接続します。
- Thonny Python IDE を起動し、ウィンドウ右下のセレクタから「Install MicroPython」を選択します。
- MicroPython Variant で「 Raspberry Pi・Pico W / Pico WH 」を選択します。
- Install ボタンでインストールを開始します。

Thonny Python IDE を起動する


今回は、20230331-unstable-v1.19.1 にて動作確認を行いました。まだ Pico W に対応した安定版(stable)はリリースされていないようです。
サンプル・プログラム集
筆者が Raspberry Pi Pico W 用に作成したサンプル・プログラム集は下記に保存しました。
GitHub Pages:
https://git.bokunimo.com/pico/
GutHub:
https://github.com/bokunimowakaru/pico/tree/master/examples
μIoT 温度計 example03_temp_udp.py
温度値を10秒おきにUDPで送信するサンプル・プログラムです。Raspberry Pi Pico の RP2040 マイコン内の温度センサを使用するので、外付け部品無しで動作します。
プログラム example03_temp_udp.py:
https://github.com/bokunimowakaru/pico/blob/master/examples/example03_temp_udp.py

μIoT 温湿度計 example04_hum_udp.py
温湿度センサ AE-SHT31 (秋月電子通商)を接続し、温度と湿度を10秒おきにUDPで送信します。
プログラム example04_hum_udp.py:
https://github.com/bokunimowakaru/pico/blob/master/examples/example04_hum_udp.py
センサ:
https://akizukidenshi.com/catalog/g/gK-12125/

μIoT LCD example05_lcd_udp.py
前述の μIoT 温度計 や μIoT 温湿度計 のセンサ値をUDPで受信してLCDへ表示します。
プログラム example05_lcd_udp.py:
https://github.com/bokunimowakaru/pico/blob/master/examples/example05_lcd_udp.py
LCD:
https://akizukidenshi.com/catalog/g/gM-09109/

Ping送信機能つきμIoT LCD example05_lcd_udp_pg.py
無線アクセスポイントによっては、一方向のUDP通信のパケットを破棄してしまうことがあります。末尾に_pgを付与した example05_lcd_udp_pg.py は、Pingを送信することで、無線アクセスポイントに双方向の通信の存在を知らせます。
また、下図は、右上の μIoT 温度計 が送信する温度センサ値を、左側の μIoT LCD で受信した時のようすです。2023年4月9日に2台目の Pico W を入手して撮影しました。

μIoT 温度計 for Ambient example06_temp_ambi.py
アンビエントデータ社が運営するIoTセンサ用のクラウド・サービス Ambient (https://ambidata.io/) に温度センサ値を送信します。マイコン内の温度センサを使用するので、外付けセンサは不要です。

関連書籍
本稿の基となる MicroPython 用プログラムは、Pythonで作るIoTシステム プログラム・サンプル集 (CQ出版社)の第8章~第9章で解説しています。ただし、執筆時点で発売されていなかったRaspberry Pi Pico W については書かれていません。
Pythonで作るIoTシステム プログラム・サンプル集
https://www.amazon.co.jp/dp/4789859894
第8章 STM32マイコン用 MicroPythonプログラム
第9章 ラズベリー・パイ Pico で BLEワイヤレス・センサを作る
by bokunimo.net