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

つぶやき

Raspberry Pi Pico W には、無印Picoにはない Wi-Fiチップ(CYW43439) が搭載されています。
これにより、IoTデバイスとしてインターネットやLANに直接接続できるようになります。
センサーのデータをクラウドに送ったり、メール通知をしたり、スマホから制御する仕組みが作れるのです。

1. Pico WのWi-Fi機能

  • Pico Wだけの特徴:CYW43439 Wi-Fiチップ搭載
  • できること
    • IoTデバイスとしてインターネット接続
    • データのクラウド送信
    • メール通知
    • スマホ・PCからの遠隔制御

2. 接続準備

  • 必須:
    • Raspberry Pi Pico W
    • Wi-Fi環境(2.4GHz帯のみ対応、5GHzは不可)
    • SSID・パスワード
  • セキュリティ対策
    • secrets.py にまとめて管理(SSID・パスワード)
    • Thonny IDE を使うと簡単に保存可能

3. Thonny IDEでの secrets.py 作成方法

  1. Thonnyを起動し、左上の 「ファイル」→「新規」 を選択
  2. 次の内容を入力:
# secrets.py

SSID = "your_wifi_name"
PASSWORD = "your_wifi_password"
  1. 保存先をPico W本体に設定
    • 「ファイル」→「名前を付けて保存」
    • 保存先:Raspberry Pi Pico
    • ファイル名:secrets.py
  2. 保存すると Pico W 内にファイルが作られ、他のプログラムから import secrets で読み込める

💡 ポイント:

  • SSID・パスワードは必ず secrets.py にまとめる
  • GitHubなどにアップロードする際も情報漏洩を防げる

4. networkモジュール

MicroPython には network というWi-Fi制御用モジュールがあります。

  • STA(Station)モード → 家庭用Wi-Fiルーターに接続する(一般的な使い方)
  • AP(Access Point)モード → Pico WがWi-Fiルーター代わりになる(スマホと直結)

ここではSTAモードを使います。


5. サンプルコード(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("接続失敗...")

6. 実行結果例

Wi-Fi接続中...
接続待ち...
接続成功!
IPアドレス: ('192.168.1.23', '255.255.255.0', '192.168.1.1', '8.8.8.8')
  • IPアドレス:Pico Wに割り当てられたアドレス
  • サブネットマスク:ネットワーク範囲
  • デフォルトゲートウェイ:ルーター
  • DNSサーバ:ドメイン名解決用(例:Google)

7. ポイント

  • IoTの第一歩:クラウドにデータ送信可能
  • ネットワーク理解:IP・ゲートウェイ・DNSの確認
  • 次の応用
    • HTTPリクエストでデータ取得
    • センサー情報のクラウド送信
    • メール送信やMQTT通信

💡 補足Tips

  • 接続に失敗した場合は、SSID・パスワードの再確認、2.4GHzかどうかチェック
  • 長時間接続する場合は、再接続処理を組み込むと安定

コメント