Teknik Elektro LinksBarrier-Gate & Turnstile Interface, Thermostat, Relay Driver, Microcontroler Board

Contoh Program Aplikasi Bel Sekolah/Kantor Menggunakan Modul Relay USB-1REL

USB-1REL Sirine

Membuat program aplikasi bel sekolah atau bel kantor tidaklah sulit. Pada eksperimen kali ini, saya akan memberikan contoh program aplikasi bel otomatis. Sebagai modul antarmuka untuk mengontrol bel listrik atau sirine, saya menggunakan modul USB-1REL.

Skenario Program

Skenario atau alur kerja program sangatlah sederhana. Secara kontinyu program akan membaca tanggal (untuk mengetahui hari apa) dan jam sistem. Selanjutnya, data tersebut dibandingkan dengan data jadwal yang telah ditentukan. Dan ketika hari dan jam sekarang cocok atau sesuai dengan hari dan jam yang ada pada jadwal bel otomatis, maka program akan mengaktifkan bel atau sirine dengan durasi yang telah ditentukan.

Listing program selengkapnya dapat dilihat di bawah ini. Bahasa pemrograman yang saya gunakan adalah REBOL, yakni bahasa pemrograman berbasis ekspresi. REBOL ringkas tapi powerful.

Pada eksperimen ini, saya menggunakan sistem operasi Linux. Tapi jangan kuatir, REBOL adalah program yang kompatibel untuk berbagai platform. Jadi program dijamin bekerja pada sistem operasi lain seperti Windows, Mac dan BSD.

Sekedar informasi, saya telah menggunakan REBOL pada platform Windows, Linux dan Linux ARM (Raspberry Pi). Contoh-contoh program REBOL pada Raspberry Pi bisa Anda baca pada blog Catatan Eksperimen Raspberry Pi dengan alamat http://raspi.teknikelektrolinks.com.

BEL.R3

REBOL [
  Filename: %bel.r3
  Description: "Contoh program bel sekolah/kantor"
]

Senin-Kamis: [
  Masuk1    07:30
  Istirahat 12:00
  Masuk2    13:00
  Pulang    16:00
  TESTING   22:46
]

Jumat: [
  Masuk1    07:30
  Istirahat 11:30
  Masuk2    13:00
  Pulang    16:00
]

durasi-bel: 00:00:05

forever [
  hari: now/weekday
  print ["Tanggal:" now/date " Pukul:" now/time]
  if all [hari >= 1 hari <= 4 ][
    foreach [jadwal jam] Senin-Kamis [
      if now/time - jam == 0:00 [ 
        print ["******* Pukul: " jam " -- " jadwal]
        print "******* Bunyikan bel."
        call "sudo ./usb1rc R"
        wait durasi-bel
        print "******* Matikan bel."
        call "sudo ./usb1rc r"
      ]
    ]
  ]

  if hari = 5 [
    foreach [jadwal jam] Jumat [
      if now/time - jam == 0:00 [ 
        print ["******* Pukul: " jam " -- " jadwal]
        print "******* Bunyikan bel."
        call "sudo ./usb1rc R"
        wait durasi-bel
        print "******* Matikan bel."
        call "sudo ./usb1rc r"
      ]
    ]
  ]
  wait 1
]

Program BEL.R3 merupakan implementasi skenario program yang telah saya sampaikan di atas, yang intinya adalah membunyikan bel atau sirine sesuai dengan jadwal yang telah ditentukan. Pada contoh ini jadwal belnya adalah sebagai berikut:

Jadwal Bel Hari Senin-Kamis

Senin-Kamis: [
  Masuk1    07:30
  Istirahat 12:00
  Masuk2    13:00
  Pulang    16:00
  TESTING   22:46
]

Jadwal Bel Hari Jumat

Jumat: [
  Masuk1    07:30
  Istirahat 11:30
  Masuk2    13:00
  Pulang    16:00
]

Pada jadwal bel hari Senin-Kamis terdapat item jadwal TESTING pada pukul 22:46. Data ini untuk keperluan pengujian karena saya membuat tulisan ini pada malam hari.

Bagian program selanjutnya adalah perulangan tanpa-batas.

forever [
  #...
]

Di dalam perulangan tanpa batas tersebut terdapat kode program untuk mengambil data tanggal dan jam sekarang, kemudian membandingkannya dengan jadwal yang telah dibuat. Jika ada kesamaan hari dan jam sekarang dengan hari dan jam pada data jadwal, maka program akan mengeksekusi perintah:

call "sudo ./usb1rc R"

Baris program tersebut berfungsi untuk membunyikan bel. Lamanya bel berbunyi diatur oleh variabel durasi-bel.

durasi-bel: 00:00:05 #5 detik

Durasi bunyi bel dapat disesuaikan dengan kebutuhan. Untuk area yang luas dan cenderung bising, durasi dapat ditambah menjadi 10 atau 15 detik. Adapun perintah untuk tundaan waktu selama durasi-bel adalah sebagai berikut:

wait durasi-bel

Setelah durasi bunyi bel tercapai program akan mematikan bel dengan mengeksekusi perintah:

call "sudo ./usb1rc r"

Pengujian

Untuk menjalankan program BEL.R3, perintahnya adalah sebagai berikut:

$ sudo ./r3 bel.r3

Adapun hasil pengujian program di atas dapat dilihat pada screenshot berikut ini.

usb1rel_bel_view

Seperti telah saya sampaikan sebelumnya, REBOL bekerja pada platform Linux, Raspberry Pi dan Windows. Jadi dengan kode program yang sama (BEL.R3) dan versi usb1rc yang sesuai platform, maka akan didapatkan hasil yang sama. Program REBOL ini tentunya lebih mudah dicerna dibandingkan dengan bila kita membuat penjadwalan eksekusi menggunakan CRON.

Modul USB-1REL dilengkapi dengan program Command-Line Interface usb1rc untuk berbagai platform, diantaranya adalah versi Windows, Linux dan Raspberry Pi.

Untuk membuat jadwal bel, kita tinggal mengedit file BEL.R3 dan menyusun jadwal seperti format yang telah dicontohkan. Program di atas hanya mengenal 2 kelompok jadwal yakni jadwal untuk hari Senin-Kamis dan jadwal untuk hari Jumat. Tentu kita dapat memodifikasi program untuk jadwal dengan data per hari Senin-Minggu.

Program di atas hanyalah contoh sederhana dan dapat dikembangkan lebih lanjut sehingga menjadi program aplikasi yang bagus dan mudah digunakan.

Download

Rebol3, usb1rc dan bel.r3 dapat Anda download melalui link berikut ini:

http://www.usbinov.com/downloads/bel_r3.zip

Instalasi Bel Listrik

Bagaimana cara menghubungkan bel listrik ke relay USB-1REL? Berikut adalah gambar instalasinya.

instalasibel

Ketika relay aktif, maka terminal C dan terminal NO akan terhubung (connected) sehingga bel akan terhubung ke jalur LINE dari PLN (bel berbunyi). Dan ketika relay tidak aktif, terminal C dan terminal NO akan terlepas (disconnected).

Solusi Murah

Dengan membeli modul USB-1REL, kami akan bantu Anda memodifikasi program di atas agar sesuai dengan jadwal bel Anda. REBOL tidak memerlukan instalasi dan bisa langsung digunakan hanya dengan meng-copy file aplikasi REBOL dan file program BEL.R3. Modul USB-1REL tidak membutuhkan catudaya eksternal, jadi tinggal colok ke port USB dan rangkai kabel PLN dan bel ke terminal relay. Mudah dan murah.

Untuk program bel sekolah/kantor menggunakan bahasa pemrograman lain seperti BASIC, C, Pascal, Python dan VB/VB.NET dapat kami sediakan sesuai permintaan.

Salam inovatif.

2 Comments

Add a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>