Translate

Alarm Rumah Sederhana Versi 2 Dengan 4 Zona Masukan



Semoga Sobat masih ingat postinganku tentang Alarm Rumah Sederhana Versi 1.

Sekarang aku akan lanjutkan membahas soal Panel Sistem Alarm Pencurian yang sedikit lebih ruwet ketimbang sistem alarm rumah sederhana sebelumnya tapi masih tetap sederhana, soalnya baik pengoperasian dan perangkat kerasnya masih boleh dibilang standar. Tapi sobat enggak usah kuatir soal kualitas dan kinerjanya. Soalnya, aku dapat informasi dari pelangganku jika perangkat tersebut masih berfungsi meski sudah dioperasikan kurang lebih enam tahun.

Sistem alarm rumah sederhana dengan 4 zona masukan ini dibangun menggunakan mikrokontroler AT89C2051. Memiliki 4 masukan sensor, 2 masukan home/away arm/disarm dan 1 keluaran bell.



Masukan Sensor

Sistem alarm kita kali ini memiliki 4 saluran masukan yang disebut zona untuk dihubungkan pada sensor. Masing-masing masukan memiliki kriteria yang berbeda-beda antara lain:

  1. Zona 1 untuk masukan penundaan (delay zone). Fungsi masukan ini adalah untuk memberi tundaan waktu pada saat pengguna akan mengaktifkan sistem alarm. Pada perioda waktu tundaan, masukan ini tidak akan merespon meskipun terpicu oleh sensor. Pada saat ARM atau aktif, jika masukan ini terpicu akan memberi tundaan sebelum mengaktifkan bell untuk proses DISARM.
  2. Zona 2 untuk masukan segera (instant zone). Pada kondisi ARM atau aktif, masukan ini jika terpicu akan segera diproses oleh prosesor dan langsung mengaktifkan bell.
  3. Zona 3 untuk masukan di luar (away zone). Masukan ini sama dengan instant zone tetapi hanya berfungsi pada saat posisi ARM pada AWAY. Di mana masukan ini dikhususkan untuk sensor-sensor yang ada di dalam rumah yang perlu diaktifkan pada saat seluruh penghuni sedang berada di luar rumah.
  4. Zona 4 untuk masukan 24 jam (24h zone). Masukan selalu aktif baik pada posisi ARM maupun DISARM. Masikan ini akan mengaktifkan bell jika terpicu oleh sensor yang terhubung kepadanya.

Aku masih menyebut sistem alarm sederhana ini untuk rumah karena melihat keberadaan masukan zona 3. Meskipun tidak menutup kemungkinan sistem ini dapat diimplementasikan pada kantor kecil atau ruko dan sejenisnya.

Kali ini ke-empat masukan dari sistem kita memiliki fasilitas end-of-line (EoL) di mana sesuai standar keamanan maka masukan dengan fitur EoL akan terpicu jika masukan tersebut terputus atau terhubung singkat. Untuk keperluan tersebut maka pada masukan sensor akan dibangun menggunakan sebuah rangkaian jendela tegangan. Rangkaian tersebut dapat dilihat berikut ini:



Sebuah rangkaian jendela tegangan terdiri dari 2 buah komparator yang masing-masing mendeteksi batas atas tegangan masukan yang memicu keluaran (UTP, upper trip point) dan batas bawah tegangan pemicu (LTP, lower trip point). Komparator A adalah untuk batas atas dan komparator B untuk batas tegangan bawah.

Tegangan referensi untuk batas atas dan bawah ditentukan oleh pembagian tegangan yang dibentuk oleh 3 buah resistor yang dirangkai secara seri terdiri dari R1, R2 dan R3. Karena nilai ketiga resistor tersebut sama, maka kita tidak perlu pusing-pusing menghitungnya. Berarti tegangan referensi batas atas pemicu adalah 2/3 dari tegangan catu daya dan tegangan batas bawahnya 1/3 catu daya. Karena perangkat menggunakan tegangan catu 5 volt maka UTP = 3,333 volt dan LTP = 1,667 volt. Jadi jangkah tegangan histerisis dari masukan yang aman adalah antara 1,667 sampai 3,333 volt atau selebar 1,667 volt.

Umumnya masukan dijaga pada nilai tegangan yang besarnya separuh dari tegangan catu. Itu berarti masukan harus dibangun dengan resistansi yang nilainya sama dengan nilai R4. Pada kondisi ini maka keluaran kedua komparator adalah tinggi.

Jika resistansi masukan naik, ini juga akan menyebabkan tegangan masukan naik. Jika kenaikan tegangan melewati batas atas atau bahkan mendekati tegangan catu jika masukan terputus atau tanpa beban maka keluaran komparator A akan berubah menjadi rendah.

Sebaliknya jika resistansi turun maka tegangan masukan juga turun. Jika penurunan melewati batas bawah atau mendekati 0 volt jika masukan terhubung-singkat menyebabkan keluaran komparator B menjadi rendah.

Perbedaan status keluaran dari komparator A untuk batas atas tegangan da komparator B untuk batas bawah tegangan pada beberapa sistem digunakan sebagai indikasi yang merepresentasikan kondisi suatu masukan.

Nah sepertinya soal masukan sensor sudah jelas. Pada sistem kita maka kedua keluaran dari komparator akan dijadikan satu sehingga sistem hanya mengenali 2 kondisi yaitu normal dan terpicu baik putus atau terhubung-singkat.



Masukan Home dan Away Arm

Masukan ini ditujukan untuk membedakan aktivasi dari sistem pada 2 keadaan aktif yaitu Home Arm atau Away Arm. Fasilitas ini berkaitan dengan masukan zona 3 yang hanya berfungsi pada kondisi Away Arm saja.

Pada kondisi aktif Home Arm di mana masukan zona 3 yang terhubung pada sensor yang khusus untuk bagian dalam rumah misalkan menggunakan PIR (passive infrared) di ruang tamu, keluarga atau pintu kamar tidak mempengaruhi sistem. Jadi pada kondisi ini penghuni bebas berkeliaran di dalam rumah namun tetap terproteksi dari penerobosan perimeter dari sensor-sensor yang dipasang disekeliling rumah.

Sebaliknya pada kondisi aktif Away Arm di mana semua penghuni di anggap sedang tidak ada di rumah maka seluruh masukan sensor diaktifkan.

Rangkaian lengkap sistem alarm sederhana 4 masukan dapat dilihat berikut ini:



Dari rangkaian di atas, untuk memenuhi kebutuhan 4 masukan zona membutuhkan 2 buah IC jenis LM339 yang memiliki 4 komparator dalam kemasannya.

Untuk aplikasi program yang dijalankan oleh mikrokontroler dapat dilihat sebagai berikut:

$mod51

Display           data  p1
      LEDReady    bit   p1.0
      LEDHome     bit   p1.1
      LEDAway     bit   p1.2
      LEDAlarm    bit   p1.3

PortInOut   data  p3
      ArmHome     bit   p3.0
      ArmAway     bit   p3.1
      Zona1       bit   p3.2
      Zona2       bit   p3.3
      Zona3       bit   p3.4
      Zona4       bit   p3.5
      Bell        bit   p3.7

BitRegister data  20h
      BitHome     bit   BitRegister.0
      BitAway     bit   BitRegister.1
      BitZona1    bit   BitRegister.2
      BitZona2    bit   BitRegister.3
      BitZona3    bit   BitRegister.4
      BitZona4    bit   BitRegister.5
      BitBell     bit   BitRegister.6
      BitDelay    bit   BitRegister.7

RegStack    data  30h

org   0h

AppMulai:
      mov   sp, #RegStack-1
      acall InisialisasiTundaan
      mov   BitRegister, #0
      mov   p1, #255
      mov   p3, #255

CekMasukan:
      jnb   Zona4, ZonaTrip1
      mov   a, PortInOut
      cpl   a
      mov   b, a
      anl   a, #00101100b
      jnz   CekMasuk2
      jnb   ArmHome, AppHome
      mov   a, b
      anl   a, #00111100b
      jnz   CekMasuk2
      clr   LEDReady
      jnb   ArmAway, AppAway
      ajmp  CekMasukan

      CekMasuk2:
            setb  LEDReady
            ajmp  CekMasukan

AppHome:
      setb  BitHome
      clr   LEDHome
      setb  BitDelay
      ajmp  AktivasiSistem

AppAway:
      setb  BitAway

AktivasiSistem:
      jnb   Zona4, ZonaTrip1
      jnb   Zona2, ZonaTrip1
      jb    BitHome, AktifSistem1
      jnb   Zona3, ZonaTrip1

      AktifSistem1:
            jnb   BitDelay, AktifSistem2
            jb    BitZona1, AktivasiBell
            jnb   Zona1, ZonaTrip2
            ajmp  AktivasiSistem

      AktifSistem2:
            acall Tundaan
            jnb   BitDelay, AktivasiSistem
            clr   LEDAway
            ajmp  AktivasiSistem

ZonaTrip1:
      mov   a, PortInOut
      anl   a, #00111100b
      orl   a, BitRegister
      mov   BitRegister, a
      ajmp  aktivasiBell

ZonaTrip2:
      setb  BitZona1
      clr   BitDelay
      ajmp  AktivasiSistem

AktivasiBell:
      clr   Bell
      clr   LEDAlarm
      setb  LEDReady

      AktifBell1:
            jb    BitHome, AktifBell2
            jb    BitAway, AktifBell4
            jb    ArmHome, AktifBell3
            setb  BitHome

      AktifBell2:
            jb    ArmHome, ResetBell
            ajmp  AktifBell5
           
      AktifBell3:
            jb    ArmAway, AktifBell5
            setb  BitAway

      AktifBell4:
            jb    ArmAway, ResetBell

      AktifBell5:
            acall Tundaan
            jnb   BitDelay, AktifBell1
            setb  Bell
            jb    BitHome, AktivasiSistem
            jb    BitAway, AktivasiSistem
            ajmp  CekMasukan

      ResetBell:
            setb  Bell
            ajmp  AppMulai

InisialisasiTundaan:
      clr   BitDelay
      mov   a, Display
      cpl   a
      swap  a
      anl   a, #00001111b
      mov   b, #5
      mul   ab
      mov   r5, a
      ajmp  IniTunda6

      IniTunda4:
            mov   r4, #120

      IniTunda6:
            mov   r6, #200

      IniTunda7:
            mov   r7, #255
            ret

Tundaan:
      djnz  r7, AkhirTundaan
      djnz  r6, IniTunda7
      jb    BitBell, TundaBell
      djnz  r5, IniTunda6
      setb    BitDelay
      ajmp  InisialisasiTundaan

      TundaBell:
            djnz  r4, IniTunda6
            setb    BitDelay
            ajmp  InisialisasiTundaan

      AkhirTundaan:
            ret

end


Udah ya, makasih udah baca postingan aku. Semoga bisa bermanfaat, sukur-sukur bisa diterapkan oleh sobat semua.

Salam....

Tidak ada komentar:

Posting Komentar