Projekty AVT SSterownikterownik GGSMSM 33065065 · (ad6) pa6 45 (ad7) pa7 44 (ale) pg2 43 (a8) pc0...
Transcript of Projekty AVT SSterownikterownik GGSMSM 33065065 · (ad6) pa6 45 (ad7) pa7 44 (ale) pg2 43 (a8) pc0...
E l e k t ro n i k a d l a Ws z y s t k i c h 17
Projekty AVT
Projekt nie jest wprawdzie przeznaczo-ny dla zupełnie początkujących, jednak powinien zainteresować nawet średnio zaawansowanych z uwagi na ogromne możliwości oraz okazję do praktyczne-go wykorzystania modułu GSM i zapo-znania sie ze sterowaniem za pomocą popularnych komend AT. Natomiast do wykonania i wykorzystania urządzenia nie jest potrzebne zrozumienie wszyst-kich szczegółów.Przez łamy EdW już wiele razy przewi-jał się temat zdalnego sterowania. Poja-wiały się tutaj układy nadające radiowo w paśmie 433MHz, 868MHz, Blueto-oth, wykorzystu-jące podczerwień, światło lasera oraz GSM. Te ostatnie wykorzystywały fabryczny tele-fon komórkowy. Najczęściej był to telefon SIE-MENS C35, który komunikował się z resztą układu za pomocą popu-larnego interfej-su szeregowego. Rozwiązanie to sprawdzało się bardzo dobrze, lecz znaczącym m a n k a m e n t e m były duże fizycz-ne rozmiary urzą-dzeń. Opisywany układ pozbawio-ny jest tej wady, zawiera bowiem w sobie scalony moduł GSM. Nie jest potrzebne
dodatkowe dołączanie do niego jakiej-kolwiek komórki. Urządzenie pozwala na zdalne sterowanie 12 urządzeniami wyj-ściowymi (12 wyjść tranzystorowych), sprawdzanie stanu 12 wejść cyfrowych oraz 8 analogowych. Dodatkowo zostało ono wyposażone w dwa kanały PWM oraz dwa wejścia alarmowe.
Do działania wymaga jedynie zasilania oraz zasięgu jednej z sieci komórkowych. Sterowanie odbywa się za pomocą SMS-ów. Sterownik w momencie odebrania wiadomości przeprowadza odpowied-nie operacje (wg wiadomości z SMS),
a następnie odsyła potwierdzenie dokona-nia zmian do nadawcy.
Przykładów zastosowania urządzenia może być wiele. Kanały wejściowe mogą pełnić funkcję monitora sprawdzającego stan oświetlenia, zamknięcia drzwi na klucz itp. Wyjścia z kolei mogą sterować żarówkami, ogrzewaniem, podlewaniem kwiatków itd. Wszystko to oczywiście po dołączeniu odpowiednich układów wykonawczych. Dodatkowo urządzenie ma opcję transparentności, tzn. że stero-wanie modułem GSM odbywa się jedynie ze strony użytkownika przez terminal
30653065SterownikSterownikGSMGSM
(AD0) PA0 51
(AD1) PA1 50
(AD2) PA2 49
(AD3) PA3 48
(AD4) PA4 47
(AD5) PA5 46
(AD6) PA6 45
(AD7) PA7 44
(ALE) PG2 43
(A8) PC0 35
(A9) PC1 36
(A10) PC2 37
(A11) PC3 38
(A12) PC4 39
(A13) PC5 40
(A14) PC6 41
(A15) PC7 42
(RD) PG1 34(WR) PG0 33
PF0 (ADC0)61
PF1 (ADC1)60
PF2 (ADC2)59
PF3 (ADC3)58
PF4 (ADC4/TCK)57
PF5 (ADC5/TMS)56
PF6 (ADC6/TDO)55
PF7 (ADC7/TDI)54
AREF62
AGND63
AV
CC
64
(PDI/RXD0) PE0 2
(PDO/TXD0) PE1 3
(AIN0/XCK0) PE2 4
(AIN1/OC3A) PE3 5
(INT4/OC3B) PE4 6
(INT5/OC3C) PE5 7
(INT6/T3) PE6 8
(INT7/ICP3) PE7 9
PB0 (SS)10
PB1 (SCK)11
PB2 (MOSI)12
PB3 (MISO)13
PB4 (OC0)14
PB5 (OC1A)15
PB6 (OC1B)16
PB7 (OC2/OC1C)17
PD0 (INT0/SCL)25
PD1 (INT1/SDA)26
PD2 (INT2/RXD1)27
PD3 (INT3/TXD1)28
PD4 (ICP1)29
PD5 (XCK1)30
PD6 (T1)31
PD7 (T2)32
XTAL223
XTAL124
GN
D53
GN
D22
VC
C21
VC
C52
PEN 1
RESET20
(TOSC1) PG4 19(TOSC2) PG3 18
ATmega128U4
1 23 45 67 89 10
Z7
Analog IN
+12V
Pk1
Pk2
Pk3
Pk4
Pk5
Pk6
Pk7
Pk8
Pk9
Pk10
Pk11
Pk12
T12T11T10T9T8T7T6T5T4T3T2T1
D17D16D15D14D13D12D11D10D9D8D7D6
+2.8V
MOSI 1V2
L d 3Gnd4
Rst 5Gnd6
SCK 7Gnd8
MISO 9Gnd10
Z5
RxD0
SCK
SCK
RST
1234567
89
1011121314
Z3GSM_GPIO
Pk1 Pk2Pk3 Pk4Pk5 Pk6Pk7 Pk8Pk9 Pk10Pk11 Pk12
X1 C2033pF
C1933pF
C18100nF
C21100nF
L110uH
ADC0ADC1ADC2ADC3ADC4ADC5ADC6ADC7
RxD1TxD1
PWM1PWM2
+2.8V
RxD0TxD0
D5D4
D3
R7 R9R8
VC
CIO
4
RXD 5
RI 6
GN
D7
DSR 9
DCD 10CTS 11
CBUS4 12
CBUS2 13
CBUS3 14
USBDP15
USBDM16
3V3OUT17
GN
D18
RESET19
VC
C20
GN
D21
CBUS1 22CBUS0 23
AG
ND
25
TEST26
OSCI27
OSCO28
TXD 1
DTR 2
RTS 3
U3FT232RL
D1 D2
R3470R
R4470R
C12100nF
C13100nF
C14100uF
VCCD-D+
GNDGND
Z2
12
Bypass a
usb_ua t_ xusb_ua t_tx
12
Bypass b
12
Bypass RxD0
RxD1TxD0
TxD1
ADC0ADC1ADC2ADC3ADC4ADC5ADC6ADC7
S2
R5
10kS1
R6
10k
+2.8V
C16
C17
RI
DTR
PWRGSM_RST
STATUS
123
Z9
PWM2PWM1
Al t1Al t2
PWR
GSM_TXGSM_RX
RIDTR
STATUS
1234
5678
Z4
GSM
12
Bypass d
GSM_RST
Wjs
a y
o
D g1D g2D g3D g4D g5D g6D g7D g8D g9D g10D g11D g12
Z1
12VC1100nF C2
100uF/16VC3220uF
C4220uF
R2220R
R1510RC5100nF
V+12V3 2
1
I NADJOUT
U1LM350 +2.8V
C7220uF
C103x100nF
C8
S1 RST
D g1D g2D g3D g4
D g5D g6D g7D g8D g9D g10D g11D g12
Oth1Oth2
Oth3
Oth4
Oth5
Oth6Oth7
Oth8
Oth9
Oth10
S1
Oth1Oth2Oth3Oth4Oth5
Oth6Oth7Oth8Oth9Oth10
Al t2Al t1Z6
1234
GSM_ZASVCC
1 23 45 67 89 1011 1213 14
Z8
R1110k
R104,7k
+2.8VV
C11100nF
C15
100nF
C9C6
100nF
R122,2k
R132,2k
R142,2k
R152,2k
R162,2k
R172,2k
R182,2k
R192,2k
R202,2k
R212,2k
R222,2k
R232,2k
R24
47K
R25
47K
R26
47K
R27
47K
R28
47K
R29
47K
R30
47K
R31
47K
R32
47K
R33
47K
R34
47K
R35
47K
R362.2k
R372.2k
R382.2k
R392.2k
R402.2k
R412.2k
R422.2k
R432.2k
R442.2k
R452.2k
R462.2k
R472.2k
TxD0
RST
InEn Byp Gnd
Out
U2 LP3985
8MHz
3x330R
2x10nF
T1...T2 - BC847
Rys. 1a
Projekty AVT
18
komputerowy. Taka opcja pozwala na dogłębne poznanie możliwości modułu (która jest naprawdę duża), a także na zapoznanie się ze sterowaniem nim za pomocą komend AT.
Opis układuRysunek 1a przedstawia schemat ideowy sterownika GSM. Elementy C1–C5, U1, U2, R1, R2 pełnią funkcję stabilizowa-nego zasilacza o napięciu około 4,14V. Napięcie to służy do zasilenia modułu GSM oraz kolejnego stabilizatora obniża-jącego napięcie do wartości 2,8V. Wybór takiego napięcia został narzucony przez moduł GSM, który komunikuje się przez interfejs szeregowy UART o poziomach napięć równych 2,8V. W celu uproszcze-nia konstrukcji – pozbycia się konieczno-ści stosowania konwerterów poziomów napięć – zdecydowano się na zasilenie mikrokontrolera napięciem o tej samej wartości. Elementem zarządzającym pracą urządzenia jest układ AVR ATME-GA 128. Został on wybrany z tego powo-du, że ma dwa kanały UART oraz spory zapas pamięci FLASH i RAM.
Pierwszy z kanałów UART jest odpo-wiedzialny za komunikację z układem FT232RL (U3) zapewniającym wymianę danych z komputerem poprzez port USB. Diody LED D1, D2 sygnalizują nadawanie i odbiór danych przez U3. Drugi kanał UART zapewnia komunikację z modułem GSM. Wszystkie linie sygnałowe służące do komunikacji między mikrokontrolerem a modułem GSM zostały wyprowadzone na złącze Z4. Zasilanie modułu i jego pery-ferii odbywa się poprzez złącze „GSM_ZAS”. Opisywany moduł wraz z elemen-tami niezbędnymi do jego prawidłowej pracy został umieszczony na drugiej płytce PCB. Jej schemat został przedstawiony na rysunku 1b Dzięki budowie modułowej urządzenie zachowa kompaktowe kształty – płytki łączone są na tzw. kanap-kę. Dodatkowo, w przypadku chęci zmiany użytego modu-łu GSM na inny, nie będzie k o n i e c z n o śc i projektowania całego urządze-nia od nowa, a jedynie drugiej z płytek. Wejścia cyfrowe, analo-gowe, alarm oraz wyjścia PWM są dołą-czone bezpo-
średnio do mikrokontrolera. Kanały analo-gowe pozwalają na pomiar napięć w zakre-sie 0–2,8V. W przypadku konieczności mierzenia napięć o szerszym zakresie, potrzebny będzie prosty dzielnik. Wejścia cyfrowe oraz ALARM są podciągnięte do plusa zasilania przez wewnętrzne rezystory kontrolera, przez co reagują na zwarcie do masy. Wyjścia cyfrowe sterowane są klu-czami tranzystorowymi, zapewniającymi wydajność prądową 100mA. Tranzystory dołączone są do pinów IO modułu GSM. Bieżący stan każdego z wyjść jest sygna-lizowany za pomocą diod LED D6–D17. Świecenie diody oznacza, że dany kanał jest aktywny. Ustawienie portu jako wyj-ście i sterowanie nim sprowadza się do wysyłania komendy:AT+SGPIO=0,GPIO,1,poziom<CR>gdzie: GPIO to numer portu (liczba 1–12), poziom: 1 – ustawienie stanu wysokiego na wyjściu, 0 – ustawienie stanu niskiego na wyjściu.
Diody D3–D5 informują o bieżącym stanie pracy urządzenia. Ich dokładne role zostaną opisane w dalszej części artykułu. Złącze Z5 służy do programowanie AVR-a. Układ pinów jest typowy jak w złączu ISP-KANDA. Przejdźmy teraz do omó-wienia części software’owej sterownika.
Kod programu zajmuje około 10% przestrzeni FLASH i 30% pamięci RAM. Zapasu jest jeszcze bardzo dużo, zatem
można z czasem dowolnie rozwijać funk-cjonalność urządzenia.
Po dołączeniu zasilania następuje odczyt niezbędnych danych z pamięci EEPROM (np. kod PIN karty SIM), następnie wywo-łana jest procedura uruchamiania modułu GSM. Pierwszym wykonywanym krokiem jest zwarcie linii PWR_KEY do masy, co spowoduje, że moduł zostanie załączony. W tym momencie mikrokontroler zawie-sza swoje działanie na około 2 sekundy. Następnie przechodzi do procedury syn-chronizującej wewnętrzny UART SIM900. Jest to bardzo interesująca funkcja modułu. Polega ona na tym, że ustawiamy prędkość UARTU w mikrokontrolerze na zawierają-cą się w zbiorze (1200, 2400,4800, 9600, 19200, 38400, 57600 and 115200bps), a następnie wysyłamy do modułu bajt 0x41. Moduł, odbierając znak, automa-tycznie dostraja się do danej prędkości. Jeżeli procedura „autobaud” przebie-gła poprawnie, odsy-ła bajt 0x41 (ASCII ‘A’). Po synchroni-zacji następuje kon-figurowanie modułu GSM. W tym celu wysyłane są następu-jące komendy:ATE0 <CR>
M1C1133pFC10
10pF
C9
33pFC8
10pF
C733pF
C610pFMIC_P
MIC_N
T3BC847
BC847
BC847
R84.7k R10
47k
D1LED
R9510R
PWR_KEY1
PWR_KEY_OUT2
DTR3
RI4
DCD5
DSR6
CTS7
RTS8
TxD9
RxD10
DISP_CLK11
DISP_DATA12
DISP_D/C13
DISP_CS14
VDD_EXT15
NRESET16
GND17
GN
D18
MIC
_P19
MIC
_N20
SPK
_P21
SPK
_N22
Line
In_R
23
Line
In_L
24
AD
C25
VR
TC26
DB
G_T
xD27
DB
G_R
xD28
GN
D29
SIM
_VD
D30
SIM
_DA
TA31
SIM
_CLK
32
SIM
_RST
33
SIM
_PR
ESEN
CE
34
PWM1 35PWM2 36SDA 37SCL 38GND 39GPIO1 40GPIO2 41GPIO3 42GPIO4 43GPIO5 44GND 45GND 46GPIO6 47GPIO7 48GPIO8 49GPIO9 50GPIO10 51
NET
LIG
HT
52G
ND
53G
ND
54V
BA
T55
VB
AT
56V
BA
T57
GN
D58
GN
D59
RF_
AN
T60
GN
D61
GN
D62
GN
D63
GN
D64
GN
D65
STA
TUS
66G
PIO
1167
GPI
O12
68U2SIM900
DTRRI
GSM_TXGSM_RX
MIC
_NM
IC_P
T1
R1 1k
PWRGSM_RST
STA
TUS
GPI
O12
GPI
O11
GPIO1GPIO2GPIO3GPIO4GPIO5
GPIO6GPIO7GPIO8GPIO9GPIO10
VCC VCC
R610k
SPK
_NSP
K_P
VCC
GPIO1 GPIO2GPIO3 GPIO4GPIO5 GPIO6GPIO7 GPIO8GPIO9 GPIO10
GPIO11 GPIO12
SIM
_VD
DSI
M_D
AT
SIM
_CLK
SIM
_RST
SIM
_PR
E
SIM_VDD
C5220nF
SIM_RST
SIM_CLKSIM_DAT
R4 22RR3 22R
R5 22R
SIM_PRE
R26.8k
VDD_EXT
VDD_EXT
SPK_N
SPK_P
GSM_TXGSM_RXRI
DTR
STATUS
Vcc 1Gnd 2Rst 3Vpp 4Clk 5IO 6Card detect 7Cd_COM 8
Karta SIM
U1 SIM
Ant1
1234567
89
1011121314
P3
1234
5678
P2
Header 4X2A
GSM_RST
C1733pFC16
10pF
C1533pFC14
10pF
C1333pF
C1210pF
R71k
T2
PWRC2
2200uF
C3
2x 220uF tantal
C4C1
100nF
VCC
1234
P1 VCC
Rys. 1b
Fot. 1 Fot. 2
E l e k t ro n i k a d l a Ws z y s t k i c h 19
Projekty AVT
Powoduje wyłączenie echa tzn. moduł GSM nie będzie odsyłał danych, które odbierze na linii RxD.AT+CLIP=1<CR>Wyświetlanie informacji na temat połą-czenia przychodzącego.AT+CRC=1<CR>Wyświetlanie szczegółowych informacji na temat rodzaju połączenia przychodzącego.AT+CNMI=2,2<CR>Natychmiastowe wyświetlanie przycho-dzących wiadomości SMS, bez zapisywa-nia ich w pamięci.AT+CMGF=1<CR>Uruchomienie trybu SMS Text mode.AT+CPIN?<CR>Zapytanie modułu o gotowość SIM. W odpowiedzi oczekujemy jednego z trzech ciagów:+CPIN: READYKarta SIM gotowa, zarejestrowana w sieci (PIN został wpisany, lub brak blokady kodem PIN). SIM not insertedBrak karty SIM. Wstrzymanie wykony-wania programu.+CPIN: SIM PINKarta SIM wykryta, konieczne podanie kodu PIN.W przypadku wystąpienia ostatniej z opcji następuje wysłanie komendy:AT+CPIN=xxxx <CR>(xxxx – oznaczają kod pin)Po wykryciu komunikatu +CPIN: READY program przechodzi do wykony-wania pętli głównej.Wywoływane są w niej cyklicznie cztery funkcje. Dwie mają na celu sprawdza-nie buforów. Pierwszy z nich jest bufo-rem GSM. Jest on parsowany pod kątem obecności komend sterujących oraz hasła dostępu do sterownika (bez jego podania żadna z komend nie zostanie wykonana). W przypadku, gdy hasło zostanie popraw-nie podane oraz dostępne są komendy ste-rujące, nastąpi ich wykonanie, a następnie moduł GSM odeśle do nadawcy informa-cje o wprowadzonych zmianach. Drugi z buforów przechowuje dane odebrane
przez układ FT232. Podobnie jak poprzed-ni, jest przeszukiwany w celu znalezienia poprawnie odebranej ramki danych. Jeżeli zostanie ona znaleziona, następuje jej przetworzenie i wykonanie określonych funkcji. Odbierane dane ładowane są do buforów podczas wywoływania funkcji obsługi przerwań. Dzięki temu nie zdarzy się sytuacja, że jakiś bajt/bajty nie zosta-ną odczytane z powodu wykonywania funkcji delay itp. Dwie pozostałe funkcje sprawdzają, czy nie zostało naruszone któreś wejść typu alarm oraz monitorują układ SIM900 (w przypadku wykrycia, że moduł nie pracuje, następuje ponowna inicjalizacja systemu).
Kilka słów opisu należy się sposo-bowi komunikacji między komputerem a sterownikiem. Informacja ta będzie nie-zbędna osobom, które będą próbowały rozbudować urządzenie.
Dane przesyłane są protokołem, któ-rego pola przedstawione są na rysun-ku 2. Każda ramka zaczyna się od baj-tów 0x3C3C. Kolejne pola to adresy nadaw-cy i odbiorcy. W tym momencie zarówno program jak i sterownik nie weryfikują wartości tych pól – mogą one być dowolne.
N a s t ę p n i e występują dwa pola żądania, pole długoś-ci danych oraz dodatkowe dane. Tabela 1 przed-stawia wszystkie
dotychczasowo obsługiwane komendy z dokładnym znaczeniem każdego z pól. XX oznacza, że pole w danym przypadku, nie jest analizowane pod kątem zawartości.
Ostatnie z pól – CRC pełni funkcję 16-bitowej sumy kontrolnej. Do jej wyli-czenia służy funkcja UpdateCRC, znaj-dująca się w pliku uart_protocol.c
Suma kontrolna liczona jest na podsta-wie pól, począwszy od Adresu nadawcy do ostatniego bajtu danych włącznie.
Montażi uruchomienieUrządzenie składa się z dwóch płytek PCB, pokazanych na rysunku 3. Szcze-góły można też zobaczyć na fotogra-fiach 1...5 oraz tytułowej. Obie płytki są dwuwarstwowe z metalizacją otwo-rów. Kilka elementów to elementy do montażu przewlekanego; większa część jest montowana powierzchniowo. Montaż rozpoczynamy od elementów o najmniej-szych gabarytach. Jest to bardzo ważne,
Tab. 1
Fot. 3 Fot. 4
Rys. 2
Projekty AVT
E l e k t ro n i k a d l a Ws z y s t k i c h20
ponieważ w przeciwnym wypadku dostęp grota lutownicy do danego obszaru płytki może być bardzo trudny. Każda z płytek ma 3 otwory na śruby M3, służące do ich wzajemnego skręcenia. Dla zachowania sztywności konstrukcji używamy tulejek dystansowych o wysokości 15mm. Zmon-towane urządzenie zasilamy napięciem z zakresu 9V–12V przez złącze Z1. Użyty stabilizator (LM350) pozwala na znacznie wyższe napięcie wejściowe. Jednak ze względu na fakt, iż nie ma on radiato-ra, nie zalecam wartości powyżej 12V. Kolejnym krokiem jest zaprogramowanie AVR-a. Wsad do procesora znajduje się w Elportalu wśród materiałów dodat-kowych do tego numeru, w pliku proc.hex. Konieczne jest ustawienie fusebitów w następujący sposób: Extended 0xFF,High Fuse 0xD9 Low Fuse 0xFFNa czas programowania obowiązkowo należy odłączyć płytkę modułu GSM. W przeciwnym razie programator nie wykryje mikrokontrolera.
Rysunek 4 przedstawia rozkład wejść--wyjść urządzenia z uwzględnieniem kolejności numeracji kanałów. Dołączamy do nich różnego typu urządzenia wyko-nawcze wg własnych potrzeb.
Na wejścia cyfrowe (w tym ALARM) i analogowe nie należy podawać napięć wyższych niż 2,8V.
Po podłączeniu dodatkowych urządzeń należy dokonać konfiguracji programo-wej sterownika. W tym celu zakładamy 4 zworki na złącze bypass w sposób przed-stawiony na rysunku 5. Jest to układ, kiedy tzw. bypass jest wyłączony – moduł GSM jest sterowany poprzez mikrokon-troler. Po umieszczeniu jumperów, łączy-my ze sobą obie płytki i podłączamy urządzenie do komputera przewodem USB (urządzenie powinno być zasilo-
ne). Komputer wykryje nowe urządzenie typu wirtualny port szerego-wy i nada mu nazwę COMx (gdzie x należy
do przedziału 1–99). Do obsługi sterownika przygotowa-
no dedykowany program komputerowy (dostępny w Elportalu). Jego głównym zadaniem jest odczyt i zapis przyjaznych nazw wejść i wyjść sterownika. Dodatko-wo pozwala on na sterowanie wyjściami cyfrowymi, kanałami PWM oraz proste debugowanie urządzenia.
Rysunek 6 przedstawia okno pro-gramu. Po jego uruchomieniu, w pole port COM wpisujemy nazwę wirtualnego portu szeregowego, pod którym zainsta-lował się sterownik. Po wpisaniu nazwy klikamy przycisk Połącz. Jeżeli opera-cja przebiegła poprawnie, zostaną odblo-kowane główne zakładki oraz przycisk Synchronizuj. Przycisk ten rozpoczyna odczyt bieżącej konfiguracji urządze-nia. Synchronizacja trwa kilka sekund. W przypadku, gdy przebiegnie ona nie-poprawnie (np. któraś z nazw nie zostanie odczytana), należy ponownie wywołać funkcję.Rysunek 7 przedstawia formę okna po odczytaniu nazw (wejścia cyfrowe). Napi-sy pod etykietami EEPROM prezentu-ją nazwy zapisane w pamięci urządze-nia. Przy każdym z kanałów znajdują
Rys. 4
Fot. 5
Rys. 6
Rys. 5
Rys. 7
Rys. 3. Płytki drukowane - skala 75%
E l e k t ro n i k a d l a Ws z y s t k i c h 21
Projekty AVT
się pola tekstowe służące do wprowadzania nowych nazw. Kiedy nazwa wpi-sana w pole jest identyczna jak zapisana w EEPROM, pole to jest podświetlone na zielono. W przypadku rozbieżności pole zakolorowane jest na czerwono. Zapis nowych nazw następuje po naciśnięciu przycisku Zapisz zmiany. W momencie jego naciśnięcia, przycisk zmienia swój kolor z domyślnego – rysunek 8a na pomarańczowy – rysunek 8b.
Oznacza to, że program dokonuje zapisu do EEPROM. W momencie kiedy przycisk zmieni kolor na ten przedsta-wiony na rysunku 8c, procedura zapisu dobiegła końca, a program przeszedł do trybu weryfikacji zapisu (stare nazwy z kolumn EEPROM powinny zostać zamienione na bieżące). Po zakończeniu weryfikacji przycisk ponownie zmienia kolor na domyślny. Procedury zapisu dla wszystkich typów kanałów są identyczne. Dla zwiększenia przejrzystości interfejsu programu każdy z rodzajów wejść/wyjść ma własną zakładkę (Wejścia cyfrowe, Wejścia analogowe, Wyjścia Cyfrowe, Inne). Zakładka Wejścia analogowe ma identyczny układ jak Wejścia cyfrowe, z tym że kanałów jest nie dwanaście, a osiem. Panel Wyjścia cyfrowe jest tro-chę bardziej rozbudowany – przedstawia go rysunek 9.
Jak poprzednio, widzimy tutaj pola do edycji nazw. Dodatkowo przy każdym z wyjść znajdują się po dwa kwadraty – czerwony i zielony. Naciśnięcie na zielony powoduje załączenie określonego kanału w sterowniku. Naciśnięcie czerwo-nego wyłącza kanał. Do globalnego załą-czenia/wyłączenia kanałów służą przyci-ski Załącz wszystko, Wyłącz wszystko.
Zakładka Inne (rysunek 10) zawiera ele-menty definiowania nazw (Wyjścia PWM, Wejścia Alarm), ustalania kodu PIN, hasła dostępu SMS, głównego numeru komórko-wego oraz sterowania stanem wyjść PWM.
Po naciśnięciu przycisku Zapisz PIN lub Zapisz hasło dostępu następuje zapis parametrów do EEPROM urządzenia. W przeciwieństwie do poprzednich przy-padków, kiedy następowało załadowanie zapisanych wartości w pola edycyjne, w przypadku tych dwóch pól dane nie są ładowane. Potwierdzeniem poprawnego zapisu kodu PIN czy hasła SMS jest poja-wienie się stosownego komunikatu w polu debuggera (o którym w dalszej części artykułu).
Numer główny jest numerem, na który wysyłane są SMS-y informujące o restar-cie systemu (o ile opcja jest aktywna) oraz o aktywowaniu któregoś z wejść ALARM.
Wprowadzony numer główny i opcję informacji o ponownym uruchamianiu należy zatwierdzić przyci-skiem Zapisz.
Sterowanie kanałami PWM odbywa się poprzez wpisanie wartości z zakresu 0–255 w pole PWM1 lub PWM2 i naciś-nięcie przycisku OK przy używanym polu tekstowym.
Naciśnięcie przycisku Debugger pokazuje bądź ukrywa pole debugowania pracy sterownika (rysunek 11). Pole jest bardzo przydatne w przypadku proble-mów z pracą urządzenia – na podstawie wyświetlanych komunikatów dość szybko można dojść do przyczyny problemów.
Podczas pierwszej konfiguracji urzą-dzenia zalecam następującą procedurę obsługi programu. Na początku upew-niamy się, czy karta SIM jest WYJĘTA z urządzenia. Jeśli nie, wyjmujemy ją przy odłączonym zasilaniu. Jeże-li została wyjęta, łączymy się ze ste-rownikiem, klikając Połącz w programie. Następnie przecho-dzimy do zakładki Inne i otwieramy okno debugowania, po czym naciskamy przycisk Reset w urządzeniu. W debug-gerze powinny pojawiać się kolejno różne komunikaty. W momencie gdy pojawi się tekst „Brak SIM”, przystępujemy do wypełnienia przyjaznych nazw, kodu PIN, hasła SMS oraz numeru głównego. Jeżeli jakiś z kanałów nie będzie wykorzysty-wany – mimo to musimy mu nadać nazwę (może to być np. spacja. Kanały nie muszą mieć unikalnych nazw).
Z racji tego, że fabrycznie EEPROM wypełniony jest nieznanymi danymi, bardzo proszę nie klikać przycisku Syn-chronizuj przed dokonaniem pierwszego zapisu, ponieważ może to spowodować, że program się zawiesi.
Po skonfigurowaniu sterownika zamy-kamy program, odłączamy zasilanie i umieszczamy w gnieździe kartę SIM. Po tym ponownie dołączamy zasilanie. Diody D3, D4, D5 początkowo powinny świecić. W miarę kolejnych etapów ini-cjalizacji będą gasły. W momencie kiedy zgasną wszystkie, urządzenie jest goto-we do odbierania komend SMS. Dioda D3 sygnalizuje odbiór pakietu zgodnego z protokołem z komputera. Błyski D4 informują o wymianie danych między modułem GSM a mikrokontrolerem. Cią-głe świecenie D3-D5 świadczy o wystą-pieniu błędu.
Sterowanie urządzeniem odbywa się za pomocą wiadomości SMS wysyła-nych na numer karty SIM umieszczonej w sterowniku. Format wiadomości jest następujący:H a s ło _ d o s tęp u < s p a c j a > k o m e n da1<spacja>komenda2<spacja>…….<spacja>komendaN
Tabela 2 przedstawia wszystkie komendy, jakie obsługuje sterownik GSM.
Załóżmy, że hasło dostępu SMS brzmi elektroNika. Chcąc załączyć wyjścia 1 i 12 (poprzednio wszystkie były wyłączo-ne), wysyłamy wiadomość o treści:elektroNika W01:1 W12:1po odpowiednim wysterowaniu kanałów, otrzymamy wiadomość informującą o sta-nie wyjść.
Aby sprawdzić stan (bez jego zmiany) wyjść i wejść, wysyłamy:elektroNika d_out d_in a_in
Pragnę zauważyć, że komendy allon i alloff są wykonywane zawsze jako pierwsze. Pozwala to na możliwość zasto-sowania uproszczeń wiadomości SMS. Przykładowo gdybyśmy chcieli załączyć wszystkie wyjścia prócz pierwszego i dwunastego, nie musimy po kolei pisać:elektroNika W01:0 W02:1 W03:1 … W12:0tylko prościej poprzez wpisanie:elektroNika allon W1:0 W12:0
Rys. 8
Rys. 9
Rys. 11
Rys. 10
Projekty AVT
E l e k t ro n i k a d l a Ws z y s t k i c h22
Krótkiego komentarza wymagają komendy odblo-kowywania wejść ALARM. Domyślnie wejścia te są odblokowane. W momencie zwarcia któregoś z nich do masy następuje automatyczne wysłanie SMS-a pod główny numer z informacją oth. Dodatkowo wejście, które zostało wyzwolone, zostaje zablokowane – kolej-ne wystąpienie zdarzenia zwarcia do masy nie będzie powodowało wysłania infor-macji o alarmie do czasu odblokowania kanału komendą A(1,2)_reset.
Tryb bypass. Jest to tryb pozwalają-cy na ręczne sterowanie modułem GSM poprzez terminal komputerowy. Aby roz-począć pracę w takiej konfiguracji, należy ustawić jumpery złącza bypass wg rysun-ku 12. Następnie naciskamy przyciski S1 i Reset (S2). Po czym zwalniamy jedynie
Reset. Powinna zaświecić się dioda D3. Od tego momentu przycisk S1 służy do sterowania wejściem PWR_KEY modułu GSM.
Na koniec nie pozostaje mi nic innego, jak życzyć wielu pomysłów na wykorzy-stanie opisywanego urządzenia. Dociekli-wych zachęcam do dokładnego zapozna-nia się z możliwościami modułu GSM. Namawiam również do samodzielnej roz-budowy sterownika o dodatkowe funkcje. Możliwości jest bardzo dużo – może to być np. obsługa bloków AUDIO i GPRS modułu.
Na płytce PCB zostało dodane złącze (Z8) wyprowadzające 10 niewykorzysta-nych portów mikrokontrolera.
W Elportalu, wśród materiałów dodatkowych można znaleźć schemat, dokumentację pły-tek, oprogramowanie, zrzu-ty ekranowe, a także sche-maty wcześniejszej wersji tego urządzenia z modułem MGE3030. Model tej wcześ-
niejszej wersji pokaza-ny jest na fotografiach 6 i 7 (w razie pytań, można pisać do Auto-
ra, na podany adres). Ponieważ moduł MGE3030 nie jest zaleca-ny do nowych opracowań i stop-niowo znika z ofert handlowych, specjalnie została opracowana opisana w artykule nowa wersja z modułem SIM900.
Radosław [email protected]
Płytka główna:R1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 [1206]R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 [1206]R3,R4 . . . . . . . . . . . . . . . . . . . . . . . . . . 470 [1206]R5,R6, R11 . . . . . . . . . . . . . . . . . . . . . . 10k [1206]R7-R9 . . . . . . . . . . . . . . . . . . . . . . . . . . .330R [1206]R10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4,7k [1206] R12-R23,R36-R47. . . . . . . . . . . . . . . . . 2,2k [1206]R24-R35 . . . . . . . . . . . . . . . . . . . . . . . . 47k [1206]C1,C5,C6,C8-C13, C15,C18,C21. . . . . . 100nF [0603]C2 . . . . . . . . . . . .100uF/16V [tantal obudowa SMD-D]C3,C4,C7. . . . . . . . . . . . . . 220uF/tantalowy [SMD-D]C14 . . . . . . . . . . . .100uF/elektrolit [SMD-D] min 6,3VC16,C17 . . . . . . . . . . . . . . . . . . . . . . . . . 10nF [0603]T1-T12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BC847D1,D2, D5 . . . . . . . . . . . . . . . . . . . . .LED żółta [0805]D3, D6-D17. . . . . . . . . . . . . . . . LED czerwona [0805]D4 . . . . . . . . . . . . . . . . . . . . . . . . . LED zielona [0805]U1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LM350U2 . . . . . . . . . . . . . . . . . . . . . LP3985, 2.8V [sot23-5]U3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FT232RLU4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ATMEGA128LBypass. . . . . . . . . . . .Listwa goldpin 2x4 + 4 jumperyGSM_ZAS . . . . . . Złącze na listwę goldpin żeńskie 1x4L1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dławik 10uHS1, S2 . . . . . . . . . . . . . . . . . . . . . . . . . . . MicroswitchX1 . . . . . . . . . . . . . . . . . . . Rezonator kwarcowy 8MHzZ2 . . . . . . Gniazdo USB-B do montażu przewlekanegoZ3 . . . . . . . . . . .Złącze na listwę goldpin (żeńskie) 2x7Z4 . . . . . . . . . . .Złącze na listwę goldpin (żeńskie) 2x4Z5 . . . . . . . . . . . . . . . . . . . . . . . . . Listwa goldpin 2x5 Z7 . . . . . . . . . . . . Złącze IDC do druku 2x5 raster 2,54
Z8 . . . . . . . . . . . . Złącze IDC do druku 2x7 raster 2,548 złączy ARK35 złączy ARK2Płytka GSM:R1,R7 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1k [1206]R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6,8k [1206]R3-R5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 [1206]R6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10k [1206]R8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4,7k [1206]R9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 [1206]R10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47k [1206]C1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100nF [0805]C2 . . . . . . . . . . . . . . . . . . . . . . . . . 2200uF/min [6,3V]C3,C4 . . . . . . . . . . . . . . . . 220uF/min. 6,3V [SMD-D]C5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220nF [0805]C6,C8,C10,C12,C14,C16. . . . . . . . . . 10pF [0805] (*)C7,C9,C11,C13,C15,C17. . . . . . . . . . 33pF [0805] (*)D1 . . . . . . . . . . . . . . . . . . . . . . .Led zielona smd 0805T1-T3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BC847U1 . . . . . . . . . . . .Gniazdo na kartę SIM z wyrzutnikiemU2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .SIM900Ant1. . Złącze SMA żeńskie do druku (kątowe lub proste)M1. . . . . . . . . . . . . . . . . . . . . mikrofon elektretowy (*)P1 . . .Listwa goldpin 1x4, raster 2,54, wysokość od 15mm P2 . . .Listwa goldpin 2x4, raster 2,54, wysokość od 15 mm P3 . . .Listwa goldpin 2x7, raster 2,54, wysokość od 15mmAntena GSM np. z oferty www.maritex.com.pl3 tuleje dystansowe 15mm / średnica 3mmŚrubki, podkładki, nakrętki M3Opcjonalnie: Głośnik . . . . . . . . . . impedancja 32 (*)
Wykaz elementów
Komplet podzespołów z płytką jest do stęp ny w sie ci han dlo wej AVT ja ko kit szkol ny AVT-3065.
Rys. 12
Fot. 6
Fot. 7
Tabela 2