• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Współpraca Arduino z modułem GSM
#2
Witam
Musisz nauczyć się parsowania danych przylatujących z UART. Na początek to samo musisz umieć zrobić komendami wysyłanymi z terminala. Czyli np. wysyłasz komendę z terminala zapal_LED1 i Arduino ma Ci tę diodę zaświecić.
Zarządzanie modemem opiera się o wysyłanie  komend AT w trybie tekstowym. Polecenie typu połącz się z siecią, wybierz tryb pracy, wyślij SMS, zadzwoń, połącz się z serwerem, reset, itp. SIM odpowiada i musisz z dokumentacji wyczytać jakie te odpowiedzi mogą być i co dalej robić. Kupić można na Allegro SIM800L (tylko GPRS i SMS) albo A6 (Voice, GPRS, SMS) w okolicach 50zł - co prawda w tej cenie nie jako shield tylko moduły do płytki stykowej czy tam do kabelków, ale możesz zacząć bawić się pojutrze. No i te sprzedawane u nas na pewno działają z polskimi sieciami. Te wymienione testowałem i działają w polskich sieciach PLUS, ORANGE, w PLAY (VIRGIN MOBILE dokładnie) nie działa mi GPRS w roamingu. Podłącza się tylko linie TX/RX /GND/VCC i można się bawić. Na początek można się podłączyć z terminala komputera przez konwerter UART-USB czy tak jak niżej załączam przykład BTkompa-BTHC05-modemA6. Jest też modem A7 z wbudowanym GPS. No i te działają na 5V.
Wymienione modemy mają w większości te same komendy i odpowiedzi, także zabawa z bibliotekami jest taka sama, można użyć z Arduino tę do SIM900, po prostu zamiast studiować kartę katalogową uczysz się udostępnionych funkcji biblioteki i ich zastosowania.
Najprostsze - sprawdzenie komunikacji. Wysyłasz AT, modem odpowiada OK. Sprawdzenie statusu sieci AT+CREG? modem odpowiada +CREG: 1,1 co jest ok, np. 1,5 oznacza właśnie roaming i mi nie połączy w GPRS.
Przykładowy LOG komunikacji TCPIP - ustawienie trybu GPRS i wysłanie danych na Thinkspeak (sprawdzenie aktualnego trybu, ustawienie GPRS, podanie danych logowania sieci, sprawdzenie przydzielonego IP, połączenie z IP serwer Thinkspeak, Ustawienie trybu wysłania komunikatu, wysłanie komunikatu zakończonego specjalnym znakiem CTR+Z, Thinkspeak automatycznie rozłącza, wyłączenie trybu GPRS, sprawdzenie trybu pracy) :
AT+CGATT?
+CGATT:0
OK

AT+CGATT=1
AT+CGDCONT=1,"IP","internet"
OK
OK

AT+CGACT=1,1
OK

AT+CIFSR
10.235.12.35
OK

AT+CIPSTART="TCP","184.106.153.149",80
CONNECT OK
OK

AT+CIPSEND
> GET https://api.thingspeak.com/update?api_ke...ield4=16.9

OK

+CIPRCV:1,0
+TCPCLOSED:0
OK

AT+CGATT=0 

AT+CGATT?
+CGATT:0
OK


Wysłano cztery dane i pokazują się na wykresie w Thinkspeak. Wysyłanie generalnie jest proste.
Odbieranie danych z modemu wygląda podobnie, po prostu musisz umieć w programie zareagować na tekst przylatujący z UART.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Współpraca Arduino z modułem GSM - przez kaczakat - 22-11-2017, 02:39

Skocz do:


Przeglądający: 1 gości