Raspberry Pi Pico Wを無線LANモジュールでネットワークに接続する方法

※本ページはアフィリエイト広告を利用しています

Raspberry Pi Pico Wは、IoTデバイスや組み込みシステムの開発に適したマイクロコントローラーボードです。このボードの特徴の1つとして、CYW43439無線LANモジュールが搭載されており、Wi-FiとBluetooth通信が可能です。このモジュールは、高性能なワイヤレス通信を低消費電力で提供し、セキュアな接続をサポートしています。

今回はCYW43439を使ってRaspberry Pi Pico WのMicroPythonで記述されたプログラムからネットワークにアクセスするための方法について解説します。

目次

Raspberry Pi Pico Wに搭載された無線LANモジュール

「CYW43439」は、Broadcom(またはCypress Semiconductor、現在はInfineon Technologiesの一部)によって製造される無線LANモジュールです。このモジュールは、Wi-FiとBluetoothの機能を統合しており、IoTデバイスや組み込みアプリケーションに広く使用されています。

シルバーのシールドで覆われているチップがCYW43439です。

CYW43439の特徴
  • Wi-Fi: CYW43439は、2.4 GHz帯および5 GHz帯のIEEE 802.11a/b/g/n/ac規格に対応しています。これにより、高速で安定したワイヤレス通信が可能です。
  • Bluetooth: Bluetooth 5.0に対応しており、低消費電力のBluetooth Low Energy (BLE) 通信もサポートしています。これは、IoTデバイスが他のBluetoothデバイスと効率的に通信するのに役立ちます。
  • 低消費電力: CYW43439は、低消費電力で動作するように設計されており、バッテリー駆動のデバイスに適しています。省電力モードやスリープ機能を利用して、消費電力をさらに抑えることができます。
  • セキュリティ: WPA3セキュリティプロトコルをサポートしており、ワイヤレス通信の安全性を高めています。
  • 統合性: Wi-FiとBluetooth機能が1つのチップに統合されているため、デバイスのサイズを小さくしながら、複数のワイヤレス通信機能を利用することができます。

Raspberry Pi Pico WにCYW43439を搭載することで、Wi-FiとBluetooth通信機能を活用した多様なIoTプロジェクトやアプリケーションの開発が可能になります。これにより、インターネットへの接続、センサーデータの収集と送信、他のデバイスとの通信など、多くの機能が拡張されます。

CYW43439の詳細な仕様やデータシートは、以下のInfineon Technologiesの公式ウェブサイトで確認することができます。

作成したMicroPythonコード

このプログラムは、Raspberry Pi Pico WをWiFiネットワークに接続するための基本的なスクリプトです。WiFiのSSIDとパスワードを設定し、WLANインターフェイスをアクティブにして接続します。接続が確立されると、デバイスのIPアドレスが表示されます。ユーザーがプログラムを手動で停止した場合、デバイスはリセットされます。

コード解説

  1. インポート:
    • networkモジュールをインポートして、ネットワーク機能にアクセスします。
    • socketモジュールをインポートして、ネットワークソケットを使用します(この例では使用されていませんが、HTTPリクエストなどを送信する場合に使用します)。
    • machineモジュールをインポートして、ハードウェアの制御に使用します。
    • sleep関数をインポートして、プログラムの実行を一時停止します。
  2. WiFi設定:
    • ssidpassword変数に、WiFiネットワークのSSIDとパスワードを設定します。
  3. 接続関数:
    • connect関数を定義します。この関数は、Raspberry Pi Pico WをWiFiネットワークに接続します。
    • network.WLAN(network.STA_IF)を使用して、WLANオブジェクトを作成します。STA_IFは、Pico WをWiFiステーションモードで動作させます。
    • wlan.active(True)でWLANインターフェイスをアクティブにします。
    • wlan.connect(ssid, password)で指定されたSSIDとパスワードを使用してWiFiネットワークに接続します。
  4. 接続待機:
    • while not wlan.isconnected():ループを使用して、WiFiネットワークへの接続が完了するまで待機します。接続が完了するまで、”Waiting for connection…”と表示されます。
  5. IPアドレスの表示:
    • 接続が完了したら、wlan.ifconfig()[0]を使用してIPアドレスを取得し、コンソールに表示します。
  6. 関数の呼び出し:
    • tryブロック内でconnect関数を呼び出して、WiFiに接続します。
    • except KeyboardInterrupt:ブロックは、ユーザーがキーボードで割り込みを送信した場合(通常はCtrl + C)に、Raspberry Pi Pico Wをリセットします。これは、プログラムが途中で停止した場合に、デバイスをクリーンな状態に戻すためです。

全体のソースコード

import network
import socket
import machine
from time import sleep

# WiFiのSSIDとパスワードを設定
ssid = 'YOUR_WIFI_SSID'
password = 'YOUR_WIFI_PASSWORD'

def connect():
    # WLANに接続
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(ssid, password)
    
    # 接続が完了するまで待機
    while not wlan.isconnected():
        print('Waiting for connection...')
        sleep(1)
    
    # IPアドレスを取得
    ip = wlan.ifconfig()[0]
    print(f'Connected on {ip}')
    return ip

try:
    ip = connect()
except KeyboardInterrupt:
    machine.reset()

このスクリプトは、IoTプロジェクトの基盤として使用することができます。WiFi接続が確立された後、さまざまなセンサーやアクチュエータを制御したり、インターネット上のサービスと通信したりするコードを追加することができます。

動作確認

先ほどのプログラムをRaspberry Pi Pico W上で実行すると以下のように、接続後に割り当てられたIPアドレスを取得できました。

まとめ

CYW43439無線LANモジュールは、Raspberry Pi Pico Wの強力な機能を拡張し、Wi-FiとBluetooth通信を可能にします。このモジュールは、2.4 GHzおよび5 GHzのWi-Fi、Bluetooth 5.0、低消費電力、およびWPA3セキュリティプロトコルをサポートしています。

これにより、Raspberry Pi Pico Wは、IoTデバイス開発、センサーネットワーク、スマートホームアプリケーションなど、多岐にわたるプロジェクトにおいて、効率的かつセキュアなワイヤレス通信を実現できますので、ぜひ活用してみてください。。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次