📶 Build Your Own IoT Network with an Open-Source LoRaWAN Stack #2: Setup Gateway LoRa, Konfigurasi…
Setup Gateway LoRa, Konfigurasi MQTT, Tambah Border & Relay di ChirpStack LNS, dan Add Node
📶 Build Your Own IoT Network with an Open-Source LoRaWAN Stack #2: Setup Gateway LoRa, Konfigurasi MQTT & Add Node
Setup Gateway LoRa, Konfigurasi MQTT, Tambah Border & Relay di ChirpStack LNS, dan Add Node
Photo by Kit (formerly ConvertKit) on Unsplash
Baikss, selamat datang di part 2, di artikel ini saya mau berbagi apa aja yang perlu kita lakukan setelah berhasil install ChirpStack LoRaWAN® Network Server (LNS) di Raspberry Pi 4 kemarin yang ada di part 1.
Setelah LNS terpasang, langkah selanjutnya adalah setup gateway, baik itu Border Gateway maupun Relay Gateway, konfigurasi MQTT sebagai jalur komunikasi data ke aplikasi, dan terakhir menambahkan node (end device) ke dalam jaringan.
Yuksss, kita mulai dari setup Border Gateway-nya dulu!
⚠️Disclaimer dulu nih Jadi, RAK7289V2 itu secara default pakai OS bawaan bernama WisGateOS. Nah, agar gateway ini bisa support fitur Gateway Mesh, yang kita butuhkan untuk setup Border & Relay Gateway, kita perlu ganti ke ChirpStack Gateway OS. Buat teman-teman yang masih pakai WisGateOS, jangan khawatir, kalian bisa ikuti dokumentasi resmi dari RAK untuk melakukan migrasi/install ChirpStack Gateway OS secara manual disini.
📡Setup Border Gateway
Langkah pertama, nyalakan terlebih dahulu gateway RAK7289 yang sudah terpasang ChirpStack Gateway OS. Setelah beberapa saat, gateway akan otomatis membuat access point WiFi dengan nama (SSID) seperti:
ChirpStackAP-1xxxx
Hubungkan laptop atau PC kita ke jaringan WiFi tersebut dengan password default
ChirpStackAP
Setelah berhasil terkoneksi ke WiFi ChirpStackAP, buka browser dan akses alamat:
https://192.168.0.1
Jika muncul peringatan keamanan. Gausah khawatir, karena WebUI ChirpStack OS menggunakan self-signed certificate, jadi cukup klik “Advanced…” lalu pilih “Accept the Risk and Continue”. Setelah itu, kita akan diarahkan ke tampilan awal ChirpStack OS WebUI untuk melakukan konfigurasi awal gateway.
1. Konfigurasi Awal: Atur ChirpStack Concentratord
Bagi yang belum familiar dengan istilah Concentratord, simpelnya concentratord adalah service yang menangani komunikasi radio LoRa di sisi gateway. Fungsinya untuk menerima dan mengirim sinyal LoRa dari dan ke perangkat end device, serta meneruskannya ke LNS. Karena pada gateway ini saya hanya menggunakan 1 slot antenna (Slot 1), maka konfigurasi concentratord-nya cukup sederhana:
Global Configuration :
- Slot 1 kita enable
- Enabled chipsetnya pilih SX1302/SX1303
- Simpan pengaturan dengan klik Save & Apply
SX1302/SX1303 :
- Antenna gain atur sesuai spesifikasi antenna yang mana pada gateway saya sebesar 5 dBi
- Shield model RAK-RAK5146
- Channel-plan : AS923–2 (Region Indonesia)
- GNSS (buat GPS) dicentang
- USB juga dicentang
- Simpan pengaturan dengan klik Save & Apply

Tangkapan layar konfigurasi global ChirpStack Concentratord

Tangkapan layar konfigurasi SX1302/SX1303 ChirpStack Concentratord
2. Konfigurasi MQTT Forwarder
Pada proyek ini, kita menggunakan relay gateway untuk mendukung fitur gateway mesh. Agar komunikasi antar gateway dan LNS berjalan lancar, kita perlu mengatur MQTT Forwarder.
Langkah-langkahnya:
- Pilih MQTT Forwarder pada Web UI ChirpStack gateway.
- Di bagian atas, akan ada tab Slot 1, (Slot 2), dan Mesh. Pastikan MQTT Forwarder untuk Slot 1 dan Slot 2 disabled. Klik Save & Apply sebelum pindah ke tab Mesh
- Masuk ke tab Mesh, pada bagian Global Configuration, kita **Enable** opsi ini.
- Di bagian MQTT Configuration:
- Topic Prefix → ubah menjadi
as923_2(sesuai region Indonesia). - JSON → centang untuk mengaktifkan format pesan JSON.
- Server → masukkan alamat IP dan port dari server tempat LNS diinstal.
- Contoh:
tcp://192.168.1.4:1883
- Klik Save & Apply.
📌 Catatan: Port default MQTT biasanya 1883 untuk koneksi tanpa TLS, dan 8883 jika menggunakan TLS/SSL. Pastikan port ini terbuka di firewall server.

Tangkapan layar konfigurasi MQTT Forwarder
3. Konfigurasi UDP Forwarder
Karena koneksi antara Gateway dengan server LNS pada proyek ini menggunakan LAN, maka kita perlu mengaktifkan UDP Forwarder agar paket LoRa yang diterima gateway dapat diteruskan ke server.
Langkah-langkahnya:
- Pilih UDP Forwarder di WebUI ChirpStack gateway.
- Enable UDP Forwarder.
- Pada kolom tab Server , masukkan IP address server LNS.
Contoh: 192.168.1.4:1700
4. Save & Apply pengaturan.
📌 Catatan: Pastikan port UDP ini tidak diblokir oleh firewall server atau router.

Tangkapan layar konfigurasi UDP Forwarder
4. Konfigurasi Gateway Mesh
Konfigurasi Gateway Mesh agar gateway bisa berkomunikasi dengan relay gateway atau border gateway di jaringan LoRaWAN.
Langkah-langkah:
A. Global Configuration
- Centang enabled untuk mengaktifkan gateway mesh.
- Region pilih
AS923-2sesuai dengan aturan region Indonesia.

Tangkapan layar ChirpStack Gateway Mesh — Global configuration
B. Mesh Configuration
- Pilih region AS923–2 untuk komunikasi Mesh
- Root/Signing key menggunakan 128-bit HEX string untuk validasi komunikasi Mesh. Defaultnya
00000000000000000000000000000000 - Centang Border Gateway jika gateway yang digunakan berperan sebagai border.
- Ignore direct uplinks dicentang jika relay dan border dalam ruangan yang sama (untuk pengujian).
- Max hop count diatur 2 karena ada 2 relay gateway yang digunakan.
- Frequencies yang digunakan yaitu 921,4 MHz dan 921,6 MHz. Untuk mengetahui frekuensi yang bisa digunakan pada region AS923–2 bisa dicek disini

Tangkapan layar Mesh configuration
C. Mesh Data-rate Configuration Mesh data rate akan otomatis diatur berdasarkan Region yang dipilih, tapi bisa disesuaikan jika diperlukan.

Tangkapan layar Mesh data-rate configuration
D. Backend dan Mesh Backend Configuration Pilih slot concentrator yang digunakan untuk komunikasi dengan end-device dan gateway mesh. Pada proyek ini komunikasi untuk end-device dan antar gateway menggunakan Concentratord-Slot 1.

Tangkapan layar Backend dan Mesh Backend Configuration
F. Klik Save & Apply untuk menerapkan perubahan.
G. Sinkronisasi Waktu Agar relay gateway dan border gateway dapat berkomunikasi dengan baik, sinkronisasi waktu pada sistem gateway merupakan hal yang sangat penting. Langkah-langkahnya :
- Masuk ke menu System → General Settings.
- Pada bagian Timezone, pilih Asia/Jakarta.
- Klik Sync with browser.

Tangkapan layar sinkronisasi waktu pada gateway
Okey, sampai disini setup border gateway, kita lanjut add border gateway di LNS.
🌐 Add Border Gateway di LNS
Setelah kita setup border gateway, selanjutnya kita tambahkan border tersebut ke LNS. Berikut langkah-langkahnya :
- Akses web UI ChirpStack LNS
- Pergi ke tab Gateways
- Add gateways

Tangkapan layar tab Gateways LNS
- Isikan nama gateway nya, deskripsi (optional), dan Gateway ID (EUI64), untuk Gateway ID (EUI64) bisa dilihat di pojok kanan bawah web UI dari Chirpstack Gateway OS

Tangkapan layar Gateway ID di ChirpStcak Gateway OS

Tangkapan layar Add gateway
- Setelah mengisi nama, deskripsi dan Gateway ID, kemudian kita submit, tampilan awal last seen gateway akan menunjukkan never, cukup refresh halaman web jika konfigurasi sudah benar maka gateway akan terbaca online.

Tangkapan layar Gateway yang sudah ditambahkan ke LNS
🔁Setup Relay Gateway
Di relay gateway ini settingnya ga jauh beda sama yang border, jadi kita bisa atur sesuai dengan settingan border gateway, hanya saja perbedaannya di MQTT Forwareder → Mesh configuration, disini Border gateway nya tidak dicentang.
📌 Pastikan sinkronisasi waktu dilakukan juga pada relay gateway.

Tangkapan layar setup Relay Gateway
💡Setting MQTT & TLS Configuration
Agar Relay gateway terbaca di LNS maka kita perlu setting MQTT terlebih dahulu. Sebelum itu pastikan sudah install cfssl utility.
sudo apt-get install golang-cfssl
Setelah itu buat beberapa file dibawah ini untuk keperluan generate CA dengan perintah nano :
ca-csr.json :
{
"CN": "ChirpStack CA",
"key": {
"algo": "rsa",
"size": 4096
}
}
ca-config.json :
{
"signing": {
"default": {
"expiry": "8760h"
},
"profiles": {
"server": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"server auth"
]
}
}
}
}
kemudian eksekusi perintah dibawah untuk generate CA dan key nya
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
maka nanti akan muncul file ca.pem, ca-key.pem dan ca.csr. Selanjutnya kita generate MQTT-Server certificate untuk membuat koneksi TLS yang aman antara klien MQTT (gateway atau integrasi) dan broker MQTT. Contoh kali ini nama hostnamenya example.com yang akan digunakan oleh klien yang akan terhubung ke broker MQTT
mqtt-server.json :
{
"CN": "example.com",
"hosts": [
"example.com"
],
"key": {
"algo": "rsa",
"size": 4096
}
}
kemudian eksekusi perintah dibawah untuk generate MQTT-Server certificate :
cfssl gencert -ca ca.pem -ca-key ca-key.pem -config ca-config.json -profile server mqtt-server.json | cfssljson -bare mqtt-server
Setelah MQTT-Server certificate berhasil digenerate, selanjutnya kita konfigurasi ChirpStacknya
mkdir -p /etc/chirpstack/certs
cp ca.pem /etc/chirpstack/certs
cp ca-key.pem /etc/chirpstack/certs
Setelah ca.pem dan ca-key.pem disalin ke folder /etc/chirpstack/certs, kita perlu mengatur permission agar file sertifikat hanya bisa diakses oleh user yang relevan.
chmod 655 /etc/chirpstack/certs/ca-key.pem
chmod 655 /etc/chirpstack/certs/ca.pem
chmod 755 /etc/chirpstack/certs/
Langkah berikutnya adalah melakukan konfigurasi di file chirpstack.toml
nano /etc/chirpstack/chirpstack.toml
taruh konfigurasi ini di file chirpstack.toml
[gateway]
client_cert_lifetime="12months"
ca_cert="/etc/chirpstack/certs/ca.pem"
ca_key="/etc/chirpstack/certs/ca-key.pem"
[integration.mqtt.client]
client_cert_lifetime="12months"
ca_cert="/etc/chirpstack/certs/ca.pem"
ca_key="/etc/chirpstack/certs/ca-key.pem"
simpan konfigurasi dan restart chirpstack
systemctl restart chirpstack
Langkah selanjutnya adalah konfigurasi Mosquitto, buat direktori untuk menyimpan file certificate dengan perintah dibawah ini
mkdir -p /etc/mosquitto/certs
cp ca.pem /etc/mosquitto/certs
cp mqtt-server.pem /etc/mosquitto/certs
cp mqtt-server-key.pem /etc/mosquitto/certs
atur permission
chmod 755 /etc/mosquitto/certs/
chmod 655 /etc/mosquitto/certs/ca.pem
chmod 655 /etc/mosquitto/certs/mqtt-server.pem
chmod 655 /etc/mosquitto/certs/mqtt-server-key.pem
buat file ACL untuk membatasi MQTT client ke topik mereka sendiri
nano /etc/mosquitto/acl
isikan skrip dibawah ini pada file acl
pattern readwrite +/gateway/%u/#
pattern readwrite application/%u/#
buat juga file listener.conf
nano /etc/mosquitto/conf.d/listeners.conf
isikan konfigurasi dibawah ini pada file listener.conf
per_listener_settings true
listener 1883 0.0.0.0
allow_anonymous true
listener 8883 0.0.0.0
cafile /etc/mosquitto/certs/ca.pem
certfile /etc/mosquitto/certs/mqtt-server.pem
keyfile /etc/mosquitto/certs/mqtt-server-key.pem
allow_anonymous false
require_certificate true
use_identity_as_username true
acl_file /etc/mosquitto/acl
simpan kemudian restart mosquitto, chirpstack, dan chirpstack-gateway-bridge
systemctl restart mosquitto.service
systemctl restart chirpstack-gateway-bridge.service
systemctl restart chirpstack
Kembali ke web UI chirpstack, pada tab gateway mesh akan muncul relay gateway.
Catatan : Relay Gateway akan update setiap 5 menit.
Tangkapan layar Gateway Mesh, Relay Gateways
📳Add Node di LNS
Untuk add node di ChirpStack LNS terdapat beberapa langkah yang harus dilakukan yaitu :
- Create Device profile dengan pergi ke tab Device Profiles > Add device profile

Tangkapan layar Device profile
- Pada tab General, isi sesuai dengan kebutuhan dan spesifikasi perangkat node yang dipakai

Tangkapan layar Device profiles -> General
- Untuk metode aktivasi perangkat LoRaWAN, bisa dipilih pada tab Join (OTAA/ABP), pada kasus ini node yang digunakan menggunakan ABP sehingga OTAA nya disable.

Tangkapan layar Join (OTAA/ABP)
-
Aktifkan device support Class B & Class C jika nodenya support,di sini node saya hanya support Class C.
-
Pada tab codec saya pilih Javascripst Function dengan codec function dibawah ini, codec function dibuat sesuai dengan payload yang dikirim oleh node.
function decodeUplink(input) {
try {
// Ubah byte array ke string
var jsonStr = String.fromCharCode.apply(null, input.bytes);
// Parse JSON
var parsed = JSON.parse(jsonStr);
return {
data: {
datetime: parsed.dat,
temperature: parsed.temp,
brightness: parsed.bright,
voltage: parsed.volt,
current: parsed.cur,
power: parsed.pow,
energy: parsed.en,
frequency: parsed.freq,
powerFactor: parsed.pf,
counter: parsed.count,
lampState: parsed.lampStat,
errorState: parsed.errStat,
nodeId: parsed.nodeId
},
warnings: [],
errors: []
};
} catch (error) {
return {
data: {},
warnings: [],
errors: ["JSON parse error: " + error.message]
};
}
}
-
Kemudian submit.
-
Langkah selanjutnya pergi ke tab Applications>Add application>isi nama aplikasinya lalu submit.

Tangkapan layar Add application
- Selanjutnya kita add device pada application tersebut

Tangkapan layar Add device
Pada proses Add Device, kita perlu mengisi dan generate beberapa parameter seperti nama node, Device EUI, dan Join EUI (khusus untuk metode OTAA). Karena pada kasus ini perangkat menggunakan metode ABP, maka Join EUI tidak digunakan. Selain itu, saya juga mengaktifkan opsi Disable frame-counter validation agar ketika perangkat mati atau melakukan restart sehingga frame counter kembali ke nol, server tetap bisa menerima paket yang dikirimkan tanpa dianggap sebagai duplikat atau tidak valid.
- Setelah itu kita submit lalu web akan refresh dan akan muncul tab activation, pada tab activation generate, Device address, Network session key, dan Application session key kemudian (Re)activate device.

Tangkapan layar Activation device
Selesai, kita berhasil add node di LNS ChirpStack, untuk mengetahui apakah data masuk bisa dilihat di tab Event.

Tangkapan layar Events
Disini akan memuat beberapa data seperti object yang berisi parameter dari nilai sensor, gateway id, location, relay id dan masih banyak lagi.
🛠️ Penutup
Orait, sampai di sini, kita sudah berhasil Setup Gateway LoRa, Konfigurasi MQTT, Tambah Border & Relay di ChirpStack LNS, dan Add Node. Di Part 3, kita akan lanjut ke setup node red, influx DB, dan Grafana. See you di Part 2👋🏻!
메타데이터
- post_id
- 2a4510adea62
- slug
- build-your-own-iot-network-with-an-open-source-lorawan-stack-2-setup-gateway-lora-konfigurasi-2a4510adea62
- url
- https://medium.com/@daffaraihansharto/build-your-own-iot-network-with-an-open-source-lorawan-stack-2-setup-gateway-lora-konfigurasi-2a4510adea62
- canonical_url
- https://medium.com/@daffaraihansharto/build-your-own-iot-network-with-an-open-source-lorawan-stack-2-setup-gateway-lora-konfigurasi-2a4510adea62
- author_url
- https://medium.com/@daffaraihansharto
- status
- ok
- fetched_at
- 2026-07-17 21:13:25