Skip to main content

XIAO 用 Wi-Fi HaLow モジュールの使用開始

はじめに

このチュートリアルでは、Wio-WM6180 Wi-Fi HaLow モジュールと XIAO ESP32S3 を使用して Wi-Fi HaLow クライアントを構築するためのセットアップと使用方法をガイドします。Wi-Fi HaLow(IEEE 802.11ah)は、サブ 1 GHz 周波数帯で動作する長距離・低消費電力の IoT アプリケーション向けに設計されています。ハードウェアのセットアップ、ソフトウェアの設定、そして IoT プロジェクト用の Wi-Fi HaLow 接続を確立する方法をデモンストレーションします。

主な特徴

  • 見通し距離最大 1km の長距離 Wi-Fi 接続
  • IoT デバイスに最適な低消費電力
  • 壁や障害物をより良く透過するサブ 1 GHz 動作
  • XIAO ESP32S3 開発ボードとの互換性
  • 簡単に従えるセットアップと設定プロセス

ハードウェア概要

以下の表は、Wio-WM6180 Wi-Fi HaLow モジュールの主要仕様を示しています:

特性単位
動作電圧3.3V
動作電流TBDmA
Wi-Fi プロトコルIEEE 802.11ah-
周波数帯サブ 1 GHz-
通信距離最大 1km
インターフェースSPI-
寸法TBDmm

Wi-Fi HaLow とは?

Wi-Fi HaLow は、モノのインターネット(IoT)アプリケーション向けに特別に設計された IEEE 802.11ah 標準に基づく無線ネットワーキングプロトコルです。サブ 1 GHz 周波数帯(通常 900 MHz)で動作する Wi-Fi HaLow は、従来の Wi-Fi に比べていくつかの重要な利点を提供します:

  1. 拡張された通信距離: Wi-Fi HaLow は見通し条件で最大 1 キロメートルの距離を達成でき、従来の Wi-Fi の通信距離を大幅に上回ります。

  2. 改善された透過性: より低い周波数の信号は壁やその他の障害物をより良く透過できるため、困難な環境に最適です。

  3. 低消費電力: IoT デバイスを念頭に置いて設計されており、Wi-Fi HaLow は接続デバイスの数年間のバッテリー寿命を可能にします。

  4. スケーラビリティ: 単一のアクセスポイントに数千のデバイスの接続をサポートし、大規模な IoT 展開に最適です。

  5. セキュリティ: WPA3 暗号化を含む Wi-Fi ファミリーの堅牢なセキュリティ機能を継承しています。

Wi-Fi HaLow が重要な理由

Wi-Fi HaLow は、長距離接続、低消費電力、および多数のデバイスを同時に処理する能力を必要とする IoT アプリケーションの成長するニーズに対応します。従来の Wi-Fi と LPWAN 技術の間のギャップを埋め、以下を提供します:

  • 産業用 IoT: 工場、倉庫、産業環境での信頼性の高い接続を可能にします。
  • スマート農業: センサーネットワーク用の大規模農業エリア全体のカバレッジを提供します。
  • スマートシティ: 都市環境での接続デバイスの広範なネットワークをサポートします。
  • 資産追跡: 貴重な資産や機器の長距離追跡を可能にします。

Wi-Fi の親しみやすさと低消費電力・長距離接続の利点を組み合わせることで、Wi-Fi HaLow は様々な業界での IoT アプリケーションの拡大において重要な役割を果たす準備ができています。

Wi-Fi HaLow システムアーキテクチャ

典型的な Wi-Fi HaLow ネットワークは、長距離・低消費電力の IoT 接続を可能にするために連携して動作するいくつかの主要コンポーネントで構成されています:

  1. アクセスポイント(AP): Wi-Fi HaLow ネットワークの中央ハブで、接続の管理とデバイスとインターネット間のデータルーティングを担当します。

  2. ステーション(STA): アクセスポイントに接続するクライアントデバイス。これらはセンサー、アクチュエーター、またはその他の IoT デバイスです。

  3. ゲートウェイ: Wi-Fi HaLow ネットワークと他のネットワーク(例:イーサネットやセルラー)間のブリッジとして機能します。

このチュートリアルでは、Wi-Fi HaLow アクセスポイントに接続するステーション(STA)クライアントとして XIAO ESP32S3 を設定します。XIAO は WM6180 モジュールを使用して HaLow 接続を確立し、維持します。

MM-IoT-SDK フレームワーク

WM6180 モジュールは MorseMicro の MM-IoT-SDK を利用しており、以下の機能を提供します:

  • マルチプロトコルサポート: 様々な IoT プロトコルとのシームレスな統合を可能にします
  • 低消費電力管理: バッテリー駆動デバイス向けに最適化された消費電力
  • セキュリティ機能: 内蔵の暗号化と認証メカニズム
  • 簡単な設定: ネットワークセットアップと管理のための簡素化された API

MM-IoT-SDK アーキテクチャは複数のレイヤーで構成されています:

  1. ハードウェア抽象化レイヤー (HAL): 異なるハードウェアプラットフォーム向けの統一インターフェースを提供
  2. ネットワークスタック: Wi-Fi HaLow プロトコルスタックを実装
  3. アプリケーションレイヤー: アプリケーション開発とデバイス管理のための API を提供

このフレームワークにより、開発者はカスタムアプリケーションの柔軟性を維持しながら、Wi-Fi HaLow 機能を迅速に実装できます。

必要な材料

このチュートリアルを実行するために必要な材料は以下の通りです。

XIAO ESP32S3 SenseXIAO ESP32C3XIAO ESP32C6Wio-WM6180 Wi-Fi HaLow Module for XIAO
note

このチュートリアルは、すべてのXIAO ESP32シリーズに適用されます。このチュートリアルでは、XIAO ESP32S3 Senseを例として使用します。

上記に加えて、WiFi-Halow使用に適した追加のアンテナを準備する必要がある場合があります。以下は、検証済みの推奨アンテナモデルです。

長距離屋内アンテナキット2.6dBi長距離アンテナ

WiFi-Halowモジュールにアンテナを接続するには、SMA to I-PEXアンテナケーブルの購入も必要になる場合があります。

SMA to I-PEXアンテナケーブル

初回使用の場合は、アンテナの取り付けについて以下の動画を参考にしてください。

ESP-IDF v5.1.1のインストール

プログラミングを開始する前に、コンピューターにESP-IDF v5.1.1をインストールする必要があります。ESP-IDFはESP32シリーズチップの公式開発フレームワークです。

ステップ1. Windows用ESP-IDFツールインストーラーをダウンロード

Windows用のESP-IDFツールインストーラーをダウンロードします。このインストーラーには、ESP-IDF開発に必要なすべてのツールが含まれています。

ステップ2. インストーラーを実行

  1. ダウンロードしたインストーラーを管理者として実行
  2. プロンプトに従ってPython、Git、その他の必要なツールをインストール
  3. プロンプトが表示されたら、以下のオプションを選択:
    • ESP-IDF v5.1.1をインストール
    • Pythonをインストール
    • Gitをインストール
    • ESP-IDFツールをパスに追加

ステップ3. インストールの確認

新しいコマンドプロンプトを開いて以下を実行:

esp-idf --version

インストールが成功した場合、バージョン番号 5.1.1 が表示されるはずです。

tip

インストール後、すべての環境変数が適切に設定されるように、コンピュータの再起動が必要な場合があります。

note

ESP-IDF v5.1.1のインストールに関するより詳細な手順については、Espressifの公式ドキュメントを参照してください:

mm-iot-esp32 リポジトリのクローンと設定

以下の手順に従って、mm-iot-esp32 リポジトリをクローンし、環境変数を設定します:

ステップ 1. リポジトリをクローンする

cd %USERPROFILE%
git clone https://github.com/Seeed-Studio/mm-iot-esp32.git

ステップ 2. IDF変数をエクスポートする

cd %USERPROFILE%\mm-iot-esp32
export.bat

ステップ 3. MMIOT_ROOT 環境変数を設定する

これは Windows システムプロパティを通じて永続的に設定できます:

  1. システムプロパティを開く(Win + R を押して sysdm.cpl と入力)
  2. 「環境変数」をクリック
  3. 「ユーザー環境変数」の下で「新規」をクリック
  4. 変数名:MMIOT_ROOT
  5. 変数値:C:\Users\YourUsername\mm-iot-esp32(実際のパスに置き換えてください)
  6. 「OK」をクリックして保存

または、コマンドプロンプトで一時的に設定することもできます:

set MMIOT_ROOT=C:\Users\YourUsername\mm-iot-esp32
tip

MMIOT_ROOT環境変数を設定する際は、必ず絶対パスを使用してください。相対パスを使用すると、プロジェクトのビルド時に問題が発生する可能性があります。

note

環境変数を設定した後、変更を有効にするためにターミナルを一度閉じて再度開く必要がある場合があります。

サンプルファームウェアのビルド

mm-iot-esp32リポジトリには、さまざまな機能を実演するいくつかのサンプルアプリケーションが含まれています。これらのサンプルをビルドして設定する方法は以下の通りです:

サンプルアプリケーションの場所

すべてのサンプルアプリケーションは、リポジトリのexamplesディレクトリにあります。利用可能なサンプルには以下が含まれます:

  • scan: Wi-Fiスキャンサンプル
  • iperf: iperfサーバーサンプル
  • sta_reboot: Wi-Fiステーション再起動サンプル
  • sta_connect: Wi-Fiステーション接続サンプル
  • web_camera_server: Webカメラサーバーサンプル
  • その他...

ネットワーク認証情報の設定

ファームウェアをビルドする前に、サンプルの設定ファイルでネットワーク設定を構成する必要があります:

  1. 選択したサンプルディレクトリに移動します:
cd $MMIOT_ROOT/examples/example_name
  1. 設定ファイルを編集します:
# Open the configuration file
nano src/mm_app_loadconfig.c
  1. このファイルでは、以下を変更できます:
  • 国コード(製品は現在北米でのみ利用可能なため、US に設定する必要があります)
  • Wi-Fi HaLow ネットワーク認証情報
  • その他のネットワーク関連パラメータ
caution

国コードに関する重要な注意事項:

  • この製品は現在北米市場でのみ利用可能なため、国コードは「US」に設定する必要があります
  • 規制要件により、この製品は他の地域ではまだ利用できません
  • 北米以外の地域でこの製品を使用すると、現地の規制に違反する可能性があります

ビルドプロセス

ネットワーク設定を構成した後、以下のコマンドを使用してファームウェアをビルドできます:

idf.py set-target esp32s3
idf.py fullclean
idf.py build
note
  • idf.py set-target コマンドは各例につき一度だけ実行する必要があります
  • idf.py fullclean は以前のビルド成果物をすべて削除してクリーンビルドを確実にします
  • ビルドが成功すると、ファームウェアバイナリは build ディレクトリに配置されます

ビルド出力

ビルドが成功すると、以下のような出力が表示されます:

# Project build complete. To flash, run this command:
idf.py -p (PORT) flash

以下に、いくつかの例を示します。

例 1. スキャン

この例では、周辺で利用可能な Wi-Fi HaLow ネットワークをスキャンする方法を示します。以下の手順に従って、スキャン例をビルドして実行してください:

ステップ 1: スキャン例に移動する

cd ~/mm-iot-esp32/example/scan

ステップ2: 国コードの設定

  1. 設定ファイルを開く:
nano main/src/mm_app_loadconfig.c
  1. 国コード行を見つけて修正します:
#define COUNTRY_CODE "US"  // Must use "US" as the product is only available for North America

ステップ 3: ハードウェアセットアップ

  1. Wio-WM6180 Wi-Fi HaLow モジュールを XIAO ESP32S3 に接続します

  2. XIAO ESP32S3 を USB 経由でコンピュータに接続します

ステップ 4: ビルドとフラッシュ

以下のコマンドを順番に実行します:

idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor

ステップ5: 結果の監視

すべてが正常に動作している場合:

  • フラッシュ後にシリアルモニターが自動的に開始されます
  • プログラムがWi-Fi HaLowネットワークのスキャンを開始します
  • 範囲内にWi-Fi HaLowゲートウェイがある場合、その情報がシリアルモニターに表示されます

シリアルモニターでの出力例:

tip
  • ネットワークを検出するために、近くにWi-Fi HaLowゲートウェイがあることを確認してください
  • スキャンプロセスは継続的に実行されるため、利用可能なネットワークの定期的な更新が表示されます
  • Ctrl+Cを押してモニターを停止し、プログラムを終了します
note

ネットワークが表示されない場合:

  • Wi-Fi HaLowゲートウェイの電源が入っており、正常に機能していることを確認してください
  • ゲートウェイの範囲内にいることを確認してください
  • モジュールがXIAO ESP32S3に正しく接続されていることを確認してください

例2. iperf

この例では、iPerfを使用してWi-Fi HaLow接続のネットワークパフォーマンスをテストする方法を示します。以下の手順に従ってiPerfの例をビルドして実行してください:

ステップ1: iPerfの例に移動

cd ~/mm-iot-esp32/example/iperf

ステップ2: ネットワーク設定の構成

  1. 設定ファイルを開く:
nano main/src/mm_app_loadconfig.c
  1. 以下のパラメータを変更してください:
// Set country code (must be "US" for North America)
#define COUNTRY_CODE "US"

// Set your Wi-Fi HaLow network credentials
#define SSID Your_HaLow_SSID // Replace with your network name
#define SAE_PASSPHRASE Your_Password // Replace with your network password

ステップ 3: ハードウェアセットアップ

  1. Wio-WM6180 Wi-Fi HaLow モジュールを XIAO ESP32S3 に接続します
  2. XIAO ESP32S3 を USB 経由でコンピュータに接続します

ステップ 4: ビルドとフラッシュ

以下のコマンドを順番に実行します:

idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor

ステップ5: パフォーマンステストの実行

プログラムが正常に動作すると、iPerfサービスが起動するのが確認できます。これで、Wi-Fi HaLowゲートウェイからパフォーマンステストを実行できます。

IPv4テストの場合、ゲートウェイで以下のコマンドを実行してください:

iperf -c <device_ip> -p <port> -i 1 -u -b 20M

For IPv6 testing, execute this command on your gateway:

iperf -c <device_ip>%wlan0 -p <port> -i 1 -V -u -b 20M

パラメータの説明:

  • -c: クライアントモードで実行
  • -p: ポート番号
  • -i: レポート間隔(1秒)
  • -u: UDPプロトコルを使用
  • -b: 目標帯域幅(20 Mbps)
  • -V: IPv6モード(IPv6テストのみ)
tip
  • パフォーマンステストを実行する前に、デバイスがWi-Fi HaLowネットワークに正常に接続されていることを確認してください
  • 接続後、デバイスのIPアドレスがシリアルモニターに表示されます
  • テストニーズに基づいて帯域幅(-bパラメータ)を調整できます
note

よくある問題と解決策:

  • 接続に失敗した場合は、ネットワーク認証情報を確認してください
  • iPerfサービスが開始されない場合は、ハードウェア接続を確認してください
  • パフォーマンスが悪い場合は、ゲートウェイの良好な範囲内にいることを確認してください

例3. web_camera_server

この例では、XIAO ESP32S3 SenseからWi-Fi HaLowネットワーク経由でカメラフィードをストリーミングする方法を示します。以下の手順に従ってWebカメラサーバーを構築して実行してください:

ステップ1: Webカメラの例に移動

cd ~/mm-iot-esp32/example/web_camera_serve

ステップ2: ネットワーク設定の構成

  1. 設定ファイルを開く:
nano main/src/mm_app_loadconfig.c
  1. Wi-Fi HaLow認証情報を変更します:
// Set your Wi-Fi HaLow network credentials
#define SSID Your_HaLow_SSID // Replace with your network name
#define SAE_PASSPHRASE Your_Password // Replace with your network password

ステップ 3: ハードウェアセットアップ

  1. Wio-WM6180 Wi-Fi HaLow モジュールを XIAO ESP32S3 Sense に接続します
  2. XIAO ESP32S3 Sense のカメラモジュールが適切に接続されていることを確認します
  3. XIAO ESP32S3 Sense を USB 経由でコンピュータに接続します

ステップ 4: ビルドとフラッシュ

以下のコマンドを順番に実行します:

idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor

ステップ5: カメラフィードにアクセスする

プログラムが正常に動作したら:

  1. シリアルモニターに表示されるIPアドレスをメモする
  2. Wi-Fi HaLowゲートウェイと同じネットワークに接続されている任意のデバイスでWebブラウザを開く
  3. ブラウザのアドレスバーにIPアドレスを入力する
  4. XIAO ESP32S3 Senseからのライブカメラフィードが表示されるはずです

URLの例:

http://192.168.4.1
tip

最適なストリーミング体験のために:

  • より良い画質のために良好な照明条件を確保してください
  • XIAO ESP32S3 SenseをWi-Fi HaLowゲートウェイの良好な範囲内に保ってください
  • 最適な互換性のために最新のWebブラウザを使用してください
note

トラブルシューティング:

  • カメラフィードにアクセスできない場合は、デバイスがWi-Fi HaLowゲートウェイと同じネットワーク上にあることを確認してください
  • 画像が表示されない場合は、カメラモジュールが正しく接続されていることを確認してください
  • ストリームが遅延する場合は、Wi-Fi HaLowゲートウェイに近づいてみてください

リソース

技術サポート & 製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。

Loading Comments...