- 3 wejścia analogowe, 3 wejścia cyfrowe
- Wbudowane zabezpieczenia przed sabotażem
- Inteligentne funkcje autouzbrajania
- Możliwość połączenia w sieć przez RS-485
Alarm uzbraja się samoczynnie o ustawionej godzinie, mierząc intensywność ruchu w pomieszczeniu, natężenie światła i po odpowiednim skonfigurowaniu nie wymaga żadnej obsługi. Po zmianie oprogramowania może pracować w sieci RS-485 pełniąc rolę lokalnego kontrolera nadzoru osób i mienia. Może być zalecany jako pomocniczy (alternatywnie do już funkcjonującego) szczególnie osobom, które mają kłopot z regularnym uzbrajaniem systemu alarmowego.
Pomimo zaawansowanych funkcji centralka jest konstrukcją amatorską, nie ma atestów i można ją użytkować wyłącznie na własną odpowiedzialność.
Ktoś mógłby powiedzieć, że jego dobytek jest zabezpieczony, ponieważ w mieszkaniu, firmie lub magazynie został zamontowany nowoczesny system alarmowy. Zapewne im większą kwotę pieniędzy przeznaczono na zakup i montaż systemu, tym większe będzie poczucie bezpieczeństwa. Czy nie jest to złudne?
Zainstalowany system alarmowy może stworzyć poczucie złudnego bezpieczeństwa. Systemy alarmowe stanowią jedynie narzędzie, które może być wykorzystywane do nadzoru obiektów. Gdy w rutynie codziennych pierwszoplanowych czynności zapomina się o tym, aby uzbroić system, jego obecność przestaje mieć jakiekolwiek znaczenie. O ile w firmach daje się jeszcze wypracować pewne sztywne procedury, o tyle w prywatnym mieszkaniu jest to bardzo trudne. W efekcie, mimo zainstalowania nawet najdroższego i najnowocześniejszego systemu alarmowego, drzwi dalej stoją otworem przed amatorem cudzego mienia.
W artykule zaprezentowano rozwiązanie, które odbiega od stosowanych w urządzeniach dostępnych na rynku. Starano się w nim wyeliminować najbardziej zawodny element – tzw. czynnik ludzki. W klasycznych rozwiązaniach człowiek musi zadbać, aby włączyć i wyłączyć alarm. Ta centralka „obserwuje” zachowania ludzi i „podejmuje” decyzję o uzbrojeniu się. Można ją również ustawić tak, aby samoczynnie wyłączyła się. Tym samym system alarmowy może „żyć” całkowicie własnym życiem pilnując dobytku.
Budowa
Schematy ideowe bloków alarmu zamieszczono na rysunkach 1 (płyta główna) i 2 (klawiatura). Ze względu na rozbudowane oprogramowanie (głównie za sprawą obszernego menu ustawień), w urządzeniu zastosowano mikrokontroler o sporej pamięci programu – ATmega32 (U2). Mikrokontroler i oprogramowanie w nim zawarte stanowią główną część urządzenia.
Blok zasilania mikrokontrolera i układów peryferyjnych jest typowy. Zasilanie jest doprowadzone do CON1, a następnie przez diodę D1 zabezpieczającą przed odwrotną polaryzacją, podawane na stabilizator 7805 (U1). Układ ma odseparowane obwody zasilania centralki (VCC, GND) oraz obwodów zewnętrznych, takich jak czujniki oraz syrena alarmowa (C_VCC, C_GND). W związku z tym jedynym skutkiem próby sabotażu na obwodzie zasilania może być zwarcie zasilania czujników lub zniszczenie transoptora OC4. Gdyby doszło do takiej sytuacji, oba zdarzenia zostaną natychmiast rozpoznane przez centralkę jako próba włamania.
Słabym punktem konstrukcji jest interfejs RS-485, ponieważ nie ma zabezpieczenia antysabotażowego. By system mógł być bardziej niezawodny, warto zrezygnować z transmisji RS-485, bądź tak zmodyfikować układ interfejsu, aby oddzielić galwanicznie płytę główną od RS-485. Można to osiągnąć stosując transoptory lub specjalizowany układ optoizolowanego interfejsu RS-485 – MAX1480.
Innymi, potencjalnie równie atrakcyjnymi miejscami dla osoby mającej interes w tym, aby uszkodzić system alarmowy, są przewody sygnałowe czujników. W przypadku tego urządzenia narażone są wejścia IN_1...IN_3 oraz PAR_IN_1...PAR_IN_3. O ile wejścia cyfrowe wydają się być zabezpieczone dzięki separacji galwanicznej, to analogowe takiego zabezpieczenia nie mają. Co prawda, wyposażono je w podstawowe zabezpieczenia przed podaniem napięcia przekraczającego 5 V (D17...D22, R38...R40), jednak trudno przewidzieć jak sprawdzą się one w przypadku różnych udarów.
Próby obejścia obwodów czujników poprzez ich rozwieranie lub zwieranie do masy czy zasilania będą dużo trudniejsze w przypadku wejść analogowych (parametrycznych). Dzięki zastosowaniu rezystorów (będzie to dokładnie omówione dalej) bezpośrednio w obwodzie czujnika, można zagwarantować indywidualny poziom napięcia na każdym z trzech wejść analogowych. Napięcie jest mierzone w pewnych odstępach czasu, a później porównywane z ustawionym w parametrach. Każda zmiana napięcia na wejściu jest wykrywana, a mikrokontroler podejmuje odpowiednie, zaprogramowane działanie.
W urządzeniu zastosowano transoptory PC814 (OC1...OC3) z dwiema diodami LED włączonymi przeciwnie także niezależnie od polaryzacji jedna przewodzi. Dzięki takiemu rozwiązaniu i odpowiedniemu ustawieniu zworek J8...J10 jest możliwe wyzwalanie alarmu przez rozwarcie (NC) lub zwarcie (NO) napięcia VCC (J8 w pozycji 1-2) lub masy zasilania GND (J8 w pozycji 2-3). J8 dotyczy wejścia cyfrowego IN_1. Dla wejść cyfrowych IN_2 i IN_3 taką rolę pełnią odpowiednio J9 i J10.
Kolejnym ważnym elementem jest zegar czasu rzeczywistego (RTC). Zbudowano go z użyciem PCF8583 (U4) z interfejsem I2C. Rozwiązanie takie upraszcza program mikrokontrolera oraz umożliwia łatwe zasilanie awaryjne, pozwalające na nieprzerwaną, bezawaryjną pracę zegara RTC po zaniku głównego napięcia zasilania. Bezprzerwową pracę zegara gwarantuje bateria litowa BAT1.
Do komunikacji z użytkownikiem przeznaczono 16-znakową klawiaturę z interfejsem I2C oraz wyświetlacz 2×16 znaków. Wyświetlacz jest sterowany z użyciem 4-bitowego interfejsu danych (D4...D7 podłączone do PB5, PB6, PB7, PB4, RS do PB3, ENABLE do PB2). Linie danych wyświetlacza są współdzielone ze złączem programowania w systemie (ISP). PR1 służy do regulacji kontrastu wyświetlacza. Mikrokontroler za pośrednictwem D8, PR2, R5, T5, R6. PR2 ustala intensywność tego podświetlenia.
Złącze CON15 służy do podłączenia klawiatury. Początkowo do obsługi klawiatury matrycowej 4×4 chciałem użyć portu PA. Ostatecznie z myślą o obsłudze klawiatury do złącze CON16 podłączyłem interfejs I2C, a port PA zastosowałem do pomiarów napięć na wejściach PAR_IN_1...PAR_IN_3. Jedną z linii przeznaczyłem do pomiaru napięcia na fotorezystorze FR1, co pozwala na pomiar jasności oświetlenia. Na podstawie konfiguracji zaprogramowanej przez użytkownika oraz informacji zbieranych przez mikrokontroler (czas jaki upłynął od ostatniego ruchu wykrytego w pomieszczeniu, aktualnej godziny oraz poziom oświetlenia) złącze przekaźniki mikrokontroler Pk1...Pk3.
Pierwszy styk przekaźnika Pk1 załącza główny, zewnętrzny sygnalizator alarmu, natomiast drugi styk został wyprowadzony na złącze CON8. W trybie czuwania Pk2 załącza się natychmiast po wykryciu ruchu. Jego pierwszy styk może załączać ciche powiadomienie, a drugi został wyprowadzony na CON7. Można do niego podłączyć np. główny włącznik oświetlenia chronionego pomieszczenia. Pomiędzy odpowiednimi stykami przekaźników Pk1, Pk2 a złączami CON9 i CON10 zastosowano bezpieczniki zwłoczne (F1, F2), mające na celu odcięcie linii sygnalizatora od płyty głównej centrali przy próbie zwarcia sygnalizatora.
Pk3 może pełnić dowolną rolę. Jest załączany wraz z przejściem centrali w stan uzbrojenia (styki wyprowadzone na złącza CON4, CON5). Złącza te można wykorzystać do sterowania nocnym oświetleniem pomocniczym.
Centrala komunikuje się z użytkownikiem za pomocą informacji wyświetlanych na ekranie LCD. Część informacji komunikowana jest użytkownikowi przez 6 diod LED na płycie głównej (D11...D13 – komunikacja RS-485, D14...D16 – włączenie przekaźników Pk1...Pk3) oraz 8 diod LED w module klawiatury (D1...D5, D8 – aktywność czujek ruchu IN_1...IN3, PAR_IN_1...PAR_IN_3; D6, D7 – podświetlanie klawiatury). Część komunikatów sygnalizowana jest użytkownikowi dźwiękowo, za pomocą buzzera (G1), sterowanego z portu mikrokontrolera przez R4, T4.
Klawiaturę zbudowano z dwóch ekspanderów portów I2C, przycisków S1...S16, rezystorów RP1, diod (D1...D12) i (R1...R6). U1 steruje sygnalizacyjnymi diodami LED, natomiast U2 – matrycową klawiaturę 4×4. Jej wiersze podłączone są za pomocą diod D9...D12 do 4 bitów (P0...P3), o kolumny do 4 starszych bitów (P4...P7). Interfejs I2C jest wyprowadzony na złącze CON1. Moduł jest zasilany z pierwszego i ostatniego pinu złącza CON2.
Oprogramowanie
Ze względu na złożoność programu, wyrywkowo przedstawię jego kluczowe funkcje.
W pętli głównej:
- Sprawdzane są flagi bitowe statusów poszczególnych faz, w jakich może znajdować się centrala (uzbrojenia, uzbrajania się, rozbrajania, alarmowania) i na ich podstawie są wyświetlane informacje na wyświetlaczu LCD oraz podejmowane decyzje, w tym obsługa przekaźników alarmowych.
- Jest sprawdzany stan klawiatury (obsługę zdarzeń z tym związanych przejmują procedury obsługi klawiatury).
- Z RTC są pobierane aktualna data i godzina.
- Jest wywoływany szereg procedur mających za zadanie ustalenie stanu czujek, porównanie wyników z ustawieniami użytkownika i obsługa zdarzeń
- Odbywa się sterowanie podświetleniem LCD.
Po włączeniu zasilania mikrokontroler pobiera z pamięci EEPROM ustawienia użytkownika. Przy pierwszym włączeniu do pamięci zostaną przyjęte ustawienie domyślne, które zostaną też zapisane w pamięci EEPROM. Na wyświetlaczu pojawi się komunikat „Alarm rozbrojony” oraz zostaną wyświetlone aktualne data i godzina. Alarm zaczyna odliczać tzw. czas bezruchu Gdy przekroczy on wartość zaprogramowaną przez użytkownika, centrala rozpocznie procedurę autouzbrojenia.
Przypuśćmy, że jest nadzorowane wnętrze kiosku. Gdy sprzedawca znajduje się w środku, cały czas jest w polu widzenia czujki ruchu. Sygnały z niej docierające spowodują, że alarm nie będzie mógł się uzbroić. Gdyby jednak z jakiegoś powodu sprzedawca nie drgnął przez ustawiony czas opóźnienia, to zostanie uruchomiona procedura autouzbrojenia, co będzie sygnalizowane krótkimi piskami buzzera. Włączy się też podświetlanie wyświetlacza LCD i widoczny będzie na nim czas pozostały do uzbrojenia. Jeśli sprzedawca poruszy się, da znać centrali, że jest obecny, i że centrala nie powinna przechodzić do czuwania. Procedura autouzbrojenia zostanie przerwana, a czas bezruchu zostanie wyzerowany. Inaczej oprogramowanie centrali uzna, że osoby nie ma już w pomieszczeniu uzbroi się. Na wyświetlaczu ukaże się komunikat „ALARM UZBROJONY”.
Gdy w stanie uzbrojenia ruch zostanie wykryty, buzzer wyda pojedynczy krótki pisk. Pisk oznacza, że czujka wykryła ruch i została rozpoczęta procedura przygotowania do alarmu. Na wyświetlaczu pojawi się komunikat „Do alarmu: XY s.” Centrala właśnie zaczęła odliczać „czas opóźnienia alarmu”. W tym czasie należy nacisnąć klawisz „RZBR”. Na wyświetlaczu pojawi się komunikat „Hasło: ”. Jeśli użytkownik wpisze prawidłowe 9-znakowe hasło, alarm zostanie rozbrojony. W przeciwnym wypadku jest generowany długi sygnał dźwiękowy informujący o błędnie wprowadzonym haśle, bądź przekroczeniu czasu jego wprowadzania. Jeśli został mu jeszcze jakiś czas z puli „czasu opóźnienia alarmu”, będzie mógł próbę ponowić. Jednak jeśli skończy się „czas opóźnienia alarmu”, nastąpi uruchomienie alarmu.
Oczywiście użytkownik będzie mógł ponownie nacisnąć przycisk „RZBR” i ostatecznie rozbroić alarm.
Opóźnienie wprowadzono po to, aby umożliwić użytkownikowi ciche wyłączenie alarmu. Warto dodać, że każde wciśnięcie „RZBR” daje zawsze kilka sekund na wprowadzenie hasła. Jeśli wprowadzi się je poprawnie, alarm zostanie rozbrojony, lecz gdy nie zdąży się go wpisać w ciągu tych kilku sekund, bądź wpisze je źle, alarm zostanie uruchomiony. Nie ma tu zatem zdefiniowanej dopuszczanej liczby pomyłek. Po prostu użytkownik musi zmieścić się w „czasie opóźnienia alarmu”.
Jak już wspomniano, przy pierwszym uruchomieniu (lub ponownym zaprogramowaniu mikrokontrolera) niezbędne jest dokonanie personalizacji systemu, a więc wejście w menu konfiguracji i ustawienie ponad dwudziestu opcji oraz dokonanie zmiany hasła użytkownika (domyślnie „123456”).
Obsługa układu zegara RTC. Układ PCF8583 ma dwa adresy, odrębnie dla zapisu i odczytu danych. Stała Adres_odbiorczy_rtc ma wartość 163, a Adres_nadawczy_rtc 162. Do obsługi komunikacji z PCF8583 służą procedury z listingu 1.
Sub Odczytaj_rtc
I2cstart
I2cwbyte Adres_nadawczy_rtc
I2cwbyte 2
I2cstart
I2cwbyte Adres_odbiorczy_rtc
I2crbyte Sekundy, Ack
I2crbyte Minuty, Ack
I2crbyte Godziny, Ack
I2crbyte Dni, Ack
I2crbyte Miesiace, Nack
I2cstop
Sekundy = Makedec(sekundy)
Minuty = Makedec(minuty)
Godziny = Makedec(godziny)
Dni = Makedec(dni)
Miesiace = Makedec(miesiace)
End Sub
Sub Zapisz_czas
Sekundy = Makebcd(sekundy)
Minuty = Makebcd(minuty)
Godziny = Makebcd(godziny)
I2cstart
I2cwbyte Adres_nadawczy_rtc
I2cwbyte 0
I2cwbyte 8
I2cstop
I2cstart
I2cwbyte Adres_nadawczy_rtc
I2cwbyte 2
I2cwbyte Sekundy
I2cwbyte Minuty
I2cwbyte Godziny
I2cstop
End Sub
Sub Zapisz_date
Dni = Makebcd(dni)
Miesiace = Makebcd(miesiace)
I2cstart
I2cwbyte Adres_nadawczy_rtc
I2cwbyte 0
I2cwbyte 8
I2cstop
I2cstart
I2cwbyte Adres_nadawczy_rtc
I2cwbyte 5
I2cwbyte Dni
I2cwbyte Miesiace
I2cstop
End Sub
Obsługa modułu klawiatury. Moduł klawiatury zbudowano z użyciem dwóch PCF8574A. Pierwszy obsługuje diody LED, drugi klawiaturę matrycową 4×4. Ich adresy są następujące:
Adres_odbiorczy_pcf8574_led = 121
Adres_nadawczy_pcf8574_keyboard = 124
Adres_odbiorczy_pcf8574_keyboard = 125
Odczyt klawiatury polega na wykonaniu pewnego algorytmu. Np. aby sprawdzić pierwszy wiersz pierwszej kolumny należy wykonać:
- Wyzerować bit pierwszego wiersza (pozostałe muszą być w stanie „1”).
- Odczytać stan kolumn.
- Jeśli pierwsza kolumna jest „0”, to zwarty jest przycisk S1, jeśli druga, to S2 itd.
W podobny sposób należy sprawdzić pozostałe trzy wiersze klawiatury. Przykład gotowych, uproszczonych procedur zamieszczono na listingu 2. W procedurze Odczytaj_klawiature znajduje się również fragment zapewniający oczekiwanie na zwolnienie klawisza po uprzednim jego naciśnięciu. W tym celu wszystkie poziomy klawiatury zostają ustawione na „0” a program oczekuje, aż wszystkie klawisze zostaną zwolnione.
Sub Odczytaj_klawiature
Kod_klawisza = 255
Pion = 1
I2csend Adres_nadawczy_pcf8574_keyboard , 254
Call Sprawdz_piony
Pion = 2
I2csend Adres_nadawczy_pcf8574_keyboard , 253
Call Sprawdz_piony
Pion = 3
I2csend Adres_nadawczy_pcf8574_keyboard , 251
Call Sprawdz_piony
Pion = 4
I2csend Adres_nadawczy_pcf8574_keyboard , 247
Call Sprawdz_piony
If Kod_klawisza <> 255 Then
I2csend Adres_nadawczy_pcf8574_keyboard , 240
I2creceive Adres_odbiorczy_pcf8574_keyboard , Odczytana_wartosc
If Odczytana_wartosc <> 240 Then
Cls
Lcd Kod_klawisza
‚Tu -> Obsługa klawiszy
...
Do
Waitms 50
I2csend Adres_nadawczy_pcf8574_keyboard , 240
I2creceive Adres_odbiorczy_pcf8574_keyboard , Odczytana_wartosc
If Odczytana_wartosc = 240 Then Exit Do
Loop
End if
End Sub
Sub Sprawdz_piony
I2creceive Adres_odbiorczy_pcf8574_keyboard , Odczytana_wartosc
Pion1 = Odczytana_wartosc.4
Pion2 = Odczytana_wartosc.5
Pion3 = Odczytana_wartosc.6
Pion4 = Odczytana_wartosc.7
Call Detekcja_klawiszy
End Sub
Sub Detekcja_klawiszy
If Pion = 1 Then
If Pion1 = 0 Then Kod_klawisza = 10
If Pion2 = 0 Then Kod_klawisza = 3
If Pion3 = 0 Then Kod_klawisza = 2
If Pion4 = 0 Then Kod_klawisza = 1
End If
If Pion = 2 Then
If Pion1 = 0 Then Kod_klawisza = 11
If Pion2 = 0 Then Kod_klawisza = 6
If Pion3 = 0 Then Kod_klawisza = 5
If Pion4 = 0 Then Kod_klawisza = 4
End If
If Pion = 3 Then
If Pion1 = 0 Then Kod_klawisza = 12
If Pion2 = 0 Then Kod_klawisza = 9
If Pion3 = 0 Then Kod_klawisza = 8
If Pion4 = 0 Then Kod_klawisza = 7
End If
If Pion = 4 Then
If Pion1 = 0 Then Kod_klawisza = 13
If Pion2 = 0 Then Kod_klawisza = 14
If Pion3 = 0 Then Kod_klawisza = 0
If Pion4 = 0 Then Kod_klawisza = 15
End If
End Sub
Sterowanie diodami LED zawartymi w module klawiatury jest dużo prostsze. Wystarczy wykonać:
Zliczanie pojedynczych sekund jest niezależne od zegara RTC oraz fazy wykonywania programu. Może przydać się do realizacji sterowania podświetlaniem, kontrolowania czasów bezruchu, opóźnienia alarmu, wprowadzania hasła i innych funkcji. W programie czas jest odmierzany przy użyciu Timera 1 generującego przerwania co 1 sekundę.
Na listingu 3 umieszczono gotowy program obsługi i konfiguracji przerwania Timera1 w Bascom AVR.
Config Timer1 = Timer , Prescale = 256
On Timer1 Zlicz_sekunde
Timer1 = 34286
Enable Interrupts
Enable Timer1
Timer1 = 34286
...
Zlicz_sekunde:
Timer1 = 34286
Incr Zliczone_sekundy
Incr Zliczone_sekundy_byte
Decr Zliczone_sekundy_alarmu
If Zliczone_sekundy_lcd > 0 Then Decr Zliczone_sekundy_lcd
Return
Montaż
Alarm składa się z dwóch płytek: głównej (rysunek 3) oraz modułu klawiatury (rysunek 4).
Montaż płyty głównej rozpoczynamy od rezystorów. Następnie montujemy dławik (L1), diody, podstawki pod układy scalone U2...U4 oraz sieć rezystorową RP1. Pod transoptory OC1...OC4 można zastosować pojedynczą podstawkę 16-nóżkową. Teraz czas na tranzystory i diody LED. Ich kolory wybieramy zgodnie z wykazem elementów. Następne są kondensatory ceramiczne C2, C4...C14. Na tym etapie dobrze jest zamontować listwy goldpin pod zworki J1, J3, J4, J8...J11. Montaż listwy goldpin pod jumper J2 nie jest konieczny, gdyż kontrolę nad podświetleniem wyświetlacza przejmuje mikrokontroler. Można pominąć również montowanie listw pod zwory J2, J5...J7 i gniazda CON18, ponieważ nie zostały one uwzględnione w oprogramowaniu mikrokontrolera. Pozostał montaż gniazd na goldpiny (CON14...CON16, CON17) i elementów najwyższych: potencjometrów PR1 i PR2, buzzera G1, złączy ARK (CON1...CON13), gniazd pod bezpieczniki F1 i F2, gniazdo baterii (BAT1), kondensatorów elektrolitycznych C1 i C3, fotorezystora FR1, przekaźników Pk1...Pk3, rezonatorów kwarcowych (X1, X2) oraz stabilizatora U1.
Montaż modułu klawiatury proponuję przeprowadzić w następującej kolejności: rezystory, diody (D9...D12) oraz klawisze (S1...S16). Przy montażu klawiszy radzę zachować szczególną uwagę. Powinny mieć wysokość 12 mm i muszą być zamocowane bardzo równo, gdyż każde odchylenie od pionu będzie widoczne po założeniu płytki maskującej. Starajmy się, aby klawisze znalazły się dokładnie w środku otworów maskownicy. Być może uda się za pomocą maskownicy docisnąć wszystkie microswitche do płytki PCB i dzięki niej równo je przylutować. Może się jednak okazać, że niektóre z przylutowanych przycisków trzeba będzie minimalnie poprawić.
Gdy ten etap mamy za sobą pozostaje przylutowanie sieci rezystorowej (RP1), podstawek pod U1, U2, ale uwaga: po drugiej stronie PCB (od umownej strony lutowania). Teraz do płytki wkładamy (na razie nie lutujemy) diody LED D1...D8 oraz przykręcamy maskownicę.
Niezbędne są do tego cztery śruby M3, cztery tuleje dystansowe o wysokości 10 mm otwór-gwint i cztery o wysokości 25 mm. Całość trzeba zmontować wg schematu: śruba M3, maskownica, tuleja dystansowa 10 mm, płytka klawiatury, tuleja 25 mm. Teraz poprawiamy diody LED w taki, aby znalazły się na linii maskownicy, odwracamy moduł i lutujemy diody do płytki klawiatury. Gdy diody są zamontowane pozostaje przylutować listwy goldpin służące do połączenia modułu klawiatury z płytą główną centrali. Listwy muszą mieć wysokość 23 mm. Zmontowany moduł klawiatury pokazano na fotografii 5.
Po zmontowaniu i optycznym sprawdzeniu poprawności montażu, jeszcze przed umieszczeniem układów scalonych w podstawkach, warto włączyć urządzenie do obu napięć zasilania (VCC-GND, C_VCC-C_GND) i sprawdzić czy na pinach zasilających układy scalone pojawiły się właściwe napięcia. Jeśli tak, wyłączamy zasilanie, umieszczamy układy scalone w podstawkach, a następnie montujemy wszystko w jedną całość. Do płyty głównej należy podłączyć wyświetlacz LCD. Zamocujemy go na czterech słupkach dystansowych otwór-gwint o wysokości 25 mm. Słupki te przykręcamy do wyświetlacza LCD za pomocą czterech śrub M3. Następnie do wyświetlacza lutujemy listwę goldpin o wysokości 23 mm. Wyświetlacz przykręcamy do płyty centrali za pomocą słupków dystansowych otwór-otwór o wysokości 15 mm. Słupki te mogą być wykorzystane do późniejszego przytwierdzenia alarmu do ewentualnej obudowy. Teraz pozostaje zamontować moduł klawiatury. Należy go zamocować tak samo, jak wyświetlacz. Od strony lutowania płyty głównej, moduł klawiatury przytwierdzamy czterema słupkami dystansowymi otwór-otwór o wysokości 15 mm. Po zmontowaniu urządzenia uzyskaliśmy na jego spodzie 8 słupków mogących posłużyć do zamontowania alarmu w obudowie.
Uruchomienie
Pierwszą czynnością po zmontowaniu urządzenia w jedną całość jest odpowiednie ustawienie fuse bitów i zaprogramowanie mikrokontrolera. Po zaprogramowaniu mikrokontroler zgłosi się z komunikatem powitalnym, wykona procedurę autotestu, zapisze pamięć ustawień (EEPROM) ustawieniami domyślnymi i będzie gotowe do pracy. Jeśli po włączeniu zasilania program uruchamia się prawidłowo, lecz buzzer wciąż piszczy, najprawdopodobniej w opcjach fuse bitów należy wyłączyć interfejs JTAG.
Po pierwszym starcie centralki należy poprawnie określić jej parametry pracy. W tym celu przyciskamy klawisz „OPCJE”. Pojawi się pytanie o hasło – domyślne to „123456”.
Zarówno przy wejściu do menu opcji, jak i podczas rozbrajania alarmu, należy jednak wpisywać hasło 9 znakowe. Pozostałe trzy cyfry kodu należy odczytać z odpowiednich miejsc na wyświetlaczu, dzięki czemu nawet osoba patrząca nam na ręce podczas wprowadzania hasła, a nie znająca reguły, nie będzie w stanie poprawnie użyć go ponownie, ponieważ zmienia się ono co minutę. Do poprawnego zalogowania się należy użyć kolejno cyfr: jedności godzin, jedności minut, sześć cyfr kodu użytkownika, oraz jedności dnia miesiąca.
Przykładowo, jeśli mikrokontroler został właśnie zaprogramowany, a na wyświetlaczu widnieje godzina 18:33:06 oraz data 14 maj, wówczas prawidłowe 9-cyfrowe hasło będzie miało postać: 831234564.
Po zalogowaniu do menu ustawień mamy do dyspozycji 22 grupy ustawień. Poruszamy się po nich strzałkami lewo/prawo. Aby zatwierdzić interesującą nas grupę/opcję naciskamy klawisz ENTER. Dostępne opcje to:
- Ustaw czas. Po zatwierdzeniu wyboru w miejscu dziesiątek godzin ustawiony zostanie migający kursor sugerujący wprowadzenie cyfry z klawiatury. Po jej wprowadzeniu kursor zostanie umieszczony na kolejnej pozycji – jedności godzin i tak dalej. Po podaniu ostatniej cyfry, czyli jedności sekund, godzina zostanie zapisana do układu zegara. Jeśli przy wprowadzaniu godziny popełniliśmy błąd, zostaniemy o tym poinformowani, a godzina nie zostanie zapisana.
- Ustaw datę. Tu postępujemy podobnie jak wyżej z tym, że wyboru miesiąca wyświetlanego w postaci słownej wybieramy za pomocą klawiszy strzałek. Wybór zatwierdzamy klawiszem ENTER.
- Czas bezruchu (opis wyżej). Czas minimalny to 1 minuta, maksymalny: 59 minut. Ustawień dokonujemy za pomocą klawiszy strzałek i zatwierdzamy ENTER-em.
- Godzina autouzbrojenia. To godzina, o której alarm rozpocznie procedurę autouzbrojenia, niezależnie od pozostałego limitu czasu bezruchu.
- Godzina autorozbrojenia. Powinna to być godzina otwarcia chronionego obiektu (np. miejsca pracy). Centrala każdego dnia o ustawionej w tej opcji godzinie rozbroi się automatycznie, i będzie można swobodnie wejść do pomieszczenia. Jeśli mimo rozbrojenia nikt do pomieszczenia nie wejdzie, alarm uzbroi się automatycznie po upłynięciu dopuszczalnego czasu bezruchu. Uzbroi się również wtedy (natychmiast), gdy poziom oświetlenia wewnątrz pomieszczenia będzie mniejszy niż próg ciemności zadeklarowany w opcjach. Godzina autorozbrojenia jest opcją bardzo wygodną, ale też niebezpieczną, więc należy korzystać z niej świadomie i z rozwagą. W podstawowej wersji centrala nie rozróżnia dni tygodnia i autorozbrojenie nastąpi każdego dnia tygodnia, od poniedziałku do niedzieli.
- Próg ciemności. Zmienna jest wykorzystywana w kilku przypadkach. Po jej przekroczeniu (zbyt mały poziom oświetlenia sugerujący brak osób w pomieszczeniu) centrala, niezależnie od tego, czy pozostał jakiś czas z puli czasu bezruchu, rozpocznie procedurę autouzbrojenia. W praktyce zadziała to w taki sposób, że gdy użytkownik zgasi światło, procedura autouzbrojenia zostanie wywołana natychmiast, a nie dopiero po upłynięciu zadeklarowanego czasu bezruchu. Jeśli w nadzorowanym pomieszczeniu nie zostanie wykryty ruch, system uzbroi się. Od momentu przekroczenia progu ciemności, podczas naciskania klawiszy, bądź przy wykryciu ruchu i przy wykonywaniu procedur, w których może istnieć potrzeba skorzystania z klawiatury, zostanie ona podświetlona, co nie nastąpi, gdy jest widno. Próg ciemności może przyjmować wartości od 1 (maksymalnie jasno) do 1024 (maksymalnie ciemno). Dla orientacji w nawiasach jest podawana wartość odpowiadająca aktualnemu poziomowi oświetlenia w pomieszczeniu. Nastaw dokonujemy za pomocą klawiszy lewo/prawo (o 100), 7/9 (o 10) oraz 4/6 (o 1). Odpowiednią nastawę zatwierdzamy ENTER-em.
- We. IN_1. Grupa opcji dotycząca cyfrowego wejścia czujki nr 1. Po zatwierdzeniu grupy zostanie wyświetlony napis „Status:” oraz „Zal” (załączony) albo „Wyl” (wyłączony). W tym miejscu informujemy centralę czy ma brać to wejście pod uwagę. Strzałkami dokonujemy wyboru pomiędzy tymi dwoma opcjami i zatwierdzamy ENTER-em. Wybór „Wyl” spowoduje wyłączenie czujki i powrót do menu ustawień. Wybór „Zal” spowoduje zaświecenie diody informującej o załączeniu czujki oraz przejście do kolejnej opcji dla tego wejścia. Kolejna opcja to „Tryb”. Podłączona czujka może działać w dwóch trybach, a centrala może reagować na rozwarcie obwodu (NC) lub zwarcie obwodu (NO). Dla większości przypadków odpowiednią będzie opcja NC. Wybór zatwierdzamy ENTER-em.
- We. IN_2, We. IN_3. Grupy opcji dotyczących wejść cyfrowych 2 i 3.
- We. PAR_IN_1. Grupa opcji dotycząca analogowego wejścia czujki nr 1. W pierwszej kolejności można uaktywnić bądź wyłączyć wejście. Jeśli wejście zostanie włączone, centrala zapyta o parametr określający stan normalny (podłączony czujnik w danym momencie nie wykrywający ruchu). W nawiasie podawana jest bieżąca wartość parametru, dzięki czemu bez trudu można wprowadzić prawidłową wartość przepisując ją. Nastawy mieszczą się w przedziale 0...1023. W zależności od tego, co dzieje się na wejściu, centrala jest w stanie rozróżnić każdą możliwą sytuację (czujka w stanie spoczynku, czujka która wykryła ruch, przecięcie przewodu i odłączenie czujki, zwarcie linii sygnałowych do masy lub plusa zasilania) i na podstawie tej informacji podjąć decyzję, np. o rozpoczęciu procedury alarmowania. Warto ustawić różne parametry linii dla każdego z wejść analogowych. Dokonuje się tego za pomocą dwóch rezystorów zamontowanych wewnątrz czujki. Dla przykładowego doboru rezystorów (rysunek 6) w modelu prototypowym centrala stwierdza następujące wartości odpowiadające następującym stanom:
- czujka w stanie spoczynku: 892,
- czujka wykryła ruch: 988,
- zwarcie linii sygnałowych do masy: 843,
- rozwarcie linii/odcięcie czujnika, zwarcie do VCC: 1023.
Po wprowadzeniu parametru czujki w stanie spoczynku, centrala zapyta o tolerancję, czyli wartość jaką należy dodać lub odjąć od zadeklarowanego parametru, a wynik pomiaru i tak zostanie uznany za prawidłowy. Parametr tolerancji jest potrzebny, gdyż wprowadzona wartość może na skutek np. czynników zewnętrznych (temperatura otoczenia, wilgotność) z biegiem czasu ulec zmianie i wygenerować fałszywy alarm. Wartość tolerancji proponuję ustawić na 3.
- We. PAR_IN_2, We. PAR_IN_3. Grupa opcji dotycząca analogowego wejścia czujki nr 2.
- Czas alarmu. W tym miejscu ustalamy czas trwania pojedynczego cyklu alarmowego. Wartość minimalna to 1 minuta, wartość maksymalna to 30 minut.
- Czas uzbrajania. Jest to czas trwania procedury autouzbrajania, która zostaje wywołana po upłynięciu czasu bezruchu. Może ona trwać od 1 do 60 sekund.
- Czas opóźnienia. Jest to czas pomiędzy wykryciem ruchu w stanie uzbrojenia a rozpoczęciem alarmowania. Może przyjąć wartość z zakresu od 1 do 60 sekund. W tym czasie osoba upoważniona może wprowadzić hasło i anulować procedurę alarmowania bez niepotrzebnego hałasu.
- Czas wprowadzania hasła. Czas, w którym musi się zmieścić osoba podejmująca próbę wprowadzenia 9-znakowego hasła. Liczy się on od momentu naciśnięcia klawisza „RZBR”. Może przyjąć wartość z zakresu od 5 do 30 sekund.
- Podświetlanie LCD. W tej opcji można ustawić czas, przez który ma być włączone podświetlanie LCD po wykryciu ruchu lub naciśnięciu klawisza. Czas ten może przyjąć wartość od 6 do 29 sekund. Ustawienie wartości 5 spowoduje trwałe wyłączenie podświetlania, zaś ustawienie wartości 30 spowoduje trwałe jego włączenie.
- Generator piezo. W tej opcji mamy możliwość załączenia bądź wyłączenia buzzera piezo. Nastaw dokonujemy klawiszami strzałek i potwierdzamy klawiszem ENTER.
- Zmień hasło. Po zatwierdzeniu opcji centrala zapyta o stare hasło (tu tylko 6 cyfr). Domyślnie jest to „123456”, później takie, które ustawi użytkownik. Po wprowadzeniu prawidłowego, dotychczasowego hasła centrala zapyta o nowe sześcioznakowe hasło. Po jego wprowadzeniu centrala poprosi o potwierdzenie nowego hasła. Jeśli dwukrotnie wpisaliśmy takie samo hasło, hasło użytkownika zostanie zmienione. W przeciwnym przypadku zostanie wyświetlony komunikat o błędzie.
- Sesje RS485. Pozycja zarezerwowana dla grupy opcji dotyczących komunikacji po magistrali RS-485. Nieaktywna, gdyż niewspierana w podstawowej wersji oprogramowania.
- Ustawienia fabryczne. Przywraca domyślne (fabryczne) ustawienia centrali.
- Powrót. Wyjście z ustawień. Wyjścia z ustawień możemy również dokonać z dowolnej pozycji ustawień, naciskając klawisz „DATA CZAS”.
Po prawidłowym skonfigurowaniu centrala jest gotowa do pracy. Życzę zadowolenia z użytkowania alarmu i bezpiecznych wakacji!
Mariusz Ciszewski
mariusz.ciszewski@elportal.pl
- R1...R5: 1 kΩ
- R6...R8: 510 Ω
- R9: 120 Ω
- R10, R17, R18, R21...R33: 4,7 kΩ
- R11...R16: 220 Ω
- R19: 47 Ω
- R20: 10 kΩ
- R34...R37: 820 kΩ
- R38...R40: 22 kΩ
- PR1: 100 kΩ
- PR2: 10 kΩ
- RP1: drabinka 8×4,7 kΩ
- C1: 470 µF/16 V
- C2, C4...C6, C9...C13: 100 nF
- C3: 47 µF/16 V
- C7, C8, C14: 33 pF
- D1, D4...D7: 1N4007
- D2, D3, D8: 1N4148
- D11, D14...D16: LED 5 mm zielona
- D12: LED 5 mm czerwona
- D13: LED 5 mm żółta
- D17...D22: BAT85
- T1...T5: BC548
- OC1...OC4: PC814 lub LVT814
- U1: 7805
- U2: ATmega32
- U3: MAX485
- U4: PCF8583
- FR1: Fotorezystor
- Podstawka 40-pin: 1 szt.
- Podstawka 8-pin: 2 szt.
- Wyświetlacz LCD 16×2
- Listwa goldpin 16×1 h=23 mm
- X1: rezonator kwarcowy 8 MHz
- X2: rezonator kwarcowy 32768 Hz
- L1: dławik 10 µH
- Pk1...Pk3: przekaźnik RM84
- F1, F2: bezpiecznik 2A zwłoczny
- G1: buzzer 5 V z generatorem
- J1, J2, J8...J11: goldpin 3×1 + jumper
- J3, J4: goldpin 2×1 + jumper
- J5...J7: nie montować
- CON1...CON3, CON6, CON9, CON10, CON13: ARK2 5 mm
- CON4, CON5, CON 7, CON8, CON11, CON12: ARK3 5 mm
- CON14: gniazdo goldpin 16×1
- CON15: gniazdo goldpin 10×1
- CON16: gniazdo goldpin 2×1
- CON17: goldpin 5×2
- CON18: nie montować
- BAT1: CR2032 + gniazdo
- R1, R2: 150 Ω
- R3...R6: 4,7 kΩ
- RP1: sieć 8×150 Ω
- D1...D5, D8: LED 5 mm czerwona
- D6, D7: LED 5 mm żółta
- D9...D12: 1N4148
- U1, U2: PCF8574A + podstawka 16 pin
- S1...S16: microswitch h=12 mm
- CON1: listwa goldpin 2×1 h=23 mm
- CON2: listwa goldpin 10×1 h=23 mm