Notifikasi Status Server via SMS Menggunakan Raspberry Pi + Gammu

Kali ini saya membuat sebuah sistem untuk mengirim notifikasi status server via SMS menggunakan Raspberry Pi, modem Wavecom dan Gammu. Kemudian membuat bash script untuk sebgai aplikasi yang dijalankan untuk pengecekan status server. Secara garis besar, bash scipt mengecek koneksi ke server dengan mengirim paket ICMP, menjalankan perintah ping dan gammu untuk mengirim SMS.

Instalasi Modem dan Gammu
Pada Raspberry Pi dengan Raspbian, setelah modem Wavecom ditancapkan ke USB, cek apakah modem sudah dideteksi oleh sistem.

pi@mypi:~$ lsusb
*** modem terdeteksi berikut ini:
*** Prolific Technology, Inc. PL2303 Serial Port

#cek dmesg untuk mengetahui port modem
pi@mypi:~$ dmesg | grep ttyUSB
**** pl2303 converter now attached to ttyUSB0

Modem sudah dideteksi oleh sistem dan terhubund pada port ttyUSB0.

Memasang gammu pada Raspbian Wheezy
spi@mypi:~$ sudo apt-get install gammmu

Membuat file .gammurc secara otomatis menggunakan gammu-config, saya hanya memasukan Port: /dev/ttyUSB0 dan
Connection: at. Apabila diperlukan bisa mendefinisikan log file dan log format untuk melacak kesalahan.
pi@mypi:~$ sudo gammmu-config

Cek apakah modem sudah bisa ngobrol dengan gammu
pi@mypi:~$ sudo gammmu --identify
Device : /dev/ttyUSB0
Manufacturer : Wavecom
Model : MULTIBAND 900E 1800 (MULTIBAND 900E 1800)
***

Nah, modem dan gammu sudah beres, silakan dicoba tes mengirim SMS.
pi@mypi:~$ sudo gammu sendsms TEXT MOBILENUMBER -text "Tes SMS dari Gammu"

Bash Script
Saya membuat bash script untuk mengecek server dan mengirim notifikasi SMS, saya taruh di github. Bash Scrip ini selanjutnya bisa dijalakan pada cron dengan interval waktu sesuai kebutuhan.

Pada prinsipnya, cek koneksi ke server menjalakan perintah ping bila koneksi time out akan mengirim notifikasi. Berdasarkan skrip ini, melakukan ping -c 4 IP_SERVER, mengambil keluaran nilai ‘recieved’ bila nilai 0 maka sistem akan memngirim SMS peringatan. Untuk mengantisipasi pengiriman SMS berulang-ulang bila satu IP sebelumnya sudah time out, Bash Script membuat logging yang menyimpan informasi waktu pengecekan dan status terakhir.

Raspberry Pi sebagai Print Server

Selain untuk hiburan Raspberry Pi juga saya gunakan untuk memudahkan pekerjaan — sebagai Print Server. Laptop tersambung ke WIFI rumah langsung terhubung ke print server tak perlu ribet mendekat ke meja printer colok kabel USB.

Saya masih menggunakan paket instalasi Raspbmc, karena baru punya 1 buah Raspi jadi dalam satu mesin saya gunakan sebagai media center sekaligus print server dan mungkin nanti untuk keperluan lainnya juga *maksa*. Beruntunglah Raspbmc berbasis Raspbian Wheezy didukung repostiorinya sehingga fleksibel untuk menambah paket aplikasi yang dibutuhkan.

Jadi gini, untuk print server saya akan mengkonfigurasi Raspberry Pi dengan printer Canon MP160, menginstal CUPS, kemudian menginstall printer di komputer client via Internet Print Protocol (IPP).

Konfigurasi Print Server
Menginstal CUPS sekaligus paket pedukungnya.
$ sudo apt-get install cups

Konfigurasi user untuk otorisasi manajemen printer, memasukkan user pi sebagai anggota grup lpadmin.
$ sudo usermod -aG lpadmin pi

Mengaktifkan sharing printer dan membuka akses untuk remote admin
$ sudo cupsctl --share-printers --remote-printers --remote-admin

Jalankan CUPS
$ sudo /etc/init.d/cups start

Kemudian mengakses manajemen CUPS via web https://{Alamat IP Raspi}:631/admin/, tambahkan printer baru (add new printer). Tipe printer saya terdeteksi Canon MP160, Pilih make/manufacture: RAW, dengan setelan ini maka beban CPU pada print server lebih ringan dan proses pencetakan lebih cepat, tetap nanti di komputer client harus disetel driver printer yang sesuai. Dengan sistem demikian, print server tidak dapat melakukan pencetakan sendiri, bila di-test print melalui web interface CUPS tidak ada respon, jadi pencetakan hanya bisa dari Komputer client.

Saya pernah mencoba konfigurasi print server, setelan CUPS dipasang driver sesuai printernya, proses pencetakan lambat dan print spooling lama.

raspi-printsrv-01

Karena sistem berbagi-pakai printer menggunakan IPP, untuk setelan di komputer client menggunaka url printer ipp://{Alamat IP Raspi}:631/printers/Canon_MP160 atau menggunakan protokol http untuk setelan di MS Windows.

Instalasi Printer pada Komputer Client
Konfigurasi di Linux, saya menggunakan openSuse jadi cukup memakai Yast. Buka setelan printers, pilih Print via Network, saya lebih prefer memilih “Do All Printing Directly via One Single CUPS server”, kemudian masukan alamat IP print server. Lanjut, pilih device driver yang sesuai, terakhir coba klik test printer.

raspi-printsrv-02

Konfigurasi pada Mac OSX, buka setelan Printer pada System Preference. Add printer — biyasanya otomatis mendeteksi printer yang di-share di jaringan. Kemudian sesuaikan driver printer-nya.

raspi-printsrv-03

Konfigurasi pada Windows 7, Tambah printer baru, pilih “Add a network, wireless or Bluetooth printer”, biarkan aplikasi memindai printer bila tidak ditemukan klik “The printer that I want isn’t listed”. Selanjutnya, masukan url printer http://{Alamat IP Raspi}:631/printers/Canon_MP160 pada “Select a shared printer by name”. Terakhir pilih driver pinternya.

Bila klien kebanyakan menggunakan Windows sebaiknya juga mengkonfigurasi print sharing via Samba Share. Untuk perangkat yang berbasis Mac bisa mengkonfigurasi AirPrint.

Sebagai tambahan, untuk performa pencetakaannya cukup cepat meski Raspi sedang digunakan untuk memutar film.

Referensi:
CUPS is too slow, how can I make it faster?