riasztó
riasztó
Egy riasztó építésén dolgozom mert meg nőtt erre fele a betörések és lopások száma.
Készen olcsóbb lenne ne abban semmi saját munka sincs.
Szóval van 10 érzékelőm az ablakokon és ajtókon. Kinyílás esetén logikai 1 adnak át.
És egy szirénát szeretnék vele vezéreltetni.
nem is lenne vele semmi gond hisz egyszerű de egy gombal szeretném nyugtázni a riasztást erre a sziréna kimenetet 0 szeretném tenni.
ez is sikerült csak egy probléma hogy ha nyugtázom mondjuk az ajtó érzékelő hibáját utánna nem szólal meg újra ha az ablakot kinyitom.
valami ötlet?
a gomb inten van azzal sok mindenre lehet használni.
Készen olcsóbb lenne ne abban semmi saját munka sincs.
Szóval van 10 érzékelőm az ablakokon és ajtókon. Kinyílás esetén logikai 1 adnak át.
És egy szirénát szeretnék vele vezéreltetni.
nem is lenne vele semmi gond hisz egyszerű de egy gombal szeretném nyugtázni a riasztást erre a sziréna kimenetet 0 szeretném tenni.
ez is sikerült csak egy probléma hogy ha nyugtázom mondjuk az ajtó érzékelő hibáját utánna nem szólal meg újra ha az ablakot kinyitom.
valami ötlet?
a gomb inten van azzal sok mindenre lehet használni.
Az szoftverhiba... a programkod nelkul nehez barmit mondani...
- INT engedelyezve ujra?
- valtozo letarolva?
En inkabb kesz kozpontban gondolkodnek, es azt egeszitenem ki sajat megoldasokkal.... Ez egyszerubb:) Az akku, tapresz keszen van... a mobiltelefonos atjelzes es hasonlok meg jobban megerik sk megcsinalni...
- INT engedelyezve ujra?
- valtozo letarolva?
En inkabb kesz kozpontban gondolkodnek, es azt egeszitenem ki sajat megoldasokkal.... Ez egyszerubb:) Az akku, tapresz keszen van... a mobiltelefonos atjelzes es hasonlok meg jobban megerik sk megcsinalni...
Mobilos rész is lessz benne majd. de először az érzékelőket kell megcsinálnom hozzá. A GSM rész már kész van hozzá de annak a konfigurálása készőbbiekben fog sorra kerülni annak már csak jeleket kell adni és telefonon felhív vagy sms-t küld. Illetve kívülről sms-el is lehet vezérelni majd. PL a villanyt otthon felkapcsolni meg ilyesmi.
Illetva van egy + funkció a gsm részben jelez ha nem talál hálózatot illetve sérült az antenna vagy éppen nincs sim kártya benne.
Itt a szoft
És csak az intes részét szeretném valahogy megoldani hogy ha új riasztás érkezik akkor kapcsolja be a relét és én az itnen lévő nyomógombal lekapcsoljam a relét illetve a + buzzert. és utánna újra szóljaon a kövnél.
Ha értitek mire gondolok.
Illetva van egy + funkció a gsm részben jelez ha nem talál hálózatot illetve sérült az antenna vagy éppen nincs sim kártya benne.
Itt a szoft
És csak az intes részét szeretném valahogy megoldani hogy ha új riasztás érkezik akkor kapcsolja be a relét és én az itnen lévő nyomógombal lekapcsoljam a relét illetve a + buzzert. és utánna újra szóljaon a kövnél.
Ha értitek mire gondolok.
Kód: Egész kijelölése
'------------------------------------------------------------------------------
'name : Alarm - GSM
'copyright :
'micro : Mega64
'------------------------------------------------------------------------------
$regfile = "m64def.dat"
$crystal = 14745600
$hwstack = 255
$swstack = 160
$framesize = 160
$baud = 9600
'Config Watchdog = 2048
Config Adc = Single , Prescaler = 4 , Reference = Internal 'The prescaler divides the internal clock by 2,4,8,16,32,64 or 128
'RS485--------------------------------------------------------------------------
Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "COM2:" For Binary As #1
'Input -------------------------------------------------------------------------
Config Pina.0 = Input '11 in
Config Pina.5 = Input '1 in
Config Pinb.2 = Input '3 in
Config Pinb.3 = Input '2 in
Config Pinb.6 = Input '12 in
Config Pinb.7 = Input 'ajtó reed
Config Pind.0 = Input 'reset - törlése
Config Pine.2 = Input '4 in
Config Pine.3 = Input '16 in
Config Pine.4 = Input '15 in
Config Pine.5 = Input '14 in
Config Pine.6 = Input '13 in
Config Pine.7 = Input 'GSM AWR input
Config Pinf.0 = Input 'AKKU ADC
Config Pinf.1 = Input 'TÁP ADC
Config Pinf.2 = Input '5 in
Config Pinf.3 = Input '6 in
Config Pinf.4 = Input '7 in
Config Pinf.5 = Input '8 in
Config Pinf.6 = Input '9 in
Config Pinf.7 = Input '10 in
'Output -------------------------------------------------------------------------
Config Porta.1 = Output '5 LED
Config Porta.2 = Output 'RIASZT RELÉ
Config Porta.3 = Output '8 LED
Config Porta.4 = Output '7 LED
Config Porta.6 = Output 'BUZZER2
Config Porta.7 = Output 'RESET LED
Config Portb.0 = Output 'GSM 6 input
Config Portb.4 = Output 'GSM 5 input
Config Portb.5 = Output 'GSM 4 input
Config Portc.7 = Output '13 LED
Config Portc.6 = Output '15 LED
Config Portc.5 = Output '16 LED
Config Portc.4 = Output 'SUPPLY LED
Config Portc.3 = Output '4 LED
Config Portc.2 = Output '12 LED
Config Portc.1 = Output '2 LED
Config Portc.0 = Output '3 LED
Config Portd.5 = Output '1 LED
Config Portd.6 = Output '9 LED
Config Portd.7 = Output '10 LED
Config Portg.0 = Output '11 LED
Config Portg.1 = Output '6 LED
Config Portg.2 = Output '14 LED
'Interrupt----------------------------------------------------------------------
On Int0 Riasztreset 'RIASZT - RESET GOMB
Config Int0 = Falling
Enable Interrupts
Enable Int0
'ADC VÁLTOZÓK---------------
Dim U As Word , Channel0 As Word 'akku Adc
Channel0 = 0
Dim V As Word , Channel1 As Word 'táp Adc
Channel1 = 1
'INPUT ALIAS--------------------------------------------------------------------
In1 Alias Pina.5 '1 in
In2 Alias Pinb.3 '2 in
In3 Alias Pinb.2 '3 in
In4 Alias Pine.2 '4 in
In5 Alias Pinf.2 '5 in
In6 Alias Pinf.3 '6 in
In7 Alias Pinf.4 '7 in
In8 Alias Pinf.5 '8 in
In9 Alias Pinf.6 '9 in
In10 Alias Pinf.7 '10 in
In11 Alias Pina.0 '11 in
In12 Alias Pinb.6 '12 in
In13 Alias Pine.6 '13 in
In14 Alias Pine.5 '14 in
In15 Alias Pine.4 '15 in
In16 Alias Pine.3 '16 in
Gsmawrinput Alias Pine.7 'GSM AWR input
Ajtosensor Alias Pinb.7 'ajtó reed
Riasztastorles Alias Pind.0 'reset - törlése
'OUTPUT ALIAS--------------------------------------------------------------------
1led Alias Portd.5 '1 LED
2led Alias Portc.1 '2 LED
3led Alias Portc.0 '3 LED
4led Alias Portc.3 '4 LED
5led Alias Porta.1 '5 LED
6led Alias Portg.1 '6 LED
7led Alias Porta.4 '7 LED
8led Alias Porta.3 '8 LED
9led Alias Portd.6 '9 LED
10led Alias Portd.7 '10 LED
11led Alias Portg.0 '11 LED
12led Alias Portc.2 '12 LED
13led Alias Portc.7 '13 LED
14led Alias Portg.2 '14 LED
15led Alias Portc.6 '15 LED
16led Alias Portc.5 '16 LED
Buzzer Alias Porta.6 'BUZZER
Resetled Alias Porta.7 'RESET LED
Riasztasrele Alias Porta.2 'RIASZT RELÉ
Supplyled Alias Portc.4 'SUPPLY LED
Gsm6input Alias Portb.0 'GSM 6 input
Gsm5input Alias Portb.4 'GSM 5 input
Gsm4input Alias Portb.5 'GSM 4 input
' relé változók ----------------------------------------------------------------
Dim Riasztasreletap As Word
Dim Riasztasreleakku As Word
Dim Riasztasrelefuse As Word
Dim Riasztasrelegsm As Word
Dim Riasztasrele1in As Word
Dim Riasztasrele2in As Word
Dim Riasztasrele3in As Word
Dim Riasztasrele4in As Word
Dim Riasztasrele5in As Word
Dim Riasztasrele6in As Word
Dim Riasztasrele7in As Word
Dim Riasztasrele8in As Word
Dim Riasztasrele9in As Word
Dim Riasztasrele10in As Word
Dim Riasztasrele11in As Word
Dim Riasztasrele12in As Word
Dim Riasztasrele13in As Word
Dim Riasztasrele14in As Word
Dim Riasztasrele15in As Word
Dim Riasztasrele16in As Word
Dim L As Bit
Declare Sub Akkuadc(byref Channel0 As Word , U As Word )
Declare Sub Tapadc(byref Channel1 As Word , V As Word )
Declare Sub Riasztas
Declare Sub Rs485
Declare Sub Ledek
Declare Sub Riasztasrelesub
Riasztasreletap = 0
Riasztasreleakku = 0
Riasztasrelefuse = 0
Riasztasrelegsm = 0
Riasztasrele1in = 0
Riasztasrele2in = 0
Riasztasrele3in = 0
Riasztasrele4in = 0
Riasztasrele5in = 0
Riasztasrele6in = 0
Riasztasrele7in = 0
Riasztasrele8in = 0
Riasztasrele9in = 0
Riasztasrele10in = 0
Riasztasrele11in = 0
Riasztasrele12in = 0
Riasztasrele13in = 0
Riasztasrele14in = 0
Riasztasrele15in = 0
Riasztasrele16in = 0
L = 0
Riasztasrele = 1
'Főprogram kezdete
Do
Call Akkuadc(channel0 , U )
Call Tapadc(channel1 , V )
Call Ledek
Call Riasztasrelesub
Loop
'Főprogram Vége
'INT----------------------------------------------------------------------------
Riasztreset:
Riasztasrele = 0
Resetled = 0
Buzzer = 0
L = 1
Return
'ADC----------------------------------------------------------------------------
Sub Akkuadc(byref Channel0 As Word , U As Word )
U = 0
U = Getadc(channel0)
If U < 186 Then
Riasztasreleakku = 1
Supplyled = 0
Wait 1
Supplyled = 1
Wait 1
Else
Riasztasreleakku = 0
End If
End Sub
Sub Tapadc(byref Channel1 As Word , V As Word )
V = 0
V = Getadc(channel1)
If U > 186 Then
Select Case V
Case 0 To 330 : Riasztasreletap = 1
Supplyled = 0
Case 711 To 1024 : Riasztasrelefuse = 1
Waitms 80
Supplyled = 1
Waitms 80
Supplyled = 0
Case Else : Supplyled = 1
Riasztasrelefuse = 0
Riasztasreletap = 0
End Select
End If
End Sub
'Riasztas-----------------------------------------------------------------------
Sub Riasztas
End Sub
Sub Riasztasrelesub
If Riasztasreletap = 1 Or Riasztasreleakku = 1 Or Riasztasrelefuse = 1 Or Riasztasrele1in = 1 Or Riasztasrele2in = 1 Or Riasztasrele3in = 1 Or Riasztasrele4in = 1 Or Riasztasrele5in = 1 Or Riasztasrele6in = 1 Or Riasztasrele7in = 1 Or Riasztasrele8in = 1 Or Riasztasrele9in = 1 Or Riasztasrele10in = 1 Or Riasztasrele11in = 1 Or Riasztasrele12in = 1 Or Riasztasrele13in = 1 Or Riasztasrele14in = 1 Or Riasztasrele15in = 1 Or Riasztasrele16in = 1 Or Riasztasrelegsm = 1 Then
If L <> 1 Then
Riasztasrele = 1
Buzzer = 1
Resetled = 1
End If
End If
If Riasztasreletap = 0 And Riasztasreleakku = 0 And Riasztasrelefuse = 0 And Riasztasrele1in = 0 And Riasztasrele2in = 0 And Riasztasrele3in = 0 And Riasztasrele4in = 0 And Riasztasrele5in = 0 And Riasztasrele6in = 0 And Riasztasrele7in = 0 And Riasztasrele8in = 0 And Riasztasrele9in = 0 And Riasztasrele10in = 0 And Riasztasrele11in = 0 And Riasztasrele12in = 0 And Riasztasrele13in = 0 And Riasztasrele14in = 0 And Riasztasrele15in = 0 And Riasztasrele16in = 0 And Riasztasrelegsm = 0 Then
L = 0
Riasztasrele = 0
Buzzer = 0
Resetled = 0
End If
Reset Watchdog
End Sub
Sub Ledek
If In1 = 1 Then
Riasztasrele1in = 1
1led = 1
Else
1led = 0
Riasztasrele1in = 0
End If
If In2 = 1 Then
Riasztasrele2in = 1
2led = 1
Else
2led = 0
Riasztasrele2in = 0
End If
If In3 = 1 Then
Riasztasrele3in = 1
3led = 1
Else
3led = 0
Riasztasrele3in = 0
End If
If In4 = 1 Then
Riasztasrele4in = 1
4led = 1
Else
4led = 0
Riasztasrele4in = 0
End If
If In5 = 1 Then
Riasztasrele5in = 1
5led = 1
Else
5led = 0
Riasztasrele5in = 0
End If
If In6 = 1 Then
Riasztasrele6in = 1
6led = 1
Else
6led = 0
Riasztasrele6in = 0
End If
If In7 = 1 Then
Riasztasrele7in = 1
7led = 1
Else
7led = 0
Riasztasrele7in = 0
End If
If In8 = 1 Then
Riasztasrele8in = 1
8led = 1
Else
8led = 0
Riasztasrele8in = 0
End If
If In9 = 1 Then
Riasztasrele9in = 1
9led = 1
Else
9led = 0
Riasztasrele9in = 0
End If
If In10 = 1 Then
Riasztasrele10in = 1
10led = 1
Else
10led = 0
Riasztasrele10in = 0
End If
If In11 = 1 Then
Riasztasrele11in = 1
11led = 1
Else
11led = 0
Riasztasrele11in = 0
End If
If In12 = 1 Then
Riasztasrele12in = 1
12led = 1
Else
12led = 0
Riasztasrele12in = 0
End If
If In13 = 1 Then
Riasztasrele13in = 1
13led = 1
Else
13led = 0
Riasztasrele13in = 0
End If
If In14 = 1 Then
Riasztasrele14in = 1
14led = 1
Else
14led = 0
Riasztasrele14in = 0
End If
If In15 = 1 Then
Riasztasrele15in = 1
15led = 1
Else
15led = 0
Riasztasrele15in = 0
End If
If In16 = 1 Then
Riasztasrele16in = 1
16led = 1
Else
16led = 0
Riasztasrele16in = 0
End If
End Sub
Sub Rs485
' KIÍRATÁS ---------------------------------------------------------------------
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , " -= Riasztóközpont =- "
Print #1 , ""
Print #1 , " -= 2009 (c) =- "
Print #1 , ""
Print #1 , " -= ALARM - GSM 1.0 REV =- "
Print #1 , ""
Print #1 , " -= by SBS =- "
Print #1 , ""
Print #1 , " - = SZOVHOZ = - "
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , " -= DATA OUTPUT =- "
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , ""
Print #1 , " -=END=- "
Print #1 , ""
Print #1 , ""
Exit Sub
End Sub
EndItt az L változót miért vizsgálod?
If L <> 1 Then
Riasztasrele = 1
Buzzer = 1
Resetled = 1
End If
Lehetséges, hogy ez a rész hamarabb lefut:
L = 0
Riasztasrele = 0
Buzzer = 0
Resetled = 0
Mivel L = 0 lesz az előző If már nem fut le?
És itt Miértelme van?
Print #1 , ""
Exit Sub ’Ennek a sornak?
End Sub
If L <> 1 Then
Riasztasrele = 1
Buzzer = 1
Resetled = 1
End If
Lehetséges, hogy ez a rész hamarabb lefut:
L = 0
Riasztasrele = 0
Buzzer = 0
Resetled = 0
Mivel L = 0 lesz az előző If már nem fut le?
És itt Miértelme van?
Print #1 , ""
Exit Sub ’Ennek a sornak?
End Sub
ez a rész csak akkor fut le ha egyik bemeneten sincs hiba.
amikor megnyomom a gombot hogy töröljem a riasztást akkor az L = 1
így a másiknál nem tudja vissza kapcsolni.
ha az az L<>1 nem lenne ot a gomb megnyomás után újra vissza kapcsolna egyből a riasztó. de csak akkor kellene neki vissza kapcsolni ha újabb jel jön valamelyik lábon a sok közül.
ami most van szép és jó mert nyugtázza a riasztást csak én nem így szeretném. hanem ha nyugtázás után új riasztás jön a riasztreset gombal újra le tudjam lőnni a relét és a buzzert.
Attól egy led villog nekem ami mutatja hogy hiba van és hogy hol.
de ennek nem jövök rá a logikájára.
az rs485 véletlen maradt benne azt csak bele tettem még nincs kidolgozva majd azt is felhasználom jó kis kommunikáció lesz belőlle. de kössz már töröltem is belőlle.
Kód: Egész kijelölése
L = 0
Riasztasrele = 0
Buzzer = 0
Resetled = 0
End If
így a másiknál nem tudja vissza kapcsolni.
ha az az L<>1 nem lenne ot a gomb megnyomás után újra vissza kapcsolna egyből a riasztó. de csak akkor kellene neki vissza kapcsolni ha újabb jel jön valamelyik lábon a sok közül.
ami most van szép és jó mert nyugtázza a riasztást csak én nem így szeretném. hanem ha nyugtázás után új riasztás jön a riasztreset gombal újra le tudjam lőnni a relét és a buzzert.
Attól egy led villog nekem ami mutatja hogy hiba van és hogy hol.
de ennek nem jövök rá a logikájára.
az rs485 véletlen maradt benne azt csak bele tettem még nincs kidolgozva majd azt is felhasználom jó kis kommunikáció lesz belőlle. de kössz már töröltem is belőlle.
Próbáld úgy megoldani, hogy INT-ben megjelölöd 1 változóban melyik riasztást jelölted falsnak.
És utána a fals jelzésre nem riasztasz.
Mert így ha 1szer van hibátlan állapot, többet nem kapsz riasztást!
Például mikor elmész otthonról, a bejárati ajtó csak késleltetés után riasztjon. Legyen időd kimenni és bezárni az ajtót,
És utána a fals jelzésre nem riasztasz.
Mert így ha 1szer van hibátlan állapot, többet nem kapsz riasztást!
Például mikor elmész otthonról, a bejárati ajtó csak késleltetés után riasztjon. Legyen időd kimenni és bezárni az ajtót,
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2009. június 29. hétfő, 15:33-kor.
Valahogy így képzelem:
Kód: Egész kijelölése
Dim Rele1in As Bit
Dim Rele2in As Bit
Dim Rele3in As Bit
...
...
'INT----------------------------------------------------------------------------
Riasztreset:
Riasztasrele = 0
Resetled = 0
Buzzer = 0
If Riasztasrele1in = 1 Then Rele1in = 1 Else Rele1in = 0 End if
If Riasztasrele2in = 1 Then Rele2in = 1 Else Rele2in = 0 End if
If Riasztasrele3in = 1 Then Rele3in = 1 Else Rele3in = 0 End if
... 'Így ugyan azzal a gombbal le is kapcsolhatod a megkülönböztető jelzést.
...
Return
Sub Riasztasrelesub
If Riasztasrele1in = 1 Then
If Rele1in = 0 Then
Call Riaszt
End If
End If
If Riasztasrele2in = 1 Then
If Rele2in = 0 Then
Call Riaszt
End If
End If
If Riasztasrele3in = 1 Then
If Rele3in = 0 Then
Call Riaszt
End If
End If
...
...
End Sub
Sub Riaszt
Riasztasrele = 1
Buzzer = 1
Resetled = 1
End Sub
A hozzászólást 3 alkalommal szerkesztették, utoljára kapu48 2009. június 30. kedd, 17:41-kor.
Valahogy még meg kel oldani, hogy a fals jelzést vissza kapcsold, ha már nem kel.
Esetleg így:
TimerINT:
Rele1in = 0
Rele2in = 0
Rele3in = 0
…
…
return
Különben így ha a betörőd becsukja az ajtót maga után, megszűnik a riasztás!
És mi van, ha ablak betöréssel hatol be?

Esetleg így:
TimerINT:
Rele1in = 0
Rele2in = 0
Rele3in = 0
…
…
return
Különben így ha a betörőd becsukja az ajtót maga után, megszűnik a riasztás!
És mi van, ha ablak betöréssel hatol be?
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2009. június 29. hétfő, 16:15-kor.
Ezt a főprogramból hívod:
Kód: Egész kijelölése
Sub Riasztasrelesub
If Riasztasrele1in = 1 Then 'Riaszt1 jelzö be
If Rele1in = 0 Then 'Ha a fals jelző nincsen bekapcsolva
Call Riaszt 'ITT hívom meg a riasztást
End If
End If
A hozzászólást 3 alkalommal szerkesztették, utoljára kapu48 2009. június 29. hétfő, 16:33-kor.
- nobody_hun
- Bitfaragó
- Hozzászólások: 425
- Csatlakozott: 2005. november 14. hétfő, 7:00
Ez tök jó ötlet!
Amúgy pölö a DSC régi központjaiban PIC volt, a kezelőiben pedig a mai napig azt alkalmazza.
Sajnos a Keybus protokollja "titkos", így arról nem nyilatkozom, de egy kis kereséssel egészen sok információ található róla.
Amúgy pölö a DSC régi központjaiban PIC volt, a kezelőiben pedig a mai napig azt alkalmazza.
Sajnos a Keybus protokollja "titkos", így arról nem nyilatkozom, de egy kis kereséssel egészen sok információ található róla.
"Az IC-k füsttel működnek. Ha kijön belőlük a füst, nem működnek tovább." - ismeretlen szerző
"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."
"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."