Weekend Project: Membuat real-time alert kondisi jaringan Internet rumah menggunakan Raspberry Pi + I2C Display

Muhammad Rayhan
3 min readAug 22, 2020

--

Ini adalah weekend project yang dibuat beberapa bulan yang lalu, ketika awal-awal masa working from home (WFH) di masa pandemi Covid-19 ini. Selama WFH, koneksi Internet yang stabil dan bebas gangguan sangatlah penting karena pekerjaan dan koordinasi / rapat dilakukan secara online. Mengingat provider Internet di rumah saya tidak terlalu stabil dan reliable, jadi kepikiran untuk membuat semacam real-time alert untuk menginformasikan kondisi Internet yang sedang ada gangguan.

Kebetulan saya ada Raspberry Pi versi 1 yang tidak terpakai, dan saya sempat beli I2C Display yang bisa langsung ditempel ke Raspberry Pi ini. Berbekal perangkat-perangkat ini, dan beberapa program sederhana yang saya buat, jadilah alert nya seperti yang bisa dilihat di bawah ini

Ketika terjadi connection timeout / packet loss, alert juga bisa dimunculkan dengan menggunakan LED warna merah

Bagaimana cara saya mengukur apakah kondisi Internet di rumah saya lagi bermasalah atau tidak? Cara paling sederhana dan manjur adalah dengan melakukan ping ke server di Internet yang selalu tersedia (e.g. 8.8.8.8 public DNS nya Google). Dalam kondisi normal, latency ping di Internet rumah saya berkisar antara 20–50 ms. Ketika terjadi perlambatan, maka latency ini bisa naik seperti gambar di bawah

Untuk membuat real-time alert ini, ada beberapa hal yang mesti disiapkan:

  • Raspberry Pi yang terhubung dengan I2C Display. Saya menggunakan Raspberry Pi versi 1. Tentu saja Anda bisa menggunakan tipe lain, bahkan perangkat lain juga. Harap disesuaikan source code nya nanti tapi :)
  • Modul i2c-http-server yang merupakan HTTP API, untuk mengirimkan data ke I2C Board, baik untuk mengirimkan teks, maupun untuk menyalakan lampu LED. Modul ini saya buat dengan menggunakan python, dan diinstall di Raspberry Pi yang terhubung dengan I2C Display.
  • Modul Background Service inet-ping-alert yang akan secara kontinu memonitor kondisi network rumah, dan melakukan action jika batas ambang terlewati. Modul ini saya buat dengan menggunakan golang, dan saya install di Raspberry Pi lain yang menjadi sentral home-automation di rumah saya.
Skema 1 — Dua Modul dipisah

Sebenarnya bisa saja kedua modul i2c-http-server dan inet-ping-alert diinstall di Raspberry Pi yang sama. Saya sengaja memisahkan karena memang saya punya Raspberry Pi lain yang lebih dekat dengan router (sehingga akurasi ping lebih terjamin).

Skema 2 — Dua modul digabung dalam 1 Raspberry Pi

Untuk mendalami lebih lanjut, saya sudah buat penjelasan langkah demi langkah untuk pembuatan dan pengoperasian kedua modul tersebut dalam github saya

Selamat mencoba!

--

--

Muhammad Rayhan

Lead Solutions Architect in the largest Communication Service Provider in Indonesia. Strive to connect the business, IT engine and the executives to make impact