概要
IoT システムにおける基地局(Base Station) と ゲートウェイ(Gateway) は、無線端末(センサー・デバイス・スマートフォン等)とバックエンドネットワーク(インターネット・クラウド)の間を中継する設備・機器である。技術的な定義や役割はコンテキストによって異なるが、共通するのは「プロトコル・物理層の変換および中継」の機能である。
基地局(Base Station):
- 主に携帯電話・セルラーネットワーク(4G LTE、5G NR)の文脈で使われる
- 無線アクセスポイントとして端末と直接通信し、コアネットワーク(CN)へ接続する
- 通信事業者(MNO:Mobile Network Operator)が設置・運営する大規模設備
ゲートウェイ(Gateway):
- 主に IoT・LPWA ネットワーク(LoRaWAN、Sigfox、Wi-SUN 等)で使われる
- 端末から受信したデータのプロトコルを変換(例: LoRa → TCP/IP)してクラウドへ転送
- 中小規模設備。企業・自治体・個人が設置する場合も多い
両者を合わせて「ネットワークアクセスポイント」とも呼ばれ、IoT システムのアーキテクチャにおける重要な構成要素となっている。
歴史・背景
無線通信における基地局の概念は、1970〜80 年代の第1世代携帯電話(1G)から存在する。当初はアナログ音声通話用だったが、2G(GSM)・3G(W-CDMA)・4G(LTE)・5G(NR)と世代を重ねるごとにデジタル化・高速化が進んだ。
IoT 向けゲートウェイの概念は、2010 年代の LPWA(Low Power Wide Area)ネットワークの台頭とともに発展した。
| 年 | 出来事 |
|---|---|
| 1979 | 世界初の 1G 携帯電話基地局(NTT、日本) |
| 1993 | GSM(2G)商用サービス開始 |
| 2001 | W-CDMA(3G)開始 |
| 2010 | LTE(4G)商用サービス開始 |
| 2012 | Sigfox LPWA ゲートウェイサービス開始 |
| 2015 | LoRaWAN 1.0 規格化・TTN(The Things Network)設立 |
| 2017 | NB-IoT・LTE-M 商用サービス開始 |
| 2019 | 5G NR 商用サービス開始 |
| 2020 | Wi-SUN FAN(スマートメーター向け自営メッシュ)普及 |
| 2022 | 5G SA(スタンドアロン)基地局の本格展開 |
技術仕様
セルラー基地局のアーキテクチャ
4G LTE 基地局(eNodeB)
端末(UE)
│ LTE 無線(FDD/TDD)
▼
eNodeB(基地局)
├── RRH(Remote Radio Head):アンテナ・PA・フィルタ
└── BBU(Baseband Unit):デジタル処理・変調
│ S1 インターフェース(光ファイバー)
▼
EPC(Evolved Packet Core)
├── MME(移動管理)
├── S-GW(ユーザーデータ転送)
└── P-GW(インターネット接続)
5G NR 基地局(gNodeB)
5G では基地局の機能を細分化した O-RAN(Open RAN) アーキテクチャが標準化されつつある。
O-RAN アーキテクチャ:
[O-RU] ← アンテナ・RF 処理(現地設置)
│ fronthaul(eCPRI)
[O-DU] ← 物理層・MAC 層処理(現地またはエッジ)
│ midhaul(F1)
[O-CU] ← PDCP・RRC 処理(クラウドまたはエッジ)
│ backhaul(N2/N3)
[5G コア(5GC)] ← AMF、SMF、UPF 等
LoRaWAN ゲートウェイのアーキテクチャ
LoRaWAN ゲートウェイは極めてシンプルな「転送専用(Transparent Bridge)」設計である。
LoRa 端末(センサー)
│ LoRa 無線(Sub-GHz)
│ SF7〜SF12、125kHz 帯域
▼
LoRaWAN ゲートウェイ
├── RF フロントエンド(SX1301/SX1302 チップ)
│ └── 8〜16 チャネル同時受信
├── パケット転送モジュール(Packet Forwarder)
│ └── UDP/JSON でサーバーへ転送
└── バックホール(Ethernet / 4G / Wi-Fi)
│
▼
LoRaWAN ネットワークサーバー(TTN、Chirpstack 等)
│
▼
アプリケーションサーバー(クラウド・クライアント)
ゲートウェイのパケット転送プロトコル(Semtech UDP Packet Forwarder):
// ゲートウェイ → ネットワークサーバーへの PUSH_DATA 例
{
"rxpk": [{
"time": "2024-01-15T10:00:00Z",
"tmst": 1234567890,
"chan": 0,
"rfch": 0,
"freq": 868.1,
"stat": 1,
"modu": "LORA",
"datr": "SF7BW125",
"codr": "4/5",
"rssi": -75,
"lsnr": 9.2,
"size": 23,
"data": "QAQDAgGAAAABVXU9vgM="
}]
}
IoT ゲートウェイの機能分類
| 機能 | 説明 | 必須/任意 |
|---|---|---|
| プロトコル変換 | LoRa/ZigBee/BLE → TCP/IP | 必須 |
| データ集約 | 複数端末のデータをまとめてクラウドへ転送 | 一般的 |
| エッジ処理 | データのフィルタリング・集計をローカルで実施 | 任意 |
| OTA 更新 | ゲートウェイ自身またはエッジデバイスのファームウェア更新 | 任意 |
| セキュリティ | TLS/mTLS によるバックホール暗号化、VPN | 推奨 |
| ローカルストレージ | バックホール切断時のバッファリング | 任意 |
| デバイス管理 | 端末の登録・認証・設定管理 | 任意 |
動作原理
LoRaWAN における上り/下りフロー
【上りリンク(センサー → クラウド)】
センサー → [LoRa 無線] → ゲートウェイ A(受信)
→ ゲートウェイ B(受信、重複)
↓ UDP パケット転送
ネットワークサーバー
↓ 重複除去・Join 確認・ルーティング
アプリケーションサーバー
【下りリンク(クラウド → センサー)】
アプリケーションサーバー → ネットワークサーバー
↓ 最適ゲートウェイ選択(RSSI等)
ゲートウェイ A → [LoRa 無線] → センサー
LoRaWAN のゲートウェイは受信専用で複数が同じデータを受け取る可能性があり(マルチゲートウェイ受信)、重複除去はネットワークサーバー側で行う。これが「ゲートウェイが透過的な転送のみ担う」設計の特徴である。
セルラーネットワークのハンドオーバー
端末が移動する際、現在接続中の基地局の信号品質が低下すると、隣接する基地局へ接続が切り替わる(ハンドオーバー)。
端末移動: 基地局 A カバレッジ → 基地局 B カバレッジ
1. 端末が基地局 A・B 両方から参照信号を測定・報告
2. ネットワークが切り替えを判断(X2/Xn インターフェース)
3. 基地局 A → 基地局 B にコンテキスト転送
4. 端末が基地局 B に接続(通話・通信は継続)
エッジゲートウェイのデータ処理
産業 IoT では、エッジゲートウェイでデータを前処理してからクラウドへ送ることで通信量と遅延を削減する。
# エッジゲートウェイでの異常検知フィルタリング例
import json
import paho.mqtt.client as mqtt
THRESHOLD = 80.0 # 温度閾値
def on_message(client, userdata, message):
data = json.loads(message.payload)
temperature = data["temperature"]
# エッジで閾値判定(正常データは間引き送信)
if temperature > THRESHOLD:
# 即座にクラウドへアラート送信
cloud_client.publish("alerts/temperature", json.dumps({
"device_id": data["device_id"],
"value": temperature,
"severity": "high"
}))
elif should_send_periodic(data["device_id"]):
# 1分ごとに定期送信(通信量削減)
cloud_client.publish("telemetry/temperature", message.payload)
local_broker = mqtt.Client()
local_broker.on_message = on_message
local_broker.connect("localhost", 1883)
local_broker.subscribe("sensors/#")
local_broker.loop_forever()
用途・ユースケース
スマートシティのゲートウェイ配置
市内各所
├── LoRaWAN ゲートウェイ(電柱・ビル屋上設置)
│ └── スマートメーター・駐車センサー・路面センサー
├── 5G 基地局(NTT、KDDI 等の MNO が設置)
│ └── 自動運転車・産業ドローン・高精細監視カメラ
└── Wi-Fi アクセスポイント(市が設置)
└── 観光客向け無料 Wi-Fi
↓(すべてバックホールで集約)
市のデータセンター / クラウドプラットフォーム
農業 IoT
LoRa / LoRaWAN ゲートウェイを農場の高い建物(サイロ、倉庫屋根)に設置することで、半径 5〜15 km のフィールドセンサーからデータを収集できる。太陽光パネル+バッテリー駆動の自立型ゲートウェイも普及している。
土壌センサー群(LoRa 端末)
↓ LoRa 無線(Sub-GHz)
LoRaWAN ゲートウェイ(農場に設置、4G バックホール)
↓ 4G LTE → インターネット
農業管理クラウド(灌漑制御・収量予測)
ビル管理(BAS:Building Automation System)
ビル内の空調・照明・電力計・セキュリティカメラを ZigBee や Wi-Fi で収集し、バックボーンネットワーク(Ethernet)経由で BAS サーバーへ集約するゲートウェイが使われる。Raspberry Pi や産業用 PC ベースのゲートウェイが多い。
プライベート LTE / 5G(ローカル5G)
工場・港湾・鉱山などでは、MNO の公衆網とは独立した プライベート 5G を構築する事例が増えている。専用基地局(gNodeB)を設置し、端末の通信がインターネットを介さずローカルで完結する。
[工場内 AGV・ロボット(5G 端末)]
↓ プライベート 5G NR
[プライベート gNodeB(基地局)]
↓ 専用線(インターネット非経由)
[工場内コアネットワーク(5GC)]
↓
[工場管理システム・ERP]
実装・開発のポイント
ChirpStack(OSS LoRaWAN ネットワークサーバー)の構築
# Docker Compose で ChirpStack を起動
version: "3"
services:
chirpstack:
image: chirpstack/chirpstack:4
environment:
- POSTGRESQL__DSN=postgres://chirpstack:chirpstack@postgres/chirpstack?sslmode=disable
ports:
- "8080:8080"
chirpstack-gateway-bridge:
image: chirpstack/chirpstack-gateway-bridge:4
ports:
- "1700:1700/udp" # ゲートウェイからの UDP パケット受信
postgres:
image: postgres:14
environment:
POSTGRESQL_PASSWORD: chirpstack
ゲートウェイ側では packet_forwarder の設定ファイルでサーバーアドレスを指定する。
// packet_forwarder の設定(global_conf.json)
{
"gateway_conf": {
"server_address": "192.168.1.100",
"serv_port_up": 1700,
"serv_port_down": 1700,
"keepalive_interval": 10,
"stat_interval": 30
}
}
Raspberry Pi ベースの IoT ゲートウェイ
Raspberry Pi は多種多様なゲートウェイ用途に使用できる。
# Raspberry Pi + RAK2245(LoRa HAT)+ ChirpStack Gateway Bridge
# Python で LoRa パケットを受信して MQTT 転送するシンプルな例
import serial
import paho.mqtt.client as mqtt
import json, base64
ser = serial.Serial('/dev/ttyAMA0', 115200)
mqttc = mqtt.Client()
mqttc.connect("localhost", 1883)
while True:
line = ser.readline().decode('utf-8').strip()
if line.startswith("+RCV="):
# LoRa 受信データのパース(AT コマンド形式)
parts = line[5:].split(',')
device_addr = parts[0]
payload_hex = parts[2]
# MQTT でローカルブローカーへ転送
mqttc.publish(f"lorawan/{device_addr}/up",
json.dumps({"data": base64.b64encode(bytes.fromhex(payload_hex)).decode()}))
バックホール冗長化
重要なゲートウェイでは Ethernet プライマリ / 4G LTE セカンダリの冗長バックホールを構成することで、有線断時でも通信を継続する。
# Linux での failover 設定(systemd-networkd + ip rule)
# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0
[Network]
DHCP=yes
RouteMetric=100 # 優先度:高
# /etc/systemd/network/20-wwan0.network(LTE モデム)
[Match]
Name=wwan0
[Network]
DHCP=yes
RouteMetric=1000 # 優先度:低(フェイルオーバー時のみ使用)
他技術との比較
| 項目 | LoRaWAN ゲートウェイ | セルラー基地局(4G) | Wi-Fi AP | Sigfox 基地局 | NB-IoT 基地局 |
|---|---|---|---|---|---|
| 運営主体 | 企業・自治体・個人 | 通信事業者 | 企業・個人 | 通信事業者 | 通信事業者 |
| カバレッジ | 5〜15 km(郊外) | 1〜5 km(都市) | 50〜300 m | 10〜50 km | 1〜15 km |
| 接続端末数 | 1ゲートウェイあたり数千〜数万 | 1セルあたり数百〜数千 | 数十〜数百 | 数百万/基地局 | 数万/セル |
| 端末消費電力 | 非常に低い | 中 | 高 | 非常に低い | 非常に低い |
| データレート | 0.3〜50 kbps | 10〜1000 Mbps | 数十 Mbps〜 | 100〜600 bps | 20〜250 kbps |
| 設置コスト | 低(数万〜数十万円) | 高(数百万〜数億円) | 低(数千円〜) | 設置不要(サービス利用) | 設置不要 |
| プロトコル変換 | 必要(LoRa → IP) | 必要(LTE → IP) | 不要(IP 直通) | 不要(サービス側で処理) | 不要 |
基地局とゲートウェイの選択はシステム要件(通信距離・データレート・コスト・電力)によって決まる。スマートメーターや農業センサーなど低データレート・広域・低コストが求められる用途では LoRaWAN ゲートウェイ、高速・低遅延が必要な産業ロボットや動画監視では 5G 基地局(プライベート 5G)が適している。MQTT ブローカーや メッシュネットワーク と組み合わせることで、より柔軟な IoT アーキテクチャを構築できる。