• 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
#1
Witam, chciałbym rozpocząć zabawę z modułem (shieldem) GSM + Arduino UNO. Na razie nie wiem jeszcze za wiele na temat takiego połączenia i w ogóle nt pracy urządzeń telekomunikacyjnych, ale żeby nie zabrnąć za głęboko w ślepy zaułek mam już kilka pytań na początek. Dodam, że GSM miałby służyć do :
- wysłania do Arduino żądania sms o załączenie / wyłączenie przekaźnika
- Wysłania do Arduino zapytania sms o jakiś parametr - np. o temperaturę + do informacji zwrotnej
- wysłania przez Arduino sms z informacją o detekcji przez czujkę ruchu.
- itp.

A zatem pytania:

1. Które chipy (SIM800 / SIM900 / inne?) nadają się do polskich operatorów i które z nich najlepiej nadają się do w/w zastosowań? - ogólnie w które warto inwestować?
2. Korci mnie, żeby kupić chiński moduł bo jak wiadomo są sporo tańsze (biblioteki i dokumentacja po angielsku są dostępne) - np. taki: http://www.keyestudio.com/keyestudio-sim...hield.html - czy ktoś może doradzić czy to nie jest bardzo zły pomysł i jakie niespodzianki prawdopodobnie mnie czekają?
3. Gdzie najlepiej zdobyć wiedzę nt. funkcji związanych z pracą GSM? - Niby w internecie jest wszystko, ale dla takiego mocno początkującego jak ja, to przydałby się jakiś taki łopatologiczny kurs wprowadzający bo jak próbuję analizować kody pod arduino, to szybko się gubię.

Z góry dzięki!
MarJanPol

ps. Nie wiem czemu link nie działa - przypuszczam, że to chwilowa niedyspozycja (przez ostatnie kilka dni z rzędu wszystko działało). Załączam  tymczasem krótką dokumentację PDF, którą otrzymałem mailem od tego producenta (razem z bibliotekami).


Załączone pliki
.pdf   ks0254_keyestudio_sim800c_shield__1.pdf (Rozmiar: 281.95 KB / Pobrań: 6)
 
Odpowiedź
#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ź
#3
(22-11-2017, 02:39)kaczakat napisał(a): ...

O Mistrzu, Bardzo Ci dziękuję! Długo nikt nie odpisywał i przestałem zaglądać na to forum a tu takie bezcenne porady. Bardzo dziękuję za pomoc !!!

Mar

PS. Punkt reputacji przyznaję z wielką przyjemnością!
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości