近距離無線

Wi-Fi

無線LANの標準。高速だが消費電力は大きめ。

概要

Wi-Fi(ワイファイ)は、IEEE 802.11規格ファミリーに基づく無線LANの業界標準名称です。Wi-Fi Allianceが相互接続性を認証した製品に付与するブランド名であり、実質的にIEEE 802.11準拠の無線LANと同義で使われています。

2.4GHz帯・5GHz帯・6GHz帯(Wi-Fi 6E以降)を使用し、最大数Gbpsの高速データ通信が可能です。スマートフォン・PC・タブレット・スマートTV・ゲーム機・スマートホーム機器など現代のほぼあらゆるネットワーク接続機器に搭載されており、インターネット接続のインフラとなっています。

組み込み・IoT分野ではESP32をはじめとするWi-Fi内蔵マイコンが普及し、センサーノードや制御機器がWi-Fiで直接クラウド(AWS IoT / Azure IoT等)と通信する構成が一般化しています。

歴史・背景

Wi-Fiの前身となる無線LAN技術は1990年代から研究されていました。1997年にIEEE 802.11が初めて策定(2Mbps)、1999年にIEEE 802.11a(5GHz/54Mbps)と802.11b(2.4GHz/11Mbps)が規格化されました。同年、Wi-Fi AllianceがWi-Fiブランドを発足させ、相互接続認証制度を開始しました。

主なバージョン変遷:

世代名規格最大速度周波数帯
Wi-Fi 1802.11b11 Mbps2.4GHz1999
Wi-Fi 2802.11a54 Mbps5GHz1999
Wi-Fi 3802.11g54 Mbps2.4GHz2003
Wi-Fi 4802.11n600 Mbps2.4/5GHz2009
Wi-Fi 5802.11ac3.5 Gbps5GHz2013
Wi-Fi 6802.11ax9.6 Gbps2.4/5GHz2019
Wi-Fi 6E802.11ax9.6 Gbps2.4/5/6GHz2021
Wi-Fi 7802.11be46 Gbps2.4/5/6GHz2024

技術仕様

IEEE 802.11ax(Wi-Fi 6)の主要パラメータ

パラメータ
最大理論速度9.6 Gbps(4空間ストリーム×2.4Gbps)
周波数帯2.4 GHz / 5 GHz
チャンネル幅20/40/80/160 MHz
変調方式最大1024-QAM
MIMO最大8×8 MU-MIMO
OFDMA上りMU-OFDMAサポート
TWTTarget Wake Time(IoT省電力機能)
電波範囲室内〜100m / 屋外〜数百m

周波数帯の特性

周波数帯特性用途
2.4 GHz壁・障害物を通りやすい。電子レンジ・Bluetoothと干渉。チャンネル数が少ない(日本: 13ch、非重複: 3ch)広い範囲のカバー・IoTデバイス
5 GHz高速・チャンネル豊富(日本: 19ch)。障害物に弱い高速通信・映像配信
6 GHzWi-Fi 6E以降。最も高速・干渉少。日本では2022年から解禁超高速通信・低遅延

セキュリティプロトコル

規格暗号化認証状態
WEPRC4共有キー廃止(脆弱)
WPATKIPPSK / 802.1X廃止推奨
WPA2AES-CCMPPSK / 802.1X現在主流
WPA3AES-GCMP-256SAE / 802.1X最新(推奨)

消費電力(組み込み向け目安)

ESP32をベースとした代表的な消費電流:

状態消費電流(目安)
Deep Sleep10 µA
Light Sleep(Wi-Fiキープアライブ)800 µA
Modem Sleep数十 mA
Wi-Fi通信中(受信)80〜100 mA
Wi-Fi通信中(送信、最大)170〜240 mA

動作原理

CSMA/CA(衝突回避)

Wi-FiはEthernet同様CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)を使い、複数デバイスが同一チャンネルを共有します:

送信前にチャンネルがアイドルか確認
  → アイドル: ランダムバックオフタイム後に送信
  → ビジー: チャンネルが空くまで待機

RTS/CTSオプション:
送信側 → RTS(Request to Send)
受信側 → CTS(Clear to Send)
送信側 → データ
受信側 → ACK(確認応答)

OFDM(直交周波数分割多重)

Wi-Fi 4以降はOFDM(Orthogonal Frequency Division Multiplexing)を採用。帯域を多数のサブキャリアに分割し、並列伝送でマルチパスフェージング耐性と高速化を実現します:

  • 802.11g/n(20MHz): 52サブキャリア(48データ用 + 4パイロット)
  • 802.11ax(80MHz): 980サブキャリア(利用可能)
  • OFDMAはWi-Fi 6で追加:複数デバイスに異なるサブキャリアグループを割り当て多重化

Target Wake Time(TWT)— Wi-Fi 6のIoT向け省電力

Wi-Fi 6のTWT機能により、APがIoTデバイスに「次にデータ交換する時刻」を通知します。デバイスはその間確実にスリープでき、従来比大幅な省電力を実現できます:

デバイス: APとTWT Agreementを締結(起床間隔・起床時間を交渉)
デバイス: 合意した時刻まで Deep Sleep
デバイス: 指定時刻に起床 → APとデータ交換 → 再スリープ

用途・ユースケース

IoTデバイス・センサーノード

Wi-FiはMQTTHTTP/HTTPSでクラウドと直接通信できます。ESP32や ESP8266ベースの多数のIoTモジュールが低コストで利用可能です:

  • 環境センサー(温湿度・CO2・PM2.5)
  • スマートプラグ・スマートスイッチ
  • セキュリティカメラ・ドアベル
  • 工場の稼働状態モニタリング端末

OTAファームウェア更新

Wi-Fi対応機器はOTA(Over-The-Air)更新が容易で、フィールドに展開後のファームウェア更新がネットワーク越しに可能です。

マルチメディア・映像配信

  • ストリーミング: 4K動画(25Mbps+)にはWi-Fi 5/6が必要
  • 監視カメラ: H.264/H.265映像のリアルタイム転送

実装・開発のポイント

ESP32でWi-Fi接続とMQTT送信

#include <WiFi.h>
#include <PubSubClient.h>

const char* ssid     = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
const char* mqtt_server = "broker.example.com";

WiFiClient espClient;
PubSubClient mqttClient(espClient);

void setupWiFi() {
    WiFi.begin(ssid, password);
    Serial.print("Connecting to WiFi");
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.println("\nWiFi connected, IP: " + WiFi.localIP().toString());
}

void reconnectMQTT() {
    while (!mqttClient.connected()) {
        Serial.print("MQTT connecting...");
        if (mqttClient.connect("ESP32Client")) {
            Serial.println("connected");
            mqttClient.subscribe("cmd/esp32/+");
        } else {
            Serial.printf("failed, rc=%d. retry in 5s\n", mqttClient.state());
            delay(5000);
        }
    }
}

void loop() {
    if (!mqttClient.connected()) reconnectMQTT();
    mqttClient.loop();

    // センサーデータを5秒毎に送信
    static uint32_t lastSend = 0;
    if (millis() - lastSend > 5000) {
        float temp = readTemperature();
        String payload = "{\"temp\":" + String(temp, 2) + "}";
        mqttClient.publish("sensor/temperature", payload.c_str());
        lastSend = millis();
    }
}

Wi-Fiプロビジョニング

組み込み機器をエンドユーザーがWi-Fiに接続させる「プロビジョニング」には複数の方法があります:

1. SoftAP方式:
   デバイスが一時的にAPとして動作
   → スマートフォンがデバイスのAPに接続
   → HTTP/BLEでSSID/パスワードを転送
   → デバイスがターゲットWi-Fiに接続

2. BLEプロビジョニング(ESP-IDF BLE Prov):
   BLEで暗号化してSSID/パスワードを送信
   → セキュリティが高い

3. Wi-Fi Easy Connect(DPP):
   QRコードでAPとデバイスを設定
   → スマートフォンが仲介役として設定を自動配布

4. Amazon Frustration-Free Setup / Apple WAC:
   クラウドサービス連携でSSID入力なし

省電力設計

Wi-Fi IoTデバイスの電池駆動を実現する設計パターン:

// ESP32 Deep Sleep + Wi-Fi定期接続パターン
#include <esp_sleep.h>
#include <esp_wifi.h>

#define SLEEP_TIME_SEC 60  // 60秒スリープ

void setup() {
    // センサー読み取り
    float sensorValue = readSensor();

    // Wi-Fi接続・データ送信
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED && millis() < 10000) delay(100);

    if (WiFi.status() == WL_CONNECTED) {
        sendData(sensorValue);
    }

    // Wi-Fiを切断してDeep Sleep
    WiFi.disconnect(true);
    esp_sleep_enable_timer_wakeup(SLEEP_TIME_SEC * 1000000ULL);
    esp_deep_sleep_start();
    // ここには到達しない(リセットから再起動)
}

他技術との比較

Wi-Fi vs BLE vs Zigbee(IoT用途)

項目Wi-Fi(802.11n)BLE(5.0)Zigbee
最大速度150 Mbps+2 Mbps250 kbps
通信距離100m+30〜400m10〜100m
消費電力高い(数十〜数百mA)低い(µA〜mA)非常に低い(µA〜mA)
ゲートウェイ不要はい(ルーター経由でネット直接)スマートフォン経由専用ゲートウェイ必要
メッシュWi-Fi Mesh(EasyMesh)BLE Mesh標準対応
電池駆動困難(大量消費)容易(数年)容易(数年)

大容量データ・クラウド直結ならWi-Fi、電池駆動・低頻度送信ならBLE・Zigbeeが適しています。Wi-Fi 6のTWT機能でWi-FiでもIoT省電力が改善されつつあります。

Wi-Fi vs Wi-Fi HaLow

Wi-Fi HaLow(802.11ah)は900MHz帯を使い、Wi-Fi標準より長距離(最大1km)・低消費電力を実現したIoT特化規格です。通信速度はMbpsレベルに下がりますが、Wi-Fi HaLowゲートウェイ経由で既存クラウドインフラと接続できます。

関連用語

参考リンク