Domofon GSM

Domofon GSM
Pobierz PDF Download icon

Domofony są wygodne i zwiększają bezpieczeństwo, ograniczając dostęp osobom postronnym do chronionego obszaru. W starych instalacjach zdarzają się uszkodzenia okablowania. Problemem może być wymiana kabla, zwłaszcza w domku jednorodzinnym, pomiędzy budynkiem a furtką, gdy posesja jest wyłożona kostką brukową lub zalana betonem. Domofony bezprzewodowe pracujące w paśmie ISM, tj. na częstotliwości 315, 433, 866 MHz lub 2,4 GHz, nie zawsze sprawują się dobrze ze względu na ograniczony zasięg i podatność na zakłócenia. Rozwiązaniem może być domofon wykorzystujący sieć GSM. Aktualnie nie ma problemu, aby znaleźć ofertę nielimitowanych połączeń za mniej niż 10 zł miesięcznie, więc domofon nie zrujnuje budżetu domowego, zwłaszcza jeśli koszty będą dzielone na kilka czy kilkanaście rodzin. Rekomendacje: Nowoczesny domofon, z czytnikiem RFID oraz zasilaniem awaryjnym, przyda się tam, gdzie ułożenie okablowania jest trudne lub kosztowne.

Wybór pomiędzy kolorowym wyświetlaczem z ekranem dotykowym a panelem z przyciskami pojemnościowymi lub tradycyjnymi przyciskami mechanicznymi pozwala na dobranie konfiguracji stosownie do wymagań większości użytkowników. Możliwość łączenia się z numerami GSM, PSTN, a nawet numerami wewnętrznymi central PABX (DISA lub bezpośrednio MSN/DDI) dodatkowo zwiększa możliwości domofonu.

Budowa i zasada działania

Schemat ideowy zasilacza pokazano na rysunku 1, a domofonu na rysunku 2. Napięcie zasilające jest doprowadzone do J11. Stabilizator impulsowy U8 zasila wszystkie układy napięciem 3,6 V. Przewidziano możliwość zasilania modemu GSM napięciem 4 V, a układów cyfrowych 3,3 V, ale z tej możliwości nie skorzystano, dlatego U9 nie jest potrzebny. Zamiast układu U9 należy wlutować zworkę pomiędzy wyprowadzenia Vin - Vout. Tyrystor T3 i dioda D22 zabezpieczają elektronikę w wypadku awarii zasilacza. Domofon można wyposażyć w zasilanie awaryjne - należy doprowadzić je do J13. W najprostszej wersji nie są montowane T5 i T6, tylko dioda D24. Jeśli jest wymagane, aby na zasilaniu awaryjnym domofon działał jak najdłużej, można zamontować T5 i T6. Wtedy to napięcie akumulatora otwiera tranzystor T5 za pośrednictwem T6. Spadek napięcia na T5 jest praktycznie zerowy.

Rysunek 1. Schemat ideowy zasilacza domofonu GSM
Rysunek 2. Schemat ideowy domofonu GSM
Rysunek 2. Schemat ideowy domofonu GSM - cd.

Akumulator zasilania awaryjnego może być ładowany. Niestety, wtedy nie można użyć rozwiązania z T5 i T6. Układ musiałby być bardziej rozbudowany. Ładowanie akumulatora zapewnia U10. Napięcie ładowania ustala się potencjometrem P9. Prąd ładowania ogranicza wartość R43. Wartość prądu wyraża wzór I=0,6/R43. Dla rezystora 1 Ω prąd ładowania jest ograniczony do 600 mA. Diody D25, D26, zabezpieczają R1 przed uszkodzeniem.

Wszystkimi elementami domofonu steruje mikrokontroler typu STM32F103CBT6 z 128 kB pamięci Flash. Aktualnie program zajmuje ponad 60 kB i STM32F103C8T6 z 64 kB pamięci nie pozwoliłby na jego dalszy rozwój. Komunikację z komputerem zapewnia interfejs USB. Można także skorzystać z Bluetooth (BT). Do konfigurowania domofonu wykorzystuje się dowolny program terminalu obsługującego VT-100 (np. TeraTeram, Putty, HyperTerminal). Przy połączeniu USB trzeba skonfigurować tylko numer portu komunikacyjnego - parametry transmisji, takie jak prędkość, parzystość, nie mają znaczenia. Przy połączenie BT oraz USB jest istotny tylko numer portu COM. Komunikację przez BT zapewnia HC-06 slave (U5). Parametry konfiguracji domofonu są przechowywane w pamięci EEPROM (24LC512, U3). Aktualnie konfiguracja zajmuje około 2 kB (dwie kopie).

Komunikację z siecią GSM umożliwia moduł SIM800. Rezystor R13 zapewnia konwersję napięcia wystarczającą przy wybranej prędkości transmisji (115200 b/s). Sygnał audio jest wzmacniany za pomocą TDA7052AT (U4). Układ wzmacniacza jest włączany tylko na czas rozmowy/wybierania numeru, dzięki czemu, podczas logowania czy obsługi SMS, nie słychać w głośniku ewentualnych zakłóceń powodowanych przez moduł GSM.

Wyświetlacz LCD jest typowym modułem dostępnym dla Arduino. Komunikacja z wyświetlaczem odbywa się przez interfejs SPI. Moduł wyposażono w gniazdo karty SD. Tej karty można użyć do przechowywania obrazów, zapamiętania konfiguracji domofonu, rejestracji wejść, otwarć furtki/bramy kodem PIN, tagiem RFID, telefonem. Obsługa kart SD została sprawdzona - FatFS działa bez problemu. W aktualnej wersji oprogramowania obsługa karty SD jest wyłączona, aby oszczędzić pamięć Flash (w prototypie mikrokontroler ma 64 kB pamięci). Interfejs SPI używany przez kartę SD jest też używany przez kontroler ekranu dotykowego oraz do obsługi czytnika RFID. Czytnik należy dołączyć do złącza J7.

Otwieranie rygla jest załączane przekaźnikami. Domofon ma dwa przekaźniki. J6 służy do przyłączenia płytki drukowanej z „przyciskami” dotykowymi (pojemnościowymi). Na płytce klawiatury pojemnościowej zamontowano również sterownik oraz diody podświetlające.

Montaż i uruchomienie

Schemat montażowy domofonu GSM zamieszczono na rysunku 3. Montaż jest typowy, chociaż przylutowanie drobnych elementów SMD może przysporzyć problemów.

Rysunek 3. Schemat montażowy domofonu GSM
Rysunek 3. Schemat montażowy domofonu GSM - cd.

Rozpoczynamy od uruchomienia zasilacza. Jeśli akumulator ma być ładowany, to bez podłączonego akumulatora potencjometrem P9 ustawiamy napięcie 13,7 V (dla akumulatora ołowiowego przeznaczonego do pracy buforowej). Napięcie zasilające domofon, wymagane przy pracy z akumulatorem, zawiera się w granicach 17…19 V. Jeśli jest używany obwód z tranzystorami T5 i T6, napięcie zasilania nie może przekraczać napięcia akumulatora. Jeśli nie jest używane zasilanie awaryjne, zakres napięcia wejściowego jest szerszy i wynosi 7…17 V.

Pomiędzy czytnikiem RFID a płytką drukowaną konieczne może okazać się zastosowanie ekranu. W prototypie był to kawałek cienkiej blachy miedzianej, połączonej z masą przyklejonej na taśmę dwustronną. Na płytce docelowej ekranowanie może nie być potrzebne, ponieważ czytnik jest zamontowany w inny sposób.

Do uruchomienia domofonu jest wymagana aktywna karta SIM. Jeśli karta musi być zabezpieczona kodem PIN, trzeba go ustawić na „5555”. Po włączeniu zasilania zostanie przeprowadzona diagnostyka. W czasie uruchamiania należy połączyć domofon z komputerem. Najlepiej sprawuje się program TeraTerm, ponieważ po utracie połączenia USB podejmuje próbę jego odzyskania. Po uruchomieniu programu w terminalu ujrzymy obraz jak na rysunku 4. W przypadku pracy w trybie domku jednorodzinnego zostanie pokazana informacja dotycząca wersji układu AT42QT1070. Poza identyfikatorem i wersją AT42QT1070 w rezultacie skanowania I2C zostanie pokazany nie tylko adres EEPROM ($50/A0) ale także układu AT42QT1070 (adres $1B/36). Zakończenie inicjalizacji sygnalizuje komunikat „*** InitModemu zakończony ***” (rysunek 5).

Rysunek 3. Schemat montażowy domofonu GSM
Rysunek 5. Komunikat o zakończeniu inicjalizacji modemu

Jeśli nastąpi restart mikrokontrolera lub SIM nie wymaga podania kodu PIN, komunikaty są trochę inne. Jeśli w gnieździe nie będzie karty SIM lub kod PIN będzie błędny, to w oknie terminalu zostanie pokazany stosowny komunikaty, a następnie domofon wykona restart. Jeśli kod PIN jest błędny, to restart nie następuje, aby nie przekroczyć dopuszczalnej liczby prób wpisania PIN. Gdyby zdarzyło się, że liczba prób wpisania poprawnego PIN została przekroczona, po zapytaniu „AT+SIM?” jest zwracany komunikat „SIM PUK”.

Po poprawnej inicjalizacji jest wysyłany kod USD z zapytaniem o stan konta i czas jego ważności. Oczywiście kod nie zadziała, gdy do karty SIM przypisano abonament. Pięć minut po restarcie na numer administratora jest wysyłany SMS diagnostyczny informujący o restarcie. W SMS-ie jest zawarta informacja o saldzie konta, poziomie sygnału GSM i inne dane. Administrator może wysłać SMS na numer domofonu, w odpowiedzi otrzyma informację jak po restarcie.

Podczas pracy domofonu za pomocą interfejsu USB są wysyłane informacje związane z komunikacją z modemem, czyli o: wybieranym numerze, połączeniu przychodzącym, synchronizacja RTC oraz stanie domofonu, jak ID karty RFID lub otwarciu furtki. Komunikacja z modemem przebiega nawet podczas bezczynności, jest sprawdzany poziom sygnału, wybrany operator, synchronizowany czas z RTC. Do terminalu są przesyłane również informacje o stanie RFID, kontrolerze ekranu dotykowego czy panelu pojemnościowego. Na rysunku 6 pokazano komunikat o zadziałaniu przycisku na panelu pojemnościowym. Jest to przycisk „2” (rawKey 120, kod klawisza 2), który powoduje wybranie numeru „505000000”. Dalej widać zwolnienie przycisku, włączenie wyciszania wzmacniacza m.cz. Po chwili naciśnięto przycisk ”C” (rawKey 101, kod klawisza 67 - znak ”C”) w rezultacie czego wydana została komenda „ATH” przerywająca połączenie.

Rysunek 6. Komunikat o zadziałaniu przycisku na panelu pojemnościowym

Omówienie wszystkich komunikatów, możliwych błędów, pracy modemu w sieciach różnych operatorów to temat na małą książkę. Dożo informacji można znaleźć w nocie katalogowej modułu SIM800. Jeśli artykuł wzbudzi zainteresowanie, to zagadnienie zostanie omówione szerzej.

Konfigurowanie

W tabeli 1 umieszczono wykaz zworek wraz z opisem ich funkcji, natomiast w tabeli 2 wykaz diod LED oraz opis sposobu funkcjonowania statusu domofonu.

Domofon jest konfigurowany przez USB programem terminalu zawierającym obsługę protokołu VT-100. Warte polecenia są TeraTerm i Putty, ostatecznie HyperTerm, ale jego przydatność jest co najmniej dyskusyjna. Popularne, używane przez wielu programistów Termite lub Bray Terminal+ nie nadają się, ponieważ nie obsługują VT-100. W terminalu należy wskazać port komunikacyjny, parametry transmisji nie są istotne. Nr portu COM w Windows można znaleźć w Menedżerze Urządzeń. W Linuksie będzie to „ttyACM0”, „ttyACM1” lub kolejny. Przy braku aktywności użytkownika przez 5 sekund co 3 sekundy jest wysyłany znak zachęty „>”. Większość komend zaczyna się od znaku „@”, kończy CR, LF lub CR+LF, LF+CR.

Wykaz elementów:
Rezystory: (SMD 1206)
R43: 1 V (SMD 1210)
R19: 1,5 kV
R1, R2, R4, R28, R41, R42: 1 kV
R12, R20, R21: 2,2 kV
R37: 2,4 kV/1%
ZW1, ZW2: 0 V (zwora)
R16, R23: 10 V
R3, R5, R22, R24, R25, R27, R29…R36,
R45…R47: 10 kV
R17, R18: 22 V
R39: 120 V
R44: 150 kV
R6, R7: 220 kV
P9: 470 V (pot. montażowy)
R8, R9, R10, R11, R13, R26, R38: 560 V
R40: 680 V/1%
Kondensatory:
C5: 10 pF (SMD 1206)
C13, C27, C29, C33, C39: 10 mF (SMD 1206)
C28, C30: 10 mF
C6: 1000 mF (RB.3/.6)
C4, C7…C12: 33 pF (SMD 1206)
C18, C37: 47 nF (SMD 1206)
C3, C16, C17, C19, C21…C24, C26, C32,
C34, C36: 100 nF (SMD 1206)
C31, C38: 100 mF (elektrolit. CE6.3/2.5)
C2: 100 mF/10 V (elektrolit. CE6.3/2.5)
C20, C25: 22 pF (SMD 1206)
C35: 470 mF (elektrolit. CE8/35)
C1: 2200 mF/10 V (elektrolit. CE8/35)
Półprzewodniki:
U3: 24LC512 (SO-8)
U7: STM32F103CBT6 (LQFP-48)
U4: TDA7052AT (SO-8)
U6: AT42QT1070 (SO-14)
T5: IRF9540 (TO-126)
U10: LM317T (TO-126)
U5: HC06 (moduł Bluetooth)
D3, D5: 1N4148
T4: BC856 (SOT-23)
T1, T2, T6: BSS138 (SOT-23)
T3: BT258-600R (TO-126)
D22: dioda Zenera 4,3 V
D13: dioda Zenera 5,1 V
U1: SIM800C
D25: SM4007
U9: SPX1117MP-3.3 (SOT-223)
D18: SRV05-4 (SOT-23-6, 4×transil)
D20, D21, D26: SS14
D24: SS16
U8: ST1S10
D4, D6, D17: dioda LED żółta
D14, D19: dioda LED niebieska
D1, D16, D23: dioda LED zielona
D7…D12: dioda LED biała
D15: dioda LED czerwona
Inne:
J12: SIP3
J5: LCD TFT 320×240 (IL9341, SPI)
Q1: 8 MHz
PK1, PK2: przekaźnik RM94P
U2: BUZZER-5V
L1: COIL0810
L2: DL22
J8: gniazdo USB
J2: SIP3
SMA: gniazdo SMA
J1: złącze SIP2
JP3: złącze IDC4 (listwa goldpin)
J11, J13: złącze ARK2
J3, J4: złącze ARK3
J10: ZL201-05G)
JP1, J6, J14: IDC6 (gniazdo goldpin)
J7: MRC522 (gniazdo goldpin)
S1, S2: przycisk
JP2: SIP2 + zworka
G1: głośnik 16 V/2 W
M1: mikrofon pojemnościowy
Gniazdo karty SIM

Polecenia realizowane przez oprogramowanie domofonu wymieniono w tabeli 3. Zmiany w konfiguracji są zapisywane w EEPROM po wydaniu komendy @W. Jeśli konfiguracja nie zostanie zapamiętana, to po restarcie, przywrócone zostaną ustawienia z EEPROM. Dzięki temu, jeśli zostanie popełniony błąd, poprzednią konfigurację można przywołać przez restart lub prościej - komendami „rst” lub odczyt EEPROM „@R”.

Kolejność czynności przy pierwszej konfiguracji:

Skonfigurować numer administratora: @l=0,0,0,nr_telefonu. Parametr „numer_telefonu” należy wprowadzić w formacie „+48xxxxxxxxx” lub tylko 9 cyfr numeru, bez numeru kierunkowego kraju. Na numer administratora będą wysyłane SMS-y z informacjami o stanie systemu. Z tego numeru będzie też można wykonywać operacje, przesyłając wiadomości SMS z komendami.

W kolejnym kroku decydujemy, czy domofon będzie pracował w trybie domu wielorodzinnego, czy jednorodzinnego, za co odpowiada komenda @C=n. Jeśli parametr n=0, to włączamy tryb domu wielorodzinnego (maksymalnie 20 lokali). Jeśli n=1, to włączamy tryb domu jednorodzinnego (maksymalnie 5 lokali). Oprogramowanie domofonu automatycznie wykrywa obecność panelu na podstawie odpowiedzi układu AT42QT1070. Jeśli układ zostanie wykryty, to bez względu na konfigurację jest wybierany tryb jednorodzinny. Komenda @C ma znaczenie tylko wtedy, gdy domofon jest wyposażony w ekran LCD.

Następnie uzupełniamy listę lokatorów: @l=id, nr_lokalu, czterocyfrowy_pin, nr_telefonu_lokatora. W numerach telefonów, które będą przypisane do lokali, warto wyłączyć pocztę głosową.

Jeśli będą używane tagi RFID, dopisujemy je komendą @r=id, id_tagu_rfid, nr_lokalu. Do jednego lokalu można przypisać wiele kart. Limit jest określony maksymalną liczbą kart możliwych do przypisania. W aktualnej wersji oprogramowania jest to 60 kart.

Gdy będzie używana skrócona lista lokatorów (w trybie jednorodzinnym opcja ta jest wymagana), to definiujemy ją poleceniem
@s=id, nr_lokalu, tekst_wyświetlany_na_buttonie. Można zdefiniować do 5 pozycji. W razie potrzeby program można zmodyfikować tak, aby lista była dłuższa, a do jej przewijania dodać przyciski.

Konfigurację można przetestować, po czym zapisać komendą „@W”. Pozostaje ustawienie tłumienia echa. Domyślne ustawienia modemu dotyczą zestawu mikrofon + słuchawka, a nie zestawu głośnomówiącego. Wypróbowałem kilka ustawień, najlepiej sprawowało się 96,224,5256,20488. Ustawienia wprowadza się komendą @E=224,5256. Jeśli zachodzi potrzeba zmiany pozostałych parametrów, można w terminalu wpisać at+ECHO=0,aaa,bbb,ccc,ddd.

Komenda musi być wysłana w jednym pakiecie USB (na przykład CTRL+V w oknie terminalu) oraz zaczynać się od małych liter „at” (wszystko, co zaczyna się od małych liter „at”, jest wysyłane do modemu GSM, a co od wielkich - do modułu BT). Komenda ECHO jest zapamiętywana automatycznie, nie ma potrzeby wydawania „at&w”.

Moduł BT konfiguruje się komendą „BTcfg”. Jeśli konfiguracja się powiedzie, wyświetlona zostanie wersja modułu HC-06. Od tego momentu moduł pracuje z prędkością 921600. Można nadać dowolną nazwę modułu komendą AT+NAM=xxx, np. AT+NAME=DomofonGSM. Należy pamiętać, aby komendy AT+NAME nie kończyć ciągiem CR+LF lub podobnym.

W komputerze BT zajmuje kilka portów COM (rysunek 7). Należy wybrać ten, który ma ustawiony kierunek „Wychodzący”. Aktualnie działa interpretowanie komend wysłanych przez BT, ale ich rezultat jest wyświetlany przez USB. W kolejnych wersjach obsługa komunikacji przez BT zostanie zrealizowana w całości.

Rysunek 7. Porty zajmowane przez moduł Bluetooth

Obsługa

W trybie domu jednorodzinnego wyświetlana jest lista, maksymalnie 5 lokali. Naciskając wybrany przycisk, rozpoczynamy połączenie z wybranym lokalem (numerem telefonu).W wypadku domofonu w wersji z panelem pojemnościowym lub przyciskami mechanicznymi, w którym nie ma wyświetlacza LCD, po naciśnięciu przycisku do czasu wybrania numeru (około 10 sekund) buzzer emituje przerywany sygnał dźwiękowy.

Po nawiązaniu połączenia zostanie pokazany stosowny komunikat. Na wyświetlaczu jest pokazywany czas do zakończenia rozmowy (czas jest ograniczony do 3 minut). Rozmowę może zakończyć dowolna ze stron: użytkownik przy kasecie, naciskając „Wstecz” lub klawisz „C” albo wywoływany, rozłączając rozmowę (czerwona słuchawka na GSM, odłożenie słuchawki telefonu stacjonarnego lub VoIP). Po rozłączeniu zostanie wyświetlony stosowny komunikat. Jeśli połączenie nie może być zrealizowane, użytkownik zostanie o tym poinformowany za pomocą komunikatu na wyświetlaczu.

W trybie domu wielorodzinnego jest pokazywana klawiatura wirtualna. Można wybrać numer lokalu, zatwierdzając go przyciskiem „OK” lub odczekując 5 sekund. W przypadku błędu numer lokalu można wprowadzić ponownie naciskając „C”. Jeśli wybrany lokal nie istnieje, zostaje wyświetlony stosowny komunikat. Po wprowadzeniu numeru lokalu można otworzyć furtkę, naciskając przycisk „PIN” i wpisując go. Pin zatwierdza przyciskiem „Furtka” lub „Brama”, zależnie od tego, co ma zostać otwarte. W wypadku wybrania błędnej opcji zostanie pokazany tekst podpowiedzi.

Jeśli domofon jest wyposażony w czytnik RFID, możliwe jest otwieranie furtki za jego pomocą. Funkcję tagu RFID może pełnić, na przykład, „Warszawska Karta Miejska” wydawana przez ZTM, co jest wygodne, ponieważ nie ma potrzeby noszenia ze sobą kilkunastu kart. Tagi RFID są często używane przez różne systemy dostępu i choć ich zawartość może być zabezpieczona przed odczytem (jak karta miejska), to identyfikator jest dostępny bez znajomości hasła.

Po odebraniu wywołania z domofonu jest możliwe otwarcie furtki, bramy lub obu równocześnie za pomocą kodu DTMF. Kolejne naciśnięcia przycisków:

*#0 - otwierają furtkę,

123 - otwierają bramę,

456 - otwierają furtkę i bramę.

Po odebraniu i realizacji polecenia przesłanego za pomocą DTMF połączenie zostanie rozłączone.

Bramę można otworzyć, wykonując połączenie na numer domofonu. Połączenie musi być wykonane bez opcji CLIR. Jeśli CLIR jest włączony, można go chwilowo wyłączyć (zależy od ustawień operatora), wpisując przed numerem „*31#”. Połączenie zostanie odrzucone (połączenie bezkosztowe), ale brama zostanie otwarta. Numer telefonu musi znajdować się na liście lokatorów.

Jakiego urządzenia użyć w roli unifonu? Pierwsze, co przychodzi do głowy, to telefony GSM, który są noszone przez domowników. Gdy lokator jest jeden, to bardzo dobre rozwiązanie. Można otwierać wejście na klatkę schodową czy bramę w domu jednorodzinnym z dowolnego miejsca, w którym działa telefon GSM. Niestety, gdy lokatorów jest więcej, pojawiają się problemy. Można stworzyć listę numerów, ale nie da się ich wybrać równocześnie. Jeśli któryś jest zajęty, to w kilka sekund po otrzymaniu informacji o zajętości domofon może wybrać kolejny numer z listy. Niestety, gdy nie odbiera, trzeba wybrać kolejny numer, a to zajmuje czas. Od wydania komendy ATD do dzwonienia telefonu mija ok. 10 sekund. Zapewne telefon zostanie odebrany po około 20…30 sekundach, ale trzeba dać czas jego użytkownikowi, na przykład minutę. Łatwo policzyć, że dla 5 numerów z listy będzie to trwało 5 minut, ale osobie czekającej na otwarcie bramy może już zabraknąć cierpliwości.

Najlepiej, aby funkcję unifonu pełnił dodatkowy telefon GSM. Praktycznie każdy ma kilka nieużywanych komórek w szufladzie. Potrzebna jest tylko aktywna karta SIM. Dobrą opcją jest telefon stacjonarny w lokalu, a jeszcze lepszą centralka PABX, w której można utworzyć grupę numerów. Grupa może składać się z numerów GSM. W nowoczesnych centralkach PABX nie ma konieczności, aby na cel grupy domofonowej przeznaczać osobne łącze czy numer (MSN, DDI) albo uruchamiać DISA, wystarczy połączenie identyfikujące się numerem domofonu.

Oprogramowanie

Program jest dość rozbudowany. Nie zawiera grafik, poza czcionkami 8×8 i 12×16, a zajmuje ponad 64 kB. Niemożliwe jest opisane działania całego oprogramowania. Przyznam, że zastanawiałem się nad użyciem RTOS, który ułatwiłby pewne zadania.

Program działa wielowątkowo. Wykonywane są kolejne zadania (obsługa LCD, SMS, połączenia GSM, obsługa ekranu dotykowego, obsługa czytnika RFID, USB, interpreter komend, itd.). Timeouty i pauzy dla zadań są odmierzane przez 29 timerów programowych o pojemności od 8 do 64 bitów. Dzięki temu zadania nie blokują innych, gdy muszą odczekać jakiś czas. W przeciwnym wypadku oczekiwanie na SMS uniemożliwiłoby otwarcie drzwi kartą RFID. Najbardziej rozbudowane jest zadanie obsługujące moduł GSM. Słabą stroną domofonu jest komunikacja z wyświetlaczem LCD. Przebiega ona za pomocą interfejsu SPI, który dla tych potrzeb jest nieco zbyt wolny (maksymalnie 10 Mb/s przy zapisie). Odświeżanie ekranu trwa stosunkowo długo, dlatego rysowane są tylko fragmenty, które się zmieniły, a to komplikuje program. Do komunikacji nie użyto DMA ze względu na wymagania odnośnie do pojemności pamięci RAM przeznaczonej na bufor wyświetlacza.

Na koniec

Prezentowany projekt domofonu jest na początkowym etapie budowy. Posłużył do oceny realizowalności i użyteczności urządzenia tego typu i moim zdaniem spełnił postawione mu wymagania.

W przyszłości przydałby się większy wyświetlacz, na przykład o przekątnej 5 lub 7 cali z akceleratorem graficznym. Można dodać komunikaty słowne. Do ich przechowywania można wykorzystać pamięć modemu, w której można przechowywać nagrania lub skompresowane pliki audio przechowywane na SD, w pamięci Flash mikrokontrolera lub zewnętrznej DataFlash.

Panel przycisków pojemnościowych warto by wyposażyć w LED-y, które informowałyby o procesie łączenia (wybieram, wołanie, rozmowa, zajęty) oraz błędach. Nie będzie z tym kłopotu, ponieważ do panelu doprowadzono magistralę I2C, co umożliwia dołączenie ekspandera.

Brama i furtka mogą być różnymi wejściami. Istnieje możliwość nadania praw do otwierania bramy, furtki lub obu dla RFID, zdalnego otwierania telefonem, z lokalu czy różnymi kodami PIN.

Aktualna wersja oprogramowania nie zapisuje logów wejść.

Do prób użyto prepaidowej karty SIM. Domofon po restarcie lub na żądanie wysyła saldo i stan ważności konta. Saldo jest pobierane kodem, na który odpowiedź jest interpretowana - wyszukiwane są ciągi znaków „Saldo”, „wazny” i „dni”. Dla różnych operatorów format SMS może być inny, dlatego program należałoby rozbudować o rozpoznawanie różnych standardów. Pewne przygotowania w tym kierunku już poczyniono.

W przypadku operatorów prepaid istnieje problem przedłużania pakietu minut oraz informowania o kończącym się pakiecie/niskim saldzie. W razie odebrania SMS o kończącym się pakiecie lub niskim saldzie może on być przesyłany do administratora. W SMS-ie należy wyszukać ciąg znaków „Masz mniej niz”.

Aktualnie nie ma zabezpieczenia co do liczby SMS, można je jednak wprowadzić (limit dzienny, miesięczny). W przypadku propozycji rozwoju oprogramowania proszę o e-maile.

SaS
sas.elportal.pl

Artykuł ukazał się w
Elektronika Praktyczna
kwiecień 2019
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2021

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio kwiecień - maj 2021

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje kwiecień 2021

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2021

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2021

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów