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です。
- 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アドレスが表示されます。ユーザーがプログラムを手動で停止した場合、デバイスはリセットされます。
コード解説
- インポート:
network
モジュールをインポートして、ネットワーク機能にアクセスします。socket
モジュールをインポートして、ネットワークソケットを使用します(この例では使用されていませんが、HTTPリクエストなどを送信する場合に使用します)。machine
モジュールをインポートして、ハードウェアの制御に使用します。sleep
関数をインポートして、プログラムの実行を一時停止します。
- WiFi設定:
ssid
とpassword
変数に、WiFiネットワークのSSIDとパスワードを設定します。
- 接続関数:
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ネットワークに接続します。
- 接続待機:
while not wlan.isconnected():
ループを使用して、WiFiネットワークへの接続が完了するまで待機します。接続が完了するまで、”Waiting for connection…”と表示されます。
- IPアドレスの表示:
- 接続が完了したら、
wlan.ifconfig()[0]
を使用してIPアドレスを取得し、コンソールに表示します。
- 接続が完了したら、
- 関数の呼び出し:
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デバイス開発、センサーネットワーク、スマートホームアプリケーションなど、多岐にわたるプロジェクトにおいて、効率的かつセキュアなワイヤレス通信を実現できますので、ぜひ活用してみてください。。
コメント