Wi-Fiのアクセスポイントをつくってみよう

はじめに

現在、IoT-EXプロジェクトではマイコンを利用したプロジェクトを進めています。今回はプロジェクトで利用しているRaspberry Pi Pico Wを使って、無線通信の機能を試してみます。

無線通信の2つのモード

Raspberry Pi Pico Wでは、APモード(アクセスポイントモード)とSTAモード(ステーションモード)の2つの無線通信モードを選択して利用できます。

APモード: Wi-Fiのアクセスポイントとして機能

STAモード: Wi-Fiクライアントとして機能

今回は、Raspberry Pi Pico WとPCだけで完結するAPモードを利用し、アクセスポイントを作成できるところまで確認します。

ソースコード

Raspberry Pi Pico WをAPモードで動作させるためのサンプルソースコードです。

import utime
import network

try:

    # APの作成
    ap = network.WLAN(network.AP_IF)
    ap.active(True)
    ap.config(essid='abipico', password='pico123')
    utime.sleep(1)

    # APが有効になっているか確認
    for _ in range(10):
        if ap.active():
            break
        utime.sleep(1)
    print('AP Status:', ap.status())

    while True:
        utime.sleep(1)

except KeyboardInterrupt:
    print('Program interrupted by user')
except Exception as e:
    print('An error occurred:', e)
finally:
    if 'ap' in locals() and ap.active():
        ap.active(False)
        # 少し待機して完全に停止するのを待つ
        utime.sleep(3)
        ap.config(essid='', password='')  # SSIDとパスワードをリセット

        # 10秒間の間でap.active(False)になっていることを確認する
        for _ in range(10):
            if not ap.active():
                print('AP has stopped successfully.')
                break
            else:
                print('Waiting for AP to stop...')
                utime.sleep(1)
        else:
            print('AP did not stop within the expected time.')
        print('Processs: Stopped AP')

    print('Cleaned up resources')

ポイント

  • ソースコードを停止した後再度コードを実行してもうまくいかなくなる場合は、正しく停止できていない可能性があります。
  • 正しく動作しなかった場合は、ソースコードの修正後、Raspberry Pi Picoを再起動してから動作確認をしてください。

動作確認

コードを実行しPCを確認すると、接続可能なWi-Fiの一覧に「abipico」というSSIDが表示されました。

また、Wi-Fiの信号を表示するスマホアプリからもSSIDが確認できます。

まとめ

今回は、Raspberry Pi Pico Wをアクセスポイントとして利用しました。Raspberry Pi Pico Wにはさまざまなモジュール(ボタンやマイクなど)を接続できるので、いろいろな応用が考えられます。

再接続がうまくいかなかったりと苦戦しましたが、普段何気なく利用しているWi-Fiのアクセスポイントを自分で作って接続できる状態にするのは、なかなかおもしろかったです。

参考文献

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です