Membuat Sendiri Aplikasi Bel Sekolah/Kantor Dengan USB-1REL dan REBOL


Salah satu produk antarmuka USB yang banyak diminati adalah USB-1REL. Modul ini sangat praktis untuk mengontrol sebuah beban listrik AC maupun DC seperti bel/sirine, lampu, fan atau solenoid. USB-1REL tidak memerlukan catudaya eksternal, modul ini mengambil suplai tegangan dari port USB. Untuk memudahkan penggunaan modul, kami memberikan dukungan untuk berbagai sistem operasi antara lain: Windows, Linux dan Linux-ARM (Raspberry Pi), dan juga berbagai bahasa pemrograman. Modul ini banyak diaplikasikan sebagai Driver Tripod Turnstile dan Bel Sekolah/Kantor.

Baca juga: Mengontrol Tripod Turnstile Menggunakan USB-1REL

usb1rel-sirine-600

Pada kesempatan ini saya akan memberikan contoh program aplikasi bel sekolah/kantor sederhana menggunakan bahasa pemrograman REBOL3. Dan tentu saja, saya akan memberikan penjelasan singkat mengenai prinsip kerja dari program bel tersebut.

Sekedar introduksi – REBOL3 adalah bahasa pemrograman open-source yang dapat berjalan pada beberapa macam sistem operasi seperti: Windows, Linux, Linux-ARM dan juga Android. REBOL3 merupakan proyek pengembangan dari REBOL2. Proyek REBOL3 terhenti ditengah jalan dan akhirnya diputuskan oleh penciptanya (Carl Sassenrath) untuk melepas sourcecodenya kepada umum. Jadilah sekarang REBOL3 sebagai bahasa pemrograman opensource yang dikembangkan oleh komunitas pengguna bahasa REBOL.

Baca juga: REBOL – Melawan Kompleksisasi dan Gendutisasi Pemrograman Masa Kini

Baca juga: Tulisan dan contoh perogram REBOL3 pada sistem Raspberry Pi

Program Bel REBOL3

Membuat program REBOL untuk aplikasi bel sekolah/kantor dengan modul interface USB-1REL sangatlah mudah. Simak listing program REBOL BEL.R3 berikut ini.

REBOL [
  Filename: %bel.r3
  Description: "Contoh program bel sekolah/kantor"
  Hardware: "USB-1REL"
  Software: "REBOL3"
]

Senin-Kamis: [
  Masuk1    07:30
  Istirahat 12:00
  Masuk2    13:00
  Testing   15:25
  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 "usb1rc USB1REL-080 R"
        wait durasi-bel
        print "******* Matikan bel."
        call "usb1rc USB1REL-080 r"
      ]
    ]
  ]

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

Penjelasan Singkat Program BEL.R3

Program di atas berfungsi untuk membunyikan bel sesuai jadwal yang telah ditentukan. Jadwal bel dibagi menjadi 2 yakni jadwal bel untuk hari Senin s/d Kamis dan jadwal bel untuk hari Jumat.

Untuk pendeklarasian jadwal, digunakan tipedata block!. Block adalah kumpulan data dan fungsi. Dalam bahasa pemrograman REBOL, data disebut nilai (value) dan fungsi disebut kata (word). Jadi block adalah kumpulan value dan word. Block merupakan tipedata REBOL yang hampir selalu digunakan dalam program.

Contoh block:

   Daftar-Harga: [
      buku      2000
      pensil    1000
      penghapus 500 ]
   Temanku: [
      ari    08123456789   ari@gmail.com
      boni   08987654321   boni@yahoo.com
      catur  08781234567   catur@hotmail.com ]

Dengan tipedata block, kita dapat menggabungkan data hari dan jam aktivasi bel dengan sangat mudah. Berikut adalah potongan program untuk deklarasi jadwal bel untuk hari Senin-Kamis dan hari Jumat.

Jadwal Bel Hari Senin-Kamis

Senin-Kamis: [
  Masuk1    07:30
  Istirahat 12:00
  Masuk2    13:00
  Testing   15:25
  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 15:25 dan  TESTING pada pukul 22:46. Data ini untuk keperluan pengujian saja dan dapat dihapus.

Bagian program selanjutnya adalah deklarasi nilai durasi-bel dengan tipedata time!.

    durasi-bel 00:00:05

durasi-bel menyatakan durasi atau lamanya bel dibunyikan. Pada contoh program ini, durasi-bel diset dengan nilai 00:00:05 yang berarti 5 detik.

Bagian program selanjutnya adalah perulangan tanpa-batas menggunakan kata forever.

   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 "usb1rc USB1REL-080 R"
               wait durasi-bel
               print "******* Matikan bel."
               call "usb1rc USB1REL-080 r"
            ]
         ]
      ]

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

Bagian program ini berfungsi melakukan perbandingan antara waktu sekarang (now) dengan waktu pada jadwal bel. Jika waktu sekarang cocok dengan waktu yang ada di dalam jadwal, maka program akan memanggil aplikasi USB1RC.EXE untuk mengaktifkan relay pada modul USB-1REL.

Untuk mengambil data hari digunakan perintah:

   hari: now/weekday

Dengan perintah tersebut, maka hari akan bernilai antara 1-7 yang merupakan indeks dari hari Senin hingga Minggu.

Karena terdapat perbedaan jadwal bel untuk hari Senin-Kamis dan hari Jumat, maka perlu dilakukan penyeleksian hari. Caranya dengan menggunakan if sebagai berikut:

   if all [hari >= 1 hari <= 4] [
      ; jadwal bel hari Senin-Kamis
   ]

   if hari = 5 [
      ; jadwal bel hari Jumat
   ]

Untuk proses perbandingan waktu sekarang dengan waktu pada jadwal bel untuk hari Senin-Kamis, digunakan perulangan foreach sebagai berikut:

   foreach [jadwal jam] Senin-Kamis [
      if now/time - jam == 0:00 [
         ; aktifkan bel (relay USB-1REL)
         ;
      ]
   ]

Membunyikan bel berarti mengaktifkan relay modul USB-1REL selama durasi yang telah ditentukan. Programnya adalah sebagai berikut:

call "usb1rc USB1REL-077 R"
wait durasi-bel
call "usb1rc USB1REL-077 r"

Menjalankan Program

Untuk menjalankan program BEL.R3, buka command-prompt dan arahkan pada direktori tempat program R3 dan BEL.R3 berada. Kemudian jalankan perintah berikut:

r3 bel.r3

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

bel-r3

REBOL3 bekerja pada platform Linux, Raspberry Pi dan Windows. Jadi dengan kode program yang sama (BEL.R3) dan versi command-line interface usb1rc yang sesuai platform, maka akan didapatkan hasil yang sama. Program REBOL3 ini tentunya lebih mudah dicerna dibandingkan dengan bila kita membuat penjadwalan eksekusi menggunakan CRON.

Gambar berikut adalah screenshot program BEL.R3 yang saya jalankan pada platform Linux.

usb1rel_bel_view

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.

Konsultasi Gratis Bahasa REBOL

Bagi Anda pengguna modul interface USB-1REL, saya memberikan konsultasi gratis pemrograman bahasa REBOL3 untuk pengembangan aplikasi Bel Sekolah/Kantor.

Download

File program REBOL3 (R3.EXE), USB1RC.EXE dan BEL.R3 dapat Anda download melalui link berikut ini:

http://www.usbinov.com/downloads/bel-usb1rel-rebol.rar

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).

Program Programmable Timer PT1REL

Kami juga menyediakan PT1REL bagi Anda yang tidak ingin repot. PT1REL adalah software aplikasi penjadwalan aktivasi relay versi GUI untuk modul USB-1REL.

PT1REL

Harga software aplikasi PT1REL adalah Rp. 200.000,-. Harga ini berlaku untuk pembelian pertama. Untuk pembelian berikutnya, harga menjadi Rp. 100.000,-

Nah, semoga tulisan ini bisa memberi manfaat bagi kita semua.

Selamat berkarya!

Iklan
Perihal

Cek situs kami di http://teknikelektrolinks.com. Blog Raspberry Pi: http://raspi.teknikelektrolinks.com

Tagged with: , , , , ,
Ditulis dalam Driver Relay, Programmable Timer, REBOL, Software/Programming, Timer

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

Bergabunglah dengan 2.503 pengikut lainnya

Hot Links




Display Counter 3-Digit Dengan Koneksi Wi-Fi
Display Nomor Antrian WiFi Android
Mengontrol Relay Via USB/Serial dan Wi-Fi
USB Relay USB-2REL
USB Relay USB-4REL
Water Level Control WLC-02
Serial Relay SER-4REL
NEO STARDUINO SMS ALARM

Alarm SMS Berbasis NEO STARDUINO

1 PC – 6 Unit USB-2REL

Testing 6 USB-2REL Pada 1 Komputer

Standard Pengujian USB-2REL

Pengujian USB-2REL Sebelum Dikirim

LPT-4REL on Knoppix 7.0.5

Testing LPT-4REL on Knoppix Linux

T101 Inkubator Telur

T101 Inkubator Penetas Telur

KONTROL PERALATAN LISTRIK VIA PORT LPT KOMPUTER

Demo Kontrol Kontaktor via Port LPT

STARDUINO meets ANDROID

Demo Kontrol Bluetooth Relay Android

STARDUINO SMS RELAY

Kontrol Relay Via SMS Dengan Starduino

STARDUINO WEB RELAY

Demo Kontrol Relay Via Web/Internet

JustBASIC USB-2REL Control

Demo Kontrol USB-2REL + JustBASIC

STARDUINO + GPS + LCD

Demo Starduino GPS Dengan LCD

USB-2REL EXTREME TEST

Demo Kontrol On/Off Lampu USB-2REL

THERMOSTAT T101 IN ACTION

Demo Thermostat T101 Pada SV=37.5°C

WATER LEVEL CONTROL WLC-02

Demo Kontrol Level Air Tandon WLC-02

HUMIDITY CONTROLLER H103

Demo Kontrol Kelembaban H103 (DHT11)

%d blogger menyukai ini: