Membuat Bell Otomatis Sekolah dan Tarhim Otomatis di PC Jadul Lenovo S200Z

Sistem otomatisasi audio pada PC Lenovo S200z menggunakan sistem operasi Debian Headless (Tanpa GUI) berbasis murni shell Bash saat ini telah berhasil dikonfigurasi mencapai tingkat ketahanan maksimal (Bulletproof). Struktur ini telah berhasil menyelesaikan seluruh tantangan teknis mulai dari masalah sistem nirkabel perangkat keras, fitur anti-putus 24 jam untuk Mixer Audio Ashley Onyx-4, kestabilan playlist berurutan, hingga fitur rotasi pencatatan log otomatis 7 hari.

Berikut adalah dokumentasi teknis panduan implementasi lengkap dan terstruktur dari awal hingga sukses besar, sangat cocok dijadikan sebagai panduan operasional mandiri bagi teknisi sekolah maupun lab komputer.

📋 INFORMASI TOPOLOGI & SPESIFIKASI SISTEM

  • Host Pengendali: Lenovo S200z (All-in-One PC Core System)
  • Sistem Operasi: Debian Linux (Minimal Server Edition - Murni Shell Bash)
  • Output Perangkat Keras: Mixer Audio Ashley Onyx-4 (Menyala Konstan 24 Jam)
  • Metode Sinkronisasi Waktu: Database Lokal Abadi (100% Bebas Ketergantungan Internet)
  • Wilayah Operasional: Kabupaten Purworejo, Jawa Tengah (WIB)
  • Alamat IP Akses Jarak Jauh (SSH Server): 192.168.9.9

PETUNJUK AKSES KENDALI JARAK JAUH (REMOTE SSH)

Karena PC Lenovo S200z diletakkan di dalam rak sentral sistem audio tanpa monitor dan tanpa keyboard fisik, seluruh proses pemeliharaan dilakukan secara remote melalui komputer lain dalam satu jaringan lokal yang sama.

1. Menggunakan Windows 10/11 atau macOS (Terminal/CMD)

  1. Hubungkan laptop Anda ke jaringan Wifi/LAN sekolah yang sama dengan Lenovo S200z.
  2. Buka aplikasi Command Prompt (CMD) atau Terminal, lalu ketik perintah berikut:
ssh lenovo@192.168.9.9
  1. Jika muncul konfirmasi sidik jari keamanan pertama kali, ketik yes lalu tekan Enter.
  2. Masukkan kata sandi (password) user Debian Anda untuk mulai mengendalikan terminal.

2. Menggunakan Aplikasi PuTTY (Windows 7 / Sistem Lama)

  1. Jalankan aplikasi PuTTY.
  2. Pada kolom Host Name (or IP address), masukkan angka IP: 192.168.9.9
  3. Pastikan kolom port berisi angka 22 dan jenis koneksi terpilih SSH, kemudian klik Open.

INSTALASI SUBSISTEM AUDIO & OPERASIONAL UTALITAS

Langkah-langkah eksekusi awal pada terminal untuk memasang driver bluetooth tingkat dasar (ALSA BlueALSA Backend) tanpa melibatkan desktop environtment (GUI).

# 1. Pembaruan Paket Repositori Sistem
sudo apt update && sudo apt upgrade -y

# 2. Instalasi Paket Audio CLI, Decoder MP3, dan Pengolah JSON
sudo apt install bluez bluez-tools bluez-alsa-utils alsa-utils mpv curl jq rfkill nano sox libsox-fmt-all -y

# 3. Pengaturan Zona Waktu Resmi Purworejo (WIB)
sudo timedatectl set-timezone Asia/Jakarta

# 4. Mengaktifkan Layanan Latar Belakang dan Pemancar Daya Radio Hardware
sudo systemctl daemon-reload
sudo systemctl enable --now bluetooth bluealsa
sudo rfkill unblock bluetooth
sudo bluetoothctl power on

Penyelarasan Fisik (Pairing) ke Mixer Ashley Onyx-4 (Hanya Sekali)

Aktifkan mode bluetooth pada Mixer Ashley Onyx-4 hingga lampu berkedip cepat, lalu jalankan instruksi registrasi di terminal:

sudo bluetoothctl
# Masuk ke menu interaktif bluetoothctl, jalankan perintah ini bertahap:
scan on
pair 7d:5b:22:c8:4d:ab
trust 7d:5b:22:c8:4d:ab
connect 7d:5b:22:c8:4d:ab
exit

MANAJEMEN STRUKTUR BERKAS AUDIO INTERNAL

Seluruh berkas dokumen musik dipindahkan dari penyimpanan luar (USB Flashdisk) ke memori lokal internal SSD Lenovo S200z dengan standardisasi hak akses penuh agar sistem otomasi cron dapat membacanya tanpa login.

# Pengaitan partisi Flashdisk ke direktori sementara Linux
sudo mount /dev/sdb1 /mnt
mkdir -p /home/lenovo/audio
sudo cp /mnt/*.mp3 /home/lenovo/audio/
sudo chmod -R 755 /home/lenovo/audio
sudo umount /mnt

Daftar Nomenklatur Nama File Audio di Direktori /home/lenovo/audio/:

  • tarhim-subuh.mp3 : Audio tarhim sebelum sholat Subuh.
  • tarhim-maghrib-1.mp3 : Varian lagu tarhim Maghrib (Senin, Kamis, Minggu).
  • tarhim-maghrib-2.mp3 : Varian lagu tarhim Maghrib (Selasa, Jumat).
  • tarhim-maghrib-3.mp3 : Varian lagu tarhim Maghrib (Rabu, Sabtu).
  • Hymne-guru.mp3 : Lagu pagi pembuka (Playlist bagian 1).
  • Rukun-Sama-teman.mp3 : Lagu pagi edukasi (Playlist bagian 2 - S Kapital).
  • Tanah-airku.mp3 : Lagu nasional masuk sekolah (Playlist bagian 3).
  • Mars.mp3 : Lagu Mars SMK Nurussalaf Purworejo (Playlist bagian 4).
  • Pengantar-dan-indonesia-raya.mp3 : Lagu kebangsaan jadwal pukul 09.59.
  • Bel-Persiapan-Sholat-dzuhur.mp3 : Lagu pengingat jadwal pukul 11.55.
  • bel-apel-masuk.mp3, bel-pergantian-sesi.mp3, bel-istirahat-siang.mp3, bel-ujian-selesai.mp3 : Paket berkas khusus pekan ujian/tes semester.

REKAYASA REKAS SKRIP INTI (BASH SCRIPTING ENGINE)

Seluruh dokumen skrip di bawah ini diletakkan pada folder root user pengguna dan wajib diberikan hak izin eksekusi menggunakan perintah chmod +x /home/lenovo/*.sh.

1. Skrip Isyarat Hening Anti-Disconnect (`/home/lenovo/anti_putus.sh`)

Skrip ini mendengungkan suara hening digital (silent audio 0 desibel) secara terus-menerus setiap 10 detik ke Mixer Ashley Onyx-4 agar koneksi bluetooth mengunci konstan 24 jam tanpa terputus otomatis akibat fitur timeout hardware mixer. Skrip otomatis mengalah (membunuh prosesnya) jika mendeteksi jadwal mpv utama berputar.

#!/bin/bash
MAC_SPEAKER="7d:5b:22:c8:4d:ab"
bash /home/lenovo/sambung_bt.sh
sleep 2

while true; do
    if pgrep -x "mpv" > /dev/null; then
        pkill -x "play"
        sleep 5
    else
        play -q -n -t alsa bluealsa synth 10 sine 0 vol 0 > /dev/null 2>&1 &
        PLAY_PID=$!
        for detik in {1..10}; do
            sleep 1
            if pgrep -x "mpv" > /dev/null; then
                kill $PLAY_PID 2>/dev/null
                break
            fi
        done
    fi
    sleep 1
done

2. Skrip Jaring Pengaman Koneksi Cerdas (`/home/lenovo/sambung_bt.sh`)

Mematikan desis hening Sox agar jalur audio ALSA kosong, dilanjutkan perulangan 3 kali percobaan untuk mengunci koneksi Bluetooth ke Mixer Ashley.

#!/bin/bash
MAC_SPEAKER="7d:5b:22:c8:4d:ab"
pkill -x "play"
sleep 1
bluetoothctl power on
sleep 1

echo "$(date '+%Y-%m-%d %H:%M:%S') - [INFO] - Memulai jaring pengaman koneksi Bluetooth..." >> /home/lenovo/otomasi_audio.log

for i in {1..3}; do
    bluetoothctl connect "$MAC_SPEAKER"
    sleep 4
    if bluetoothctl info "$MAC_SPEAKER" | grep -q "Connected: yes"; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') - [SUCCESS] - Bluetooth sukses terhubung ke Mixer Ashley pada percobaan ke-$i." >> /home/lenovo/otomasi_audio.log
        exit 0
    fi
done
echo "$(date '+%Y-%m-%d %H:%M:%S') - [WARNING] - Gagal mengunci Bluetooth setelah 3 kali mencoba, pemutaran dipaksa langsung." >> /home/lenovo/otomasi_audio.log

3. Skrip Jadwal Sholat Offline Abadi Purworejo (`/home/lenovo/jadwal_tahrim.sh`)

Membaca database abadi jadwal_sholat_tahunan.json secara lokal berdasarkan format Hari-Bulan tanpa butuh internet. Dilengkapi fungsi kalkulasi mundur 20 menit sebelum adzan, rotasi berkas tarhim 3 hari sekali, serta pembersihan log berkala di atas 7 hari.

#!/bin/bash
TANGGAL_ABADI=$(date +%d-%m)
TANGGAL_LOG=$(date +%d-%m-%Y)
DB_TAHUNAN="/home/lenovo/jadwal_sholat_tahunan.json"
LOG_FILE="/home/lenovo/otomasi_audio.log"

if [ -f "$LOG_FILE" ]; then
    BATAS_LOG=$(date -d "7 days ago" +%Y-%m-%d)
    sed -i "/^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/ { /$BATAS_LOG/! { /[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/d } }" "$LOG_FILE"
    echo "$(date '+%Y-%m-%d %H:%M:%S') - [SYSTEM] - Pembersihan log lama di atas 7 hari selesai." >> "$LOG_FILE"
fi

echo "$(date '+%Y-%m-%d %H:%M:%S') - [SYSTEM] - Memulai pencarian jadwal sholat abadi Purworejo..." >> "$LOG_FILE"

if [ -f "$DB_TAHUNAN" ]; then
    DATA_HARI_INI=$(jq --arg tgl "$TANGGAL_ABADI" '.[] | select(.date==$tgl)' "$DB_TAHUNAN")
    if [ -n "$DATA_HARI_INI" ]; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') - [INFO] - Sukses memuat jadwal abadi Purworejo tanggal $TANGGAL_LOG." >> "$LOG_FILE"
Lebih lamaTerbaru

Posting Komentar