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