Jumat, 27 Juni 2014

AN-0191 Sistem Alarm Rumah berbasis MMS dilengkapi dengan Camera Interface



Pada diagram alir tersebut terdapat dua aliran, yang pertama adalah program utama yang bekerja mendeteksi kondisi-kondisi sensor. Saat salah satu sensor mendeteksi ada obyek atau kebakaran maka program akan langsung mengirimkan foto dalam bentuk MMS beserta teks yang menunjukkan informasi sensor apa yang aktif sehingga pengguna dapat mengetahui jenis sensor yang aktif dari MMS yang diterima di HP.
Diagram alir kedua adalah interupsi serial yang mendeteksi pesan SMS yang dikirim oleh pengguna melalui HP dan diterima oleh SIM5216. Pesan ini diteruskan ke DST-51 dan apabila pesan tersebut berisi SMS “ambilfoto” maka DST-51 akan memerintahkan SIM5216 untuk mengirimkan foto. Bagian ini digunakan apabila pengguna ingin melihat kondisi melalui camera setiap saat.
Agar sistem yang dirangkai dapat bekerja sesuai diagram alir tersebut maka program atau source code perlu diisikan ke dalam DST-51 terlebih dahulu.
Lebih detail mengenai cara untuk download program ke DST-51 dapat dilihat di AN0160.

LISTING PROGRAM

$MOD51
        CSEG

DeviceID    EQU    057h        ;ID Telemeter

PowerKey    Bit    P1.0
CTS        Bit    P1.2
RTS        Bit    P1.3

SIMVDD        Bit    P3.7        ;belum tahu
Indicator    Bit    P1.7

SensorSmoke        Bit    P2.2
SensorInfra1        Bit    P2.3
SensorInfra2        Bit    P2.4
SensorInfra3        Bit    P2.5
SensorSonar        Bit    P2.6

SetPointSensorSuhu    EQU    80h

        DSEG
    Org    36H

PTR:     Ds      2
PTR2:    Ds      2
PTR3:    Ds      2

RAM_ID:          Ds      1
RAM_HPServer:    Ds      15
RAM_OperatorNumber:      Ds      10
TF0Counter:      Ds      1
IndexSMS:        Ds      1
IndexPerintah:   Ds      1
CheckSum:        Ds      1
PrescaleTimer:   Ds      1
CounterHP:       Ds      1
                    ;
Flag3:           Ds      1               ;Flag Serba guna
BufferSensTemp:  Ds      5
BufferSensor:    Ds      5
Status:          Ds      1               ;Bit 0 = Flag Sensor Infra 1
                    ;Bit 1 = Flag Sensor Infra 2
                    ;Bit 2 = Flag Sensor Infra 3
                    ;Bit 3 = Flag Sensor Smoke
                    ;Bit 4 = Flag Sensor sonar
                    ;Bit 5 = Flag Sensor suhu
                    ;Bit 6 = Flag Sensor Infra 1 diproses
                    ;Bit 7 = Flag Sensor Infra 2 diproses
Status2:         Ds      1               ;Bit 0 = Flag Sensor Infra 3 diproses
                    ;Bit 1 = Flag Sensor Smoke diproses
                    ;Bit 2 = Flag Sensor Sonar diproses
                    ;Bit 3 = Flag Sensor Suhu diproses
                  


        CSEG
    Org    000H
    Ljmp    Start
    Org    003H
    ljmp    intr0
    Org    00Bh
    Ljmp    Timer0Interrupt
    Org    013H
    Ljmp    INTR1
    Org    023h
    LJmp    SerialInterrupt



Intr0:

    Reti  

INTR1:
    Reti

;============================================
; Kalau Call Ready = GSM On
; Kalau 's' = koneksi dengan PC



PBDone:
    DB    'PB DONE',0

TurnONGSM:

    Clr    PowerKey
    Mov    R7,#100
    Lcall    Delayx10mS
    Setb    PowerKey

TungguCommandBerikut:
    Lcall    TungguCommand
    Mov    DPTR,#PBDone
    Mov    R0,#BufferPerintah
    Lcall    CompareRAMnTabel
    Jc    TungguCommandBerikut

    Ljmp    GSMSudahON                ;



TurnONGSM2:
    LJmp    TurnONGSM


CompareRAMnTabel:
    Mov    B,@R0
    Inc    R0
    Mov    A,#00
    Movc    A,@A+DPTR
    Jz    RAMdanTabelCocok
    Inc    DPTR
    Clr    C
    Subb    A,B
    Jnz    RAMTidakCocok
    Ljmp    CompareRAMnTabel

RAMdanTabelCocok:
    Clr    C
    Ret

RAMTidakCocok:
    Setb    C
    Ret



Start:
    Lcall    Init_Serial
    Mov    Status,#0FFh

    Mov    Flag3,#0FFh
    Mov    DPTR,#ID
    Lcall    DPTRSEE16bit

    Cjne    A,#DeviceID,SetDef
    Ljmp    NoDefault


SetDef:
    Lcall    SetDefault

NoDefault:

    Lcall    Init_Serial            ;Inisial Serial 11.5200
    Clr    RI
    Clr    TI
    Jnb    SIMVDD,TurnONGSM2        ;Cek GSM aktif?

GSMSudahON:

    Mov    R7,#100
    Lcall    Delayx10mS

    Lcall    ClearBufferPerintah        ;Hapus data di buffer perintah

    Lcall    InitTimer            ;Aktifkan Interupsi Timer
    Mov    PreScaleTimer,#200
   
    Mov    TF0Counter,#00            ;Set Prescaler
    Setb    EA
    Setb    ET0

    Lcall    InitGSM
    Lcall    DeleteAllSMS            ;Hapus Semua SMS

    Setb    TR0
    Clr    RI
    Clr    TI

    Ljmp    $








;================================================================================
; END OF MAIN PROGRAM

Tidak ada komentar:

Posting Komentar