Dzięki Arduino możemy rozbudować niemalże dowolną centralkę alarmową o funkcję wysyłania powiadomienia poprzez e-mail. Doskonale uzupełnia to starsze systemy alarmowe, które najczęściej nie są już podłączone do usługi monitorowania.
Istnieją komercyjnie dostępne produkty tego rodzaju, ale są one dosyć drogie. Przedstawiony poniżej projekt można zrealizować za niecałe 50 zł.
Potrzebne nam będą:
* Arduino, najlepiej modułu Uno lub Mega,
* Shield z Ethernetem - W5100,
* Kable do podłączenia Arduino do centralki,
* Kabel Ethernet.
Dodatkowo musimy mieć oczywiście w domu alarm, koniecznie taki, który posiada programowalny pin wyjściowy lub jakikolwiek pin wyjściowy, którego poziom chcemy monitorować poprzez Arduino. Autor projektu korzysta z centralki DSC power 832 PC5010, ale informacje odnośnie programowania wyjść z innych centralek powinny być dostępne w ich instrukcjach obsługi.
Krok 1: Zaprogramowanie naszego alarmu
Uwaga!
Dostęp do panelu bezpieczeństwa lub wprowadzanie zmian w konfiguracji alarmu może spowodować uruchomienie się alarmu antysabotażowego, szczególnie jeśli subskrybujemy usługę zdalnego monitorowania naszego systemu. Pamiętaj też, aby śledzić każdą wprowadzoną zmianę, aby w razie potrzeby móc ją później odwrócić i przywrócić alarm do stanu fabrycznego.
Próbujemy dokonać odczytu zmiany stanu z systemu po uruchomieniu alarmu. Większość systemów ma programowalny pin wyjściowy, który możemy wykorzystać do sygnalizowania zdarzeń np. dla Arduino. Możliwe jest również użycie sygnału z syreny (bez konieczności dokonywania jakichkolwiek zmian w systemie), ale wymagany będzie dodatkowy obwód i modyfikacja kodu Arduino. Autor projektu nie wykorzystał tej możliwości, ponieważ jego centralka posiada programowalny pin wyjściowy, a ponadto głównym problemem w tym projekcie jest kod programu wysyłającego e-mail.
Aby zmienić w naszej centralce konfigurację, należy postępować dokładnie z informacjami zawartymi w jej instrukcji obsługi. Dla centralki DSC, z jakiej korzysta autor układu, należy kolejno:
1. Skonfigurować pin PGM1 do sygnalizowania włączenia alarmu. Znajdziemy to w sekcji [009] jako opcja [01].
2. Można skonfigurować także dokładniejsze parametry załączania wyjścia PGM1 w sekcji [141]:
- Atrybut 1 na ON, dzięki czemu system załączy wyjście PGM1, gdy nastąpi alarm w sekcji 1.
- Atrybut 3 na OFF, dzięki czemu pin jest albo rozwarty albo zwarty do masy. Jeśli nastawimy go na ON, to wystąpi na nim napięcie stanu wysokiego centralki. Może uszkodzić Arduino, jeżeli tylko nie będzie ono w stanie pracować z danym napięciem.
- Wszystkie inne atrybuty na OFF.
Większość centralek alarmowych posiada wbudowany modem, który jest przeznaczony głównie do komunikacji z centralną stacją monitorującą przez linie telefoniczne. Jeśli nie otrzymuje ona cyklicznego potwierdzenia, że dane są wysyłane i poprawnie odbierane, zostanie wyświetlony kod błędu. Niektóre mogą być ustawione na wysyłanie wiadomości na pager lub na wywoływanie linii osobistej bezpośrednio przez centralkę - bez konieczności potwierdzenia otrzymania danych. Możliwe jest takie zaprogramowanie centralki, że zadzwoni ona do nas (jeśli mamy w domu telefon stacjonarny) na skonfigurowany numer w przypadku wystąpienia zdefiniowanego zdarzenia (na przykład włączenia alarmu).
Jeśli nie korzystamy z usług centrum monitorowania, to opcje dotyczące tego powinny być wyłączone, by centralka nie pokazywała kodów błędu etc.
Krok 2: Programowanie Arduino
Zanim przystąpimy do pisania kodu na Arduino, musimy zarejestrować się w usłudze, która pozwoli nam wysyłać e-mail. Autor skorzystał z prostego smtp2go, które jest darmowe i doskonale współpracuje z Arduino. dostępne są nawet przykładowe programy, z których pochodzi część kodu publikowanego poniżej. W pierwszej kolejności rejestrujemy się na stronie usługodawcy:
https://www.smtp2go.com
Po rejestracji musimy zakodować basze hasło i nazwę użytkownika (znajdziemy to na stronie w "Settings" > "Users") kodowaniem base64, aby wykorzystać wygenerowanie informacje w szkicu poniżej. W tym celu korzystamy z prostej stronki:
https://www.base64encode.org/
Kod źródłowy szkicu:
Sekcje, które należy edytować, by dopasować się do naszych potrzeb, opatrzono komentarzami.
Teraz możemy skompilować program i załadować go do modułu Arduino.
Krok 3: Zainstaluj Arduino w skrzynce rozdzielczej alarmu
Najpierw musimy zainstalować shield w5100 do Arduino. Następnie możemy zainstalować moduł w skrzynce, gdzie znajdują się linie centralki alarmowej. Moduł możemy przyczepić np. z pomocą rzepu, aby móc go ewentualnie wymienić czy łatwo zdemontować.
Arduino podłączamy w następujący sposób do centralki z przykładu:
* PGM1 do pinu 7 Arduino
* Aux(+) do Vin
* Aux(-) do GND
* Do gniazdka Ethernetowego podłączamy kabel LAN.
Teraz system powinien już działać. Możemy podłączyć się do Arduino po USB, by wykorzystać konsolę szeregową do sprawdzenia statusu programu. Podłączając kabel do USB pamiętajmy, by najpierw odłączyć linię AUX od alarmu.
Jeśli mimo testów nie otrzymujemy wyczekiwanego e-maila, a wiemy, że został wysłany, to warto sprawdzić folder SPAM w naszej skrzynce pocztowej.
Źródła:
https://www.instructables.com/id/Hack-Your-Security-System-to-Send-an-Email-Using-A/
https://github.com/hzmeister/arduino_alarm_email
Istnieją komercyjnie dostępne produkty tego rodzaju, ale są one dosyć drogie. Przedstawiony poniżej projekt można zrealizować za niecałe 50 zł.
Potrzebne nam będą:
* Arduino, najlepiej modułu Uno lub Mega,
* Shield z Ethernetem - W5100,
* Kable do podłączenia Arduino do centralki,
* Kabel Ethernet.
Dodatkowo musimy mieć oczywiście w domu alarm, koniecznie taki, który posiada programowalny pin wyjściowy lub jakikolwiek pin wyjściowy, którego poziom chcemy monitorować poprzez Arduino. Autor projektu korzysta z centralki DSC power 832 PC5010, ale informacje odnośnie programowania wyjść z innych centralek powinny być dostępne w ich instrukcjach obsługi.
Krok 1: Zaprogramowanie naszego alarmu
Uwaga!
Dostęp do panelu bezpieczeństwa lub wprowadzanie zmian w konfiguracji alarmu może spowodować uruchomienie się alarmu antysabotażowego, szczególnie jeśli subskrybujemy usługę zdalnego monitorowania naszego systemu. Pamiętaj też, aby śledzić każdą wprowadzoną zmianę, aby w razie potrzeby móc ją później odwrócić i przywrócić alarm do stanu fabrycznego.
Próbujemy dokonać odczytu zmiany stanu z systemu po uruchomieniu alarmu. Większość systemów ma programowalny pin wyjściowy, który możemy wykorzystać do sygnalizowania zdarzeń np. dla Arduino. Możliwe jest również użycie sygnału z syreny (bez konieczności dokonywania jakichkolwiek zmian w systemie), ale wymagany będzie dodatkowy obwód i modyfikacja kodu Arduino. Autor projektu nie wykorzystał tej możliwości, ponieważ jego centralka posiada programowalny pin wyjściowy, a ponadto głównym problemem w tym projekcie jest kod programu wysyłającego e-mail.
Aby zmienić w naszej centralce konfigurację, należy postępować dokładnie z informacjami zawartymi w jej instrukcji obsługi. Dla centralki DSC, z jakiej korzysta autor układu, należy kolejno:
1. Skonfigurować pin PGM1 do sygnalizowania włączenia alarmu. Znajdziemy to w sekcji [009] jako opcja [01].
2. Można skonfigurować także dokładniejsze parametry załączania wyjścia PGM1 w sekcji [141]:
- Atrybut 1 na ON, dzięki czemu system załączy wyjście PGM1, gdy nastąpi alarm w sekcji 1.
- Atrybut 3 na OFF, dzięki czemu pin jest albo rozwarty albo zwarty do masy. Jeśli nastawimy go na ON, to wystąpi na nim napięcie stanu wysokiego centralki. Może uszkodzić Arduino, jeżeli tylko nie będzie ono w stanie pracować z danym napięciem.
- Wszystkie inne atrybuty na OFF.
Większość centralek alarmowych posiada wbudowany modem, który jest przeznaczony głównie do komunikacji z centralną stacją monitorującą przez linie telefoniczne. Jeśli nie otrzymuje ona cyklicznego potwierdzenia, że dane są wysyłane i poprawnie odbierane, zostanie wyświetlony kod błędu. Niektóre mogą być ustawione na wysyłanie wiadomości na pager lub na wywoływanie linii osobistej bezpośrednio przez centralkę - bez konieczności potwierdzenia otrzymania danych. Możliwe jest takie zaprogramowanie centralki, że zadzwoni ona do nas (jeśli mamy w domu telefon stacjonarny) na skonfigurowany numer w przypadku wystąpienia zdefiniowanego zdarzenia (na przykład włączenia alarmu).
Jeśli nie korzystamy z usług centrum monitorowania, to opcje dotyczące tego powinny być wyłączone, by centralka nie pokazywała kodów błędu etc.
Krok 2: Programowanie Arduino
Zanim przystąpimy do pisania kodu na Arduino, musimy zarejestrować się w usłudze, która pozwoli nam wysyłać e-mail. Autor skorzystał z prostego smtp2go, które jest darmowe i doskonale współpracuje z Arduino. dostępne są nawet przykładowe programy, z których pochodzi część kodu publikowanego poniżej. W pierwszej kolejności rejestrujemy się na stronie usługodawcy:
https://www.smtp2go.com
Po rejestracji musimy zakodować basze hasło i nazwę użytkownika (znajdziemy to na stronie w "Settings" > "Users") kodowaniem base64, aby wykorzystać wygenerowanie informacje w szkicu poniżej. W tym celu korzystamy z prostej stronki:
https://www.base64encode.org/
Kod źródłowy szkicu:
Code: c
Sekcje, które należy edytować, by dopasować się do naszych potrzeb, opatrzono komentarzami.
Teraz możemy skompilować program i załadować go do modułu Arduino.
Krok 3: Zainstaluj Arduino w skrzynce rozdzielczej alarmu
Najpierw musimy zainstalować shield w5100 do Arduino. Następnie możemy zainstalować moduł w skrzynce, gdzie znajdują się linie centralki alarmowej. Moduł możemy przyczepić np. z pomocą rzepu, aby móc go ewentualnie wymienić czy łatwo zdemontować.
Arduino podłączamy w następujący sposób do centralki z przykładu:
* PGM1 do pinu 7 Arduino
* Aux(+) do Vin
* Aux(-) do GND
* Do gniazdka Ethernetowego podłączamy kabel LAN.
Teraz system powinien już działać. Możemy podłączyć się do Arduino po USB, by wykorzystać konsolę szeregową do sprawdzenia statusu programu. Podłączając kabel do USB pamiętajmy, by najpierw odłączyć linię AUX od alarmu.
Jeśli mimo testów nie otrzymujemy wyczekiwanego e-maila, a wiemy, że został wysłany, to warto sprawdzić folder SPAM w naszej skrzynce pocztowej.
Źródła:
https://www.instructables.com/id/Hack-Your-Security-System-to-Send-an-Email-Using-A/
https://github.com/hzmeister/arduino_alarm_email
Cool? Ranking DIY