Raspberry Pi Pico Wは、IoTデバイスや組み込みシステムの開発に適したマイクロコントローラーボードです。このボードの特徴の1つとして、CYW43439無線LANモジュールが搭載されており、Wi-FiとBluetooth通信が可能です。このモジュールは、高性能なワイヤレス通信を低消費電力で提供し、セキュアな接続をサポートしています。
今回はCYW43439を使ってRaspberry Pi Pico WのMicroPythonで記述されたプログラムからネットワークにアクセスするための方法について解説します。
なぜRaspberry Pi Picoなのか?
Raspberry Pi Picoは、手頃な価格で高性能なマイクロコントローラです。MicroPythonというPythonのサブセットを使用することで、初学者でも簡単に組み込みプログラミングを学ぶことができます。
また、現在最新のRaspberry Pi Pico Wでは無線LANが搭載され、IoTのアプリケーション開発にも活用できるようになりました。
MicroPythonの開発環境
Raspberry Pi Pico、Raspberry Pi Pico Wで動作するMicroPythonのプログラムを開発する環境として、Thonnyを使用します。
Thonnyを使用することで、コーディングからファイルの転送、Raspberry Pi Picoでの実行を全てツール内で行うことが可能です。
Thonnyのインストールから使用方法までを、以下の記事で解説しています。

Raspberry Pi Pico Wの入手先
Raspberry Pi Pico WはAmazon等で2,000円以下という低価格で入手することができます。

またはんだ付けの道具をお持ちでない場合や、はんだ付けが面倒という方向けには「Raspberry Pi Pico WH」という製品名でピンヘッダ実装済みのものが販売されています。

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アドレスを取得できました。

組込みソフトウェアの知識を仕事に活かすには

趣味でマイコンのプログラムを書いてるから、仕事でも活かしたいなあ。
でも自信が無い…



そんな時は、一度スクールで体系的に基礎を学ぶといいよ。
趣味のプログラミングスキルを活かしたいけど、「実務レベルで通用するか不安」という方には、プログラミングスクールを受講してみるのがおすすめです。
プログラミングスクールのカリキュラムは、企業の研修などでも利用されており、実践的で即戦力となるスキルを習得することが可能です。
Winスクールでは、Web系や機械学習、データサイエンスなどに加え、プログラミングスクールでは珍しいハードウェアを扱うC言語組み込みシステムやハードウェアとクラウドを連携させたIoTシステムの講座が非常に充実しています。
授業内容も受講者に対して組み込み用マイコンボードやRaspberry Piを用意し、実機を使いながら学べる本格的なカリキュラムが用意されています。
また、受講者のスケジュールやロケーションに応じて、対面授業とオンライン授業を選択、もしくは組み合わせて受講できるため、プログラミング初心者の方でも安心です。
家電や自動車業界などへの転職を目指したい方に非常におすすめです。
また近年、クラウドソーシングのプラットフォームにも、マイコンボードを使った組み込みソフトウェアの開発案件も多く募集されており、副業でマイコンのソフトウェア開発を行う方も増えています。



クラウドワークスなどで「Raspberry Pi」と検索すると、開発や解説記事作成などの案件が出てくるよ。



スクールで基礎をしっかり押さえておけば、安心して案件に応募できるね。
プログラミング言語 | Python, C, C#, Java, JavaScript(React.js), Ruby, PHP, 他 |
授業形式 | 対面&オンラインが選択可能 |
学習期間 | 90分×40回(60時間)(C言語&組込みシステム開発(マイコンボード)コースの例) |
費用 | 353,100円~(C言語&組込みシステム開発(マイコンボード)コース例) |
補助金、給付金 | 一部の講座が教育訓練給付制度対象 |
転職支援 | 個別の就職カウンセリング、無料の就職支援セミナー |
実績・信頼性 | 年間17,000人以上の受講者、年間1,484社の企業研修実績 |
\ Winスクール公式サイトを見てみる! /
まとめ
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デバイス開発、センサーネットワーク、スマートホームアプリケーションなど、多岐にわたるプロジェクトにおいて、効率的かつセキュアなワイヤレス通信を実現できますので、ぜひ活用してみてください。。



