Współpraca Arduino z modułem GSM - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Współpraca Arduino z modułem GSM (/watek-wsp%C3%B3%C5%82praca-arduino-z-modu%C5%82em-gsm) |
Współpraca Arduino z modułem GSM - MarJanPol - 14-11-2017 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-sim800c-shield.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). RE: Współpraca Arduino z modułem GSM - kaczakat - 22-11-2017 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_key=TWOJKLUCZTHINKSPEAK&field1=16.6&field2=16.7&field3=16.8&field4=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. RE: Współpraca Arduino z modułem GSM - MarJanPol - 07-12-2017 (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ą! |