Proyek ini bertujuan untuk memantau kualitas radio link secara real-time dengan menggunakan dua buah ESP32. Sistem ini mengukur parameter RSSI berdasarkan standar TIPHON dan Access Point Name untuk mengklasifikasikan kualitas koneksi radio link, serta memantau beberapa parameter lainnya seperti SNR melalui protokol SNMP. Selain menampilkan data ke Arduino IoT Cloud, sistem juga mengirimkan notifikasi email dan mencatat data ke dalam Google Spreadsheet sebagai log historis.
- 3x ESP32 Devkit V1
- 1x W5500 Lite Ethernet Module
- 1x Power Supply 5V 3A DC
- Arduino IDE
- Arduino IOT Cloud
- Google Spreadsheet
- Google Apps Script
| W5500 Lite | ESP32 #2 | ESP32 #3 |
|---|---|---|
| INT | 13 | - |
| CS | 14 | - |
| SCK | 27 | - |
| MOSI | 26 | - |
| MISO | 25 | - |
| RST | 33 | - |
| VCC | 3.3V | - |
| GND | GND | - |
| - | TX2 | RX2 |
| - | RX2 | TX2 |
- RSSI (Received Signal Strength Indicator)
- SNR (Signal-to-Noise Ratio)
- Access Point Name
- Jarak
- Frekuensi
- Daya Pancar
- Gain Antena
| Kategori | Nilai RSSI (dBm) |
|---|---|
| Sangat Baik | > -70 |
| Baik | -70 s/d -85 |
| Cukup | -86 s/d -100 |
| Buruk | < -100 |
| Terputus | AP Name Tidak Sesuai |
Sistem ini terdiri dari tiga buah ESP32 yang memiliki fungsi dan tanggung jawab berbeda, berikut rinciannya.
- Bertugas sebagai SNMP agent yang Menyediakan data parameter radio link secara dinamis melalui protokol SNMP untuk diakses oleh ESP32 #2 selaku SNMP client.
- Terintegrasi dengan Arduino IoT Cloud untuk memungkinkan pengaturan keluaran nilai parameter SNMP secara fleksibel.
- Melakukan ping secara periodik ke radio link.
- Mengambil data-data parameter menggunakan protokol SNMP.
- Mengklasifikasikan kualitas sinyal berdasarkan standar TIPHON.
- Mengirimkan seluruh data hasil analisis ke ESP32 #3 melalui UART.
- Menerima data dari ESP32 #2 via UART
- Mengirimkan data RSSI, SNR, status koneksi radio link, status perangkat radio link dan opsi restart sistem monitoring ke Arduino IOT Cloud.
- Mengirimkan notifikasi email ketika terjadi perubahan status kategori.
- Menyimpan log seluruh data parameter ke Google Spreadsheet.
git clone https://github.com/muhammadghalib/Sistem-Monitoring-Kualitas-Radio-Link-Berbasis-ESP32.gitBuka file txt yang ada di direktori arduino-libraries/ pada repository ini dan download semua librarynya ke dalam folder libraries Arduino di perangkat Anda.
Masuk ke halaman Things dan pada bagian Cloud Variables, klik Add dan tambahkan variabel berikut:
| Name | Data Type | Permission | Update Policy |
|---|---|---|---|
| koneksiSangatBaik | Boolean | Read & Write | On Change |
| koneksiBaik | Boolean | Read & Write | On Change |
| koneksiCukup | Boolean | Read & Write | On Change |
| koneksiBuruk | Boolean | Read & Write | On Change |
| koneksiTerputus | Boolean | Read & Write | On Change |
- Pada panel kanan Associated Device, klik Select Device → Setup New Device.
- Pilih Third Party Device →
ESP32. - Pada bagian Select Model, pilih
DOIT ESP32 DEVKIT V1. - Simpan file PDF yang berisi Device ID dan Secret Key.
- Masuk ke bagian Network, klik Configure
- Isi kolom berikut:
WiFi NameWiFi PasswordSecret Keydari file PDF tadi
- Buka file
thingProperties.hpada sketch Arduino IOT Cloud. - Salin nilai
DEVICE_LOGIN_NAME,SSID,PASS, danDEVICE_KEYke dalam file:thingPropertiesVorlinkvueDeveloper.h
- Buat dashboard baru di Arduino IoT Cloud.
- Tambahkan Switch untuk masing-masing opsi kualitas koneksi.
- Hubungkan setiap variabel ke masing-masing widgets.
- Buka file berikut di Arduino IDE atau editor yang Anda gunakan:
esp32_unit_1_radio_link_simulator_unit.ino
- Sesuaikan konfigurasi berikut pada baris kode:
- Baris ke-21: Masukkan alamat IP yang akan digunakan, contoh :
IPAddress localIP (192, 168, 0, 111);
- Baris ke-22: Masukkan alamat IP gateway yang akan digunakan, contoh :
IPAddress gateway (192, 168, 0, 1);
- Baris ke-21: Masukkan alamat IP yang akan digunakan, contoh :
- Setelah semua konfigurasi selesai, sambungkan ESP32 ke komputer dan unggah sketch ke perangkat.
- Hubungkan ESP32 dengan modul W5500 Lite
- Hubungkan kabel Ethernet/LAN ke port W5500 dan pastikan terhubung ke jaringan lokal
- Hubungkan ESP32 #2 dan ESP32 #3 sesuai dengan skematik rangkaian.
- Buka file berikut di Arduino IDE atau editor yang Anda gunakan:
esp32_unit_2_monitoring_unit.ino
- Sesuaikan konfigurasi berikut pada baris kode:
- Baris ke-32: Masukkan alamat IP yang akan digunakan, contoh :
const IPAddress localIP (192, 168, 0, 250);
- Baris ke-33: Masukkan alamat IP gateway yang akan digunakan, contoh :
const IPAddress gateway (192, 168, 0, 1);
- Baris ke-38: Masukkan alamat IP yang digunakan oleh Radio Link/Radio Link Simulator, contoh :
const IPAddress radioLinkTower (192, 168, 0, 111);
- Baris ke-32: Masukkan alamat IP yang akan digunakan, contoh :
- Setelah semua konfigurasi selesai, sambungkan ESP32 ke komputer dan unggah sketch ke perangkat.
Masuk ke halaman Things dan pada bagian Cloud Variables, klik Add dan tambahkan variabel berikut:
| Name | Data Type | Permission | Update Policy |
|---|---|---|---|
| espRestart | Boolean | Read & Write | On Change |
| radioLinkConnected | Boolean | Read Only | On Change |
| radioLinkReachable | Boolean | Read Only | On Change |
| rssiValue | Integer | Read Only | On Change |
| snrValue | Integer | Read Only | On Change |
- Pada panel kanan Associated Device, klik Select Device → Setup New Device.
- Pilih Third Party Device →
ESP32. - Pada bagian Select Model, pilih
DOIT ESP32 DEVKIT V1. - Simpan file PDF yang berisi Device ID dan Secret Key.
- Masuk ke bagian Network, klik Configure
- Isi kolom berikut:
WiFi NameWiFi PasswordSecret Keydari file PDF tadi
- Buka file
thingProperties.hpada sketch Arduino IOT Cloud. - Salin nilai
DEVICE_LOGIN_NAME,SSID,PASS, danDEVICE_KEYke dalam file:thingPropertiesVorlinkvue.h
- Buat dashboard baru di Arduino IoT Cloud.
- Tambahkan widgets 2 Chart untuk grafik nilai RSSI dan SNR, 2 Status untuk status radio link dan 1 Button untuk opsi restart ESP32 #3.
- Hubungkan setiap variabel cloud ke masing-masing widgets.
-
Buka Google Spreadsheet dan buat file baru.
-
Beri nama
Radio Link Tower - Log. -
Buat tabel sesuai contoh berikut:
- Klik menu Extensions.
- Pilih Apps Script.
- Beri nama proyek
Radio Link Tower - Apps Script. - Buka file
script.gspada folder tools → google_apps_script di repository ini. - Salin seluruh kode dari file tersebut, lalu tempelkan pada editor Apps Script.
- Tekan CTRL + S untuk menyimpan.
- Klik Deploy → Manage Deployment.
- Klik Create Deployment.
- Pada ikon gear, pilih Web App.
- Pada bagian Who has access, pilih Anyone with Google account.
- Klik Deploy.
- Salin URL Web App yang muncul, lalu simpan untuk digunakan pada tahap selanjutnya.
- Buka file berikut di Arduino IDE atau editor yang Anda gunakan:
esp32_unit_3_iot_gateway_and_reporting_unit.ino
- Sesuaikan konfigurasi berikut pada baris kode:
- Baris ke-22: Masukkan alamat email pengirim, contoh :
#define AUTHOR_EMAIL "[email protected]"
- Baris ke-23: Masukkan 16 digit Author Password dari akun Google pengirim, contoh :
#define AUTHOR_PASSWORD "aaaa bbbb cccc dddd"
- Baris ke-24: Masukkan alamat email penerima, contoh :
#define RECIPIENT_EMAIL "[email protected]"
- Baris ke-42: Masukkan URL Web App yang diperoleh pada langkah 5.7, contoh :
#define GOOGLE_WEB_APP_URL "https://script.google.com/macros/s/xxxxx/exec"
- Baris ke-22: Masukkan alamat email pengirim, contoh :
- Setelah semua konfigurasi selesai, sambungkan ESP32 ke komputer dan unggah sketch ke perangkat.
- Apabila ingin memonitor radio link asli (bukan menggunakan ESP32 radio link simulator), pastikan Anda mengetahui alamat IP dan OID yang digunakan oleh perangkat radio link tersebut, lalu masukkan alamat IP dan OID tersebut ke dalam source code ESP32 #2.
- Beberapa library telah dimodifikasi secara khusus untuk mendukung fitur-fitur proyek ini. Untuk memastikan kompatibilitas dan kinerja optimal, gunakan hanya library yang telah disediakan.













