1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Raspberry Pi Pico 2 W を買ったので、それを使って Wi-Fi を通信してみます。

上記の記事でアクセスポイント化した Raspberry Pi に接続します。

セットアップ

今回は MicroPyhton 使います。

ファームウェアのダウンロード

Raspberry Pi Pico 2 W で MicroPython を使うためには、ファームウェアを書き込んでおく必要があります。

上記のサイトから Pico 2 W を選択してダウンロードします。

ファームウェアの書き込み

次に、ファームウェアをダウンロードしたホスト PC と Raspberry Pi Pico 2 W を USB ケーブルで接続して書き込みを行います。

接続すると、下記の画像のようにホスト PC で認識されるようになるので、ダウンロードしたファームウェアを書き込みます。(この例では、ホスト PC に Mac を使っています)

スクリーンショット 2025-12-20 15.14.43.png

確認作業

MicroPython のファームウェアを書き込むことによって、Raspberry Pi Pico 2 W がシリアルデバイスとして認識されるようになります。

Mac の場合だと /dev/tty.usbmodem* に、Linux の場合だと /dev/ttyACM0 にそれ用のファイルが作成されます。

$ ls -la /dev/tty.usbmodem*
crw-rw-rw-  1 root  wheel  0x9000008 12月 20 15:26 /dev/tty.usbmodem2301
$ ls -la /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Dec 20 15:41 /dev/ttyACM0

Raspberry Pi Pico 2 W では、MicroPython が使えるようになっています。

  • Mac
$ screen /dev/tty.usbmodem2301
MicroPython v1.27.0 on 2025-12-09; Raspberry Pi Pico 2 W with RP2350
Type "help()" for more information.
>>> print("Hello, World!")
Hello, World!
  • Linux
$ sudo screen /dev/ttyACM0
MicroPython v1.27.0 on 2025-12-09; Raspberry Pi Pico 2 W with RP2350
Type "help()" for more information.
>>> print("Hello, World!")
Hello, World!

Wi-Fi 通信する

前提

上記の記事で記載した通りに Raspberry Pi をアクセスポイント化しておきます。

sudo nmcli device wifi hotspot \
  ifname wlan0 \
  con-name con-my-ap \
  ssid my-ap \
  password password

設定が完了すると、以下の情報で接続可能になります。

  • SSID: my-ap
  • password: password
$ nmcli device show wlan0 | grep ADDRESS
IP4.ADDRESS[1]:                         10.42.0.1/24
IP6.ADDRESS[1]:                         fe80::2ecf:67ff:fe2e:14ea/64

アクセスポイント化した Raspberry Pi のワイヤレス通信用のネットワークインターフェースには10.42.0.1/24 が当たっているので、Raspberry Pi Pico W には、10.42.0.2/24 ~ 10.42.0.254/24 のいずれかが当たるようになるはずです。

実装

基本的には以下に書かれている通りです。

import time
import network

ssid = 'my-ap'
password = 'password'

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)

# Wait for connect or fail
max_wait = 10
while max_wait > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    max_wait -= 1
    print('waiting for connection...')
    time.sleep(1)

# Handle connection error
if wlan.status() != 3:
    raise RuntimeError('network connection failed')
else:
    print('connected')
    status = wlan.ifconfig()
    print('ip = ' + status[0])

問題なく通信ができると、Raspberry Pi 側の DHCP の機能によって割り当てられた IP アドレスが出力されます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?