注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
1. ネットワークへのアクセス
Raspberry Pi Pico Wは、Raspberry Pi Picoと非常に似ており、GPIO、microUSBポート、サイズが同じです。唯一の違いは、InfineonからのCYW43439 2.4-GHz Wi-Fiチップが追加されている点です。 それでは、どのようにして私たちのWi-Fiネットワークに接続するのか見てみましょう。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
こちらが一式を購入する便利なリンクです:
名前 |
このキットに含まれるアイテム |
リンク |
|---|---|---|
Kepler Kit |
450+ |
以下のリンクから個別に購入することもできます。
SN |
コンポーネント |
個数 |
リンク |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USB Cable |
1 |
1. インターネットに接続
わずか5行のMicroPythonで、Raspberry Pi Pico Wはインターネットに接続されます。
これら5行のコードは、Shellから直接実行することができ、入力後に Enter キーを押します。
または、以下の方法に従って新しい .py ファイルを作成して実行します。
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORD")
print(wlan.isconnected())
Thonnyの 新規作成 ボタンをクリックして新しいスクリプトを作成し、上記のコードをコピーして貼り付け、
SSIDとPASSWORDを自分のものに変更します。
スクリプトを実行するには、 現在のスクリプトを実行 ボタンをクリックするか、F5キーを押します。接続が成功すると、
trueが表示されます。注釈
Raspberry Pi Pico WがUSBケーブルでコンピュータに接続されていることを確認し、右下のコーナーをクリックしてMicroPython(Raspberry Pi Pico).COMXxxをインタープリタとして選択します。
2. タイムアウト判断とIPの表示
ネットワーク状況が良くない場合を考慮して、コードにタイムアウトの判断を追加しましょう。
接続に成功すると、スクリプトをコピーして実行した後に、Pico WのIPが表示されます。
import network
import time
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORD")
# Wait for connect or fail
wait = 10
while wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
wait -= 1
print('waiting for connection...')
time.sleep(1)
# Handle connection error
if wlan.status() != 3:
raise RuntimeError('wifi connection failed')
else:
print('connected')
print('IP: ', wlan.ifconfig()[0])
wlan.status()関数:無線接続の現在のステータスを返します、戻り値は以下の表に示されています。ステータス
値
説明
STAT_IDLE
0
接続も活動もなし
STAT_CONNECTING
1
接続中
STAT_WRONG_PASSWORD
-3
パスワードが不正なため失敗
STAT_NO_AP_FOUND
-2
アクセスポイントが応答しないため失敗
STAT_CONNECT_FAIL
-1
その他の問題による失敗
STAT_GOT_IP
3
接続成功
wlan.ifconfig()関数:IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバーを取得します。このメソッドは、直接呼び出された場合、上記の情報を含む4タプルを返します。この場合、IPアドレスのみを表示します。
3. secrets.py にプライベート情報を保存
Pico Wプロジェクトを共有する際、Wi-FiのパスワードやAPIキーを他人に見られたくないでしょう。
より高いセキュリティを確保するために、 secrets.py ファイルを作成してプライベート情報を保存できます。
以下のコードをThonnyで新しいスクリプトファイルにコピーします。
SSIDとPASSWORDは自分のものに変更してください。secrets = { 'ssid': 'SSID', 'password': 'PASSWORD', }
「保存」ボタンをクリックするか、
Ctrl+Sを押すと表示されるポップアップウィンドウでRaspberry Pi Picoを選択します。
名前を
secrets.pyに設定します。
これで、このスクリプトはRaspberry Pi Pico Wで見ることができます。
他のスクリプトで次のように呼び出すことができます。実行すると、Wi-Fi接続が成功することが確認できます。
secrets.pyファイルはライブラリとしてインポートされるので、情報の漏洩を心配する必要はありません。import network import time from secrets import secrets wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(secrets['ssid'], secrets['password']) # Wait for connect or fail wait = 10 while wait > 0: if wlan.status() < 0 or wlan.status() >= 3: break wait -= 1 print('waiting for connection...') time.sleep(1) # Handle connection error if wlan.status() != 3: raise RuntimeError('wifi connection failed') else: print('connected') print('IP: ', wlan.ifconfig()[0])
4. do_connect.py でインターネットに接続
次々と行うプロジェクトでネットワーク接続が必要となるため、新しい do_connect.py ファイルを作成して関連する関数をそこに記述し、再利用するのはいかがでしょうか。これにより、複雑なプロジェクトのコードを大幅にシンプルにすることができます。
以下のコードを新しいスクリプトファイルにコピーし、Raspberry Pi Picoに
do_connect.pyとして保存します。import network import time from secrets import * def do_connect(ssid=secrets['ssid'],psk=secrets['password']): wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, psk) # Wait for connect or fail wait = 10 while wait > 0: if wlan.status() < 0 or wlan.status() >= 3: break wait -= 1 print('waiting for connection...') time.sleep(1) # Handle connection error if wlan.status() != 3: raise RuntimeError('wifi connection failed') else: print('connected') ip=wlan.ifconfig()[0] print('network config: ', ip) return ip
以下のように他のスクリプトで呼び出すと、Raspberry Pi Pico Wはネットワークに接続されます。
from do_connect import * do_connect()