概要
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 1 | 802.11b | 11 Mbps | 2.4GHz | 1999 |
| Wi-Fi 2 | 802.11a | 54 Mbps | 5GHz | 1999 |
| Wi-Fi 3 | 802.11g | 54 Mbps | 2.4GHz | 2003 |
| Wi-Fi 4 | 802.11n | 600 Mbps | 2.4/5GHz | 2009 |
| Wi-Fi 5 | 802.11ac | 3.5 Gbps | 5GHz | 2013 |
| Wi-Fi 6 | 802.11ax | 9.6 Gbps | 2.4/5GHz | 2019 |
| Wi-Fi 6E | 802.11ax | 9.6 Gbps | 2.4/5/6GHz | 2021 |
| Wi-Fi 7 | 802.11be | 46 Gbps | 2.4/5/6GHz | 2024 |
技術仕様
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サポート |
| TWT | Target Wake Time(IoT省電力機能) |
| 電波範囲 | 室内〜100m / 屋外〜数百m |
周波数帯の特性
| 周波数帯 | 特性 | 用途 |
|---|---|---|
| 2.4 GHz | 壁・障害物を通りやすい。電子レンジ・Bluetoothと干渉。チャンネル数が少ない(日本: 13ch、非重複: 3ch) | 広い範囲のカバー・IoTデバイス |
| 5 GHz | 高速・チャンネル豊富(日本: 19ch)。障害物に弱い | 高速通信・映像配信 |
| 6 GHz | Wi-Fi 6E以降。最も高速・干渉少。日本では2022年から解禁 | 超高速通信・低遅延 |
セキュリティプロトコル
| 規格 | 暗号化 | 認証 | 状態 |
|---|---|---|---|
| WEP | RC4 | 共有キー | 廃止(脆弱) |
| WPA | TKIP | PSK / 802.1X | 廃止推奨 |
| WPA2 | AES-CCMP | PSK / 802.1X | 現在主流 |
| WPA3 | AES-GCMP-256 | SAE / 802.1X | 最新(推奨) |
消費電力(組み込み向け目安)
ESP32をベースとした代表的な消費電流:
| 状態 | 消費電流(目安) |
|---|---|
| Deep Sleep | 10 µ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はMQTTやHTTP/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 Mbps | 250 kbps |
| 通信距離 | 100m+ | 30〜400m | 10〜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ゲートウェイ経由で既存クラウドインフラと接続できます。