22-11-2017, 02:39
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.
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