第5回:Raspberry Pi Pico WでWi-Fi接続

つぶやき

はじめに

IoT(Internet of Things)の世界では、「ネットに繋がるマイコン」が鍵を握ります。
従来の Raspberry Pi Pico(Wi-Fiなしモデル)は、GPIO操作やアナログ入力などに優れていましたが、ネット接続機能はありませんでした。そこに登場したRaspberry Pi Pico Wは、Wi-Fiチップを搭載したことで、マイコンが直接インターネットに繋がれるデバイスへと進化しました。

今回は、このPico Wの Wi-Fi 機能を“なぜ重要か”“何ができるか”から整理しつつ、接続準備・プログラム実装・最新注意点まで幅広く解説します。
初心者から中級者、IoTプロトタイプを作りたい方まで、手を動かしながら理解できる内容です。


Pico W の Wi-Fi 機能

ハードウェア仕様

  • Pico W は無印Picoと同じ SoC(RP2040)を搭載していますが、Infineon (旧 Cypress)製 CYW43439 Wi-Fi/Bluetoothチップ が追加されています。
  • このチップは 2.4 GHz IEEE 802.11 b/g/n Wi-Fi をサポートし、Bluetooth 5.2 もハード的には対応。
  • 重要なポイント:5 GHz 帯には対応しておらず、2.4 GHz のWi-Fi環境が必須です。

なぜ Wi-Fi搭載が重要か?

  • Wi-Fi接続により、マイコン単体で クラウド通信/メール送信/スマホ・PC連携/Webサーバ運用 が可能になります。
  • IoTデバイスとして、センサーのデータをクラウドに送り、遠隔監視・通知・自動制御に活用できるようになります。
  • Wi-Fi+マイコン=「インターネットと繋がる制御機器」、つまり従来の“単体制御マイコン”とは一線を画します。
  • この記事の後工程(例えば天気予報を送るシステムなど)へ進むための 基盤技術 として、Wi-Fi接続を理解することは必須です。

注意点

  • Bluetooth 5.2 対応という仕様があるものの、Pico W の MicroPython(記事執筆時点)では Bluetooth を使ったサンプルが少なく、Wi-Fi利用が主流です。
  • Wi-Fi環境として、2.4 GHz 帯は他の機器との混雑が起きやすく、電波干渉や接続失敗の原因になりやすいため、接続場所やルーター設定の確認が重要です。

接続準備と環境設定

必要なもの

  • Raspberry Pi Pico W 本体
  • MicroUSB ケーブル(データ+電源)
  • Wi-Fi環境(2.4 GHz 帯)
  • Wi-Fi の SSID(ネットワーク名)・パスワード
  • 開発ソフト: Thonny IDE(MicroPython用)
  • (推奨) secrets.py など機密情報を分離するファイル

セキュリティ対策

  • SSID・パスワード・メール設定など、機密情報をソースコード中にハードコードしないこと。別ファイル(例:secrets.py)にまとめ、バージョン管理で漏洩対策をしましょう。
  • Wi-Fi設定を変更した場合や共有ネットワーク環境では、Pico W を 独立した VLAN/ゲストネットワーク に接続することも検討すべきです(IoT機器としてセキュリティ重要)
  • 開発時にはファームウェアを最新バージョンに更新しておくと、Wi-Fi接続不具合を未然に防げる場合があります。フォーラムでも接続失敗報告があります。

Thonny IDE で secrets.py を作る手順

  1. Thonny を起動し、「ファイル」→「新規」
  2. 以下を入力: # secrets.py SSID = "your_wifi_name" PASSWORD = "your_wifi_password"
  3. 「名前を付けて保存」で、保存先:Raspberry Pi Pico W 本体、ファイル名:secrets.py
  4. これにより、他のスクリプトから import secrets で読み込めるようになります。
# secrets.py

SSID = "your_wifi_name"
PASSWORD = "your_wifi_password"

network モジュールと接続コードの基礎

network モジュール概要

MicroPython には network モジュールがあり、Pico W の Wi-Fi 接続を制御できます。主なインターフェースは:

  • STA (Station) モード:家庭用ルーターなどに接続してインターネットアクセスを得る標準的なモード。
  • AP (Access Point) モード:Pico W 自体が Wi-Fi アクセスポイントになり、スマホ等が直接接続できるモード。

本記事では STA モードを使用します。

サンプルコード – STAモード接続

import network
import time
import secrets  # SSIDとパスワードを保存したファイル

# Wi-Fi接続処理
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(secrets.SSID, secrets.PASSWORD)

print("Wi-Fi接続中...")

# 接続完了待ち
max_wait = 10
while max_wait > 0:
    if wlan.isconnected():
        break
    print("接続待ち...")
    time.sleep(1)
    max_wait -= 1

# 接続結果確認
if wlan.isconnected():
    print("接続成功!")
    print("IPアドレス:", wlan.ifconfig())
else:
    print("接続失敗...")

解説&ポイント

  • network.STA_IF を使って STA モードのインターフェースを作成。
  • wlan.active(True) で Wi-Fiインターフェースを有効化。
  • wlan.connect により指定SSID・パスワードで接続。
  • wlan.isconnected() を使って接続完了を確認。
  • wlan.ifconfig() で IPアドレス・サブネット・ゲートウェイ・DNSサーバが確認できます。
  • 接続失敗やタイムアウトが起きることもあり、再試行やログ出力を入れておくと運用が楽になります。

より深掘り:応用・運用面での工夫

安定接続と再接続処理

  • IoT機器として長時間稼働させる場合、電源断・ルーター再起動・環境変化時に備えて、接続断時の自動再接続機能を実装しておくと安心です。
  • wlan.connect() の後に while not wlan.isconnected(): … というループだけでなく、「一定時間接続できなかったら再試行」や「LEDで接続状態を表示」などを追加すると運用性が上がります。
  • Wi-Fi環境では、2.4 GHz帯の混雑・電波干渉が起きやすいため、ルーターのチャネル設定(例:1・6・11)やアンテナ位置の工夫も有効です。

固定IPとDNS設定

  • 多数台運用やクラウド送信を行う場合、動的割り当て (DHCP) ではなく 固定IPアドレスを割り当てる設計にすることもあります。
  • MicroPython では wlan.ifconfig((ip, subnet, gateway, dns)) として手動設定可能。公式ドキュメントにも固定IP設定例があります。

セキュリティの最新注意点

  • Pico W の Wi-Fiチップは 2.4 GHz のみ対応であり、最新ルーターの 5 GHz 帯/Wi-Fi 6 (802.11ax) 等には対応していません。
  • Wi-Fiパスワードが流出すると、IoT機器がネットワーク侵入の入口となる可能性があるため、SSID・パスワード管理・ファームウェア更新などのセキュリティ運用も忘れないようにしましょう。

実践手順:接続〜活用までの流れ

  1. Pico W を PC に接続し、Thonny IDE などで MicroPython ファームウェアがインストールされていることを確認。
  2. secrets.py に SSID・パスワードを記入し、Pico本体に保存。
  3. 上述の Wi-Fi接続サンプルコードを main.py として保存・実行し、IPアドレス取得ができるか確認。
  4. 接続成功を確認した後、次のステップ(HTTP/HTTPSリクエスト、API通信、クラウド送信、メール送信など)に進む。
  5. 運用時には「電源断・再起動・Wi-Fi切断」などのケースを想定し、自動復旧ロジック・接続監視・ログ出力を組み込みましょう。
  6. 長期運用するなら、固定IP制御/セキュリティ更新/ネットワーク分離(VLAN)なども検討対象です。

まとめ

  • Raspberry Pi Pico W は、Wi-Fi機能を搭載した非常にコストパフォーマンスの高い IoT プラットフォームです。
  • Wi-Fi(2.4 GHz帯)を用いることで、マイコン自身がネットワーク通信・クラウド連携・遠隔制御の舞台に立てます。
  • 接続準備・コード実装・運用設計(特に Wi-Fi環境・セキュリティ・再接続)を事前に押さえておくことで、失敗リスクを減らせます。
  • 今回の Wi-Fi接続を理解すれば、次段階の「天気予報を自動メール送信」「MQTTによるクラウドセンサー送信」「スマホ連携」などへの展開が容易になります。
  • ぜひ、Pico W を使って「IoTデバイスがインターネットと繋がる世界」を体験してみてください。

参考URL

https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf

Raspberry Pi Pico W: Getting Started with Wi-Fi (MicroPython) | Random Nerd Tutorials
Introduction to Wi-Fi on the Raspberry Pi Pico W using MicroPython. Set it as a Wi-Fi station and Access Point (AP), sca...
Just a moment...

コメント