Projekty AVT SSterownikterownik GGSMSM 33065065 · (ad6) pa6 45 (ad7) pa7 44 (ale) pg2 43 (a8) pc0...

6
Elektronika dla Wszystkich 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 mankamentem 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 3065 3065 Sterownik Sterownik GSM GSM (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 AREF 62 AGND 63 A V 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 (MI SO) 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 XTAL2 23 XTAL1 24 GND 53 GND 22 V CC 21 V CC 52 PEN 1 RESET 20 (TOSC1) PG4 19 (TOSC2) PG3 18 ATmega128 U4 1 2 3 4 5 6 7 8 9 10 Z7 Analog IN +12V Pk1 Pk2 Pk3 Pk4 Pk5 Pk6 Pk7 Pk8 Pk9 Pk10 Pk11 Pk12 T12 T11 T10 T9 T8 T7 T6 T5 T4 T3 T2 T1 D17 D16 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 +2.8V MOSI 1 V 2 Ld 3 Gnd 4 Rst 5 Gnd 6 SCK 7 Gnd 8 MI SO 9 Gnd 10 Z5 RxD0 SCK SCK RST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Z3 GSM_GPIO Pk1 Pk2 Pk3 Pk4 Pk5 Pk6 Pk7 Pk8 Pk9 Pk10 Pk11 Pk12 X1 C20 33pF C19 33pF C18 100nF C21 100nF L1 10uH ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 RxD1 TxD1 PWM1 PWM2 +2.8V RxD0 TxD0 D5 D4 D3 R7 R9 R8 VCCIO 4 RXD 5 RI 6 GND 7 DSR 9 DCD 10 CTS 11 CBUS4 12 CBUS2 13 CBUS3 14 USBDP 15 USBDM 16 3V3OUT 17 GND 18 RESET 19 V CC 20 GND 21 CBUS1 22 CBUS0 23 AGND 25 TEST 26 OSCI 27 OSCO 28 TXD 1 DTR 2 RTS 3 U3 FT232RL D1 D2 R3 470R R4 470R C12 100nF C13 100nF C14 100uF VCC D- D+ GND GND Z2 1 2 Bypass a usb_ua t_ x usb_ua t_tx 1 2 Bypass b 1 2 Bypass RxD0 RxD1 TxD0 TxD1 ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 S2 R5 10k S1 R6 10k +2.8V C16 C17 RI DTR PWR GSM_RST STATUS 1 2 3 Z9 PWM2 PWM1 Al t1 Al t2 PWR GSM_TX GSM_RX RI DTR STATUS 1 2 3 4 5 6 7 8 Z4 GSM 1 2 Bypass d GSM_RST W js a y o D g1 D g2 D g3 D g4 D g5 D g6 D g7 D g8 D g9 D g10 D g11 D g12 Z1 12V C1 100nF C2 100uF/16V C3 220uF C4 220uF R2 220R R1510R C5 100nF V +12V 3 2 1 IN ADJ OUT U1 LM350 +2.8V C7 220uF C10 3x100nF C8 S1 RST D g1 D g2 D g3 D g4 D g5 D g6 D g7 D g8 D g9 D g10 D g11 D g12 Oth1 Oth2 Oth3 Oth4 Oth5 Oth6 Oth7 Oth8 Oth9 Oth10 S1 Oth1 Oth2 Oth3 Oth4 Oth5 Oth6 Oth7 Oth8 Oth9 Oth10 Al t2 Al t1 Z6 1 2 3 4 GSM_ZAS VCC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Z8 R11 10k R10 4,7k +2.8V V C11 100nF C15 100nF C9 C6 100nF R12 2,2k R13 2,2k R14 2,2k R15 2,2k R16 2,2k R17 2,2k R18 2,2k R19 2,2k R20 2,2k R21 2,2k R22 2,2k R23 2,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 R36 2.2k R37 2.2k R38 2.2k R39 2.2k R40 2.2k R41 2.2k R42 2.2k R43 2.2k R44 2.2k R45 2.2k R46 2.2k R47 2.2k TxD0 RST In En Byp Gnd Out U2 LP3985 8MHz 3x330R 2x10nF T1...T2 - BC847 Rys. 1a

Transcript of Projekty AVT SSterownikterownik GGSMSM 33065065 · (ad6) pa6 45 (ad7) pa7 44 (ale) pg2 43 (a8) pc0...

Page 1: Projekty AVT SSterownikterownik GGSMSM 33065065 · (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

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

Page 2: Projekty AVT SSterownikterownik GGSMSM 33065065 · (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

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

Page 3: Projekty AVT SSterownikterownik GGSMSM 33065065 · (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

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

Page 4: Projekty AVT SSterownikterownik GGSMSM 33065065 · (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

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%

Page 5: Projekty AVT SSterownikterownik GGSMSM 33065065 · (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

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

Page 6: Projekty AVT SSterownikterownik GGSMSM 33065065 · (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

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