Dzisiaj przetestuję moduł GSM, GPRS SMS oparty na chipie-modemie M590 firmy Neoway.
Na początek dane techniczne:
Nazwa : Moduł GSM GPRS SMS NEOWAY M590
Na początek aby sprawdzić ustawienia modułu i czy poprawnie działa podłączamy moduł do PC przez złącze RS232 lub konwerter USB-UART RS232.
W niektórych konwerterach można ustawić napięcie poziomu logiki 3,3 lub 5 V, wybieramy 3,3V. Jeżeli
Do Pinów w module podłączamy zasilanie zewnętrzne.
Trzeba zwrócić szczególną uwagę na zasilanie modułu GSM. Z natury sprawy modem M590 jest zaprojektowany do pracy z baterią-akumulatorem 3,7V dlatego też zasilanie jeżeli będzie inne musi być dobrze stabilizowane i odfiltrowane.
Połączenia :
PC RX – moduł TX -> PIN 7
PC TX – moduł RX -> PIN 8
PC GND – moduł GND -> PIN 1 lub 2
GND – moduł BOOT PIN 14
Zasilanie zewn:
+ 3,7-4,2 – moduł PIN 4
GND – moduł PIN 1 lub 2
Po prawdiłowym podłączeniu LED 1 świeci ciągle (zasilanie) , LED 2 miga cyklicznie ( gotowość modułu do pracy), bez podłączenia
PIN 14 -> BOOT do masy LED 2 nie świeci. Można więc sterować pracą modułu praca -> stan niski na BOOT, oczekiwanie -> stan wysoki na BOOT
Wypróbujemy wewnętrzną aplikację Arduino „Szeregowy monitor” :
Powiększenie
Trzeba pamiętać, aby na końcu każdej komeny AT wysłać znacznik końca linii ( NL lub CR ) zależy od systemu operacyjnego. Ustawiamy
NL i CR.
Po wpisaniu komendy AT+IPR? -> Wyślij / komenda pyta o ustawienie Baud dla połączenia z UART
modem działa i odpowiedział + IPR: 115200 OK
Zmieniamy na 9600 Baud:
AT+IPR=9600 -> Wyślij
modem odpowiedzał OK, sprawa załatwiona.
Aby nawiązać połączenie musimy zmienić w monitorze prędkość przesyłu na 9600 Baud. U mnie aby nawiązać połączenie musiałem zamknąć monitor i otworzyć go od nowa.
Po uzyskaniu połączenia pytamy komendą AT+IPR? -> Wyślij , o ustawienie modułu. Moduł odpowiedział + IPR: 9600 OK ,
wszystko przebiegło pomyślnie. Moduł ma ustawioną prędkość UART na 9600 Baud.
Aby wysłać z modułu SMS ciąg komend musimy zakończyć znakiem wyrażonym w HEX – „0x1a”. Monitor szeregowy w Arduino nie obsługuje znaków HEX.
Dlatego posłużymy się darmową aplikacją SerialMon.
Powiększenie
Zestaw komend do wysłania SMS na numer telefonu +48XXXXXXXXX :
Pamiętamy o ustawieniach 9600 Baud, każda linia zakończona CR+LF a także znaki w ASCII
AT+CSCS=”GSM” -> Send
AT+CMGF=1 -> Send
AT+CMGS=”+48XXXXXXXXX” -> Send
tekst wiadomosci -> Send //// tutaj tekst wiadomości tekstowej
zmieniamy ASCII na HEX
0x1a -> Send /// HEX – 0x1a = znak ctrl-z
moduł odpowiedział + CMGS 22 OK , SMS został wysłany.
Do pierwszych testów z Arduino wykorzystamy ArduinoMega2560. Podłączenia wykonujemy w.g. schematu poniżej.