Zaloguje się
or
Tel +48 698 615 740

Moduł GSM GPRS SIM900A mini V3.8.2 z anteną

01 grudnia, 2021

W tym artykule zostanie omówiony moduł GSM SPRS SIMM900. Moduł ten docelowo ustawiony jest na komunikacje na terenach Azji, dlatego przedstawię jak możemy zmienić jego firmware tak, aby działał on na standardzie europejskim. Na koniec przedstawię przykład użycia tego modułu dzięki któremu będziemy mogli wysyłać SMS używając naszej karty SIM.

Spis treści

  • Krótki opis
  • Specyfikacja
  • Zamiana firmware -u
  • Przykład
  • Pliki do pobrania

Krótki opis

Moduł pracuje na częstotliwościach 900 i 1800MHz. Została w nim wykorzystana technologia GPRS/GSM która pozwala na wykonywanie połączeń oraz wysyłanie SMS -ów. Przy użyciu interfejsów modułu developerzy stworzyli wiele aplikacji pozwalających na bardziej rozbudowany sposób komunikacji dzięki technologii GPRS/GSM.

Specyfikacja

  • Chip: SIM900A (wersja A obsługuje wyłącznie sieci Azjatyckie, w celu dostosowania do europejskich sieci telekomunikacyjnych konieczna jest zmiana firmware układu. )
  • Częstotliwości sieci GSM: 850/900/1800/1900 MHz 
  • Napięcie zasilania: 4V – 5.2V 
  • Interfejs: UART TTL
  • Interfejs: RS232
  • Komunikacja za pomocą komend AT
  • Standardowe złącze karty SIM
  • Diody LED sygnalizujące pracę modułu
  • W zestawie antena 2dBi 
  • Wymiary: 50mm x 48mm

Zmiana firmware

Potrzebne do wykonania:

Hardware:
  • Moduł GSM GPRS SIM900A mini V3.8.2 z anteną
  • 4x kable stykowe (żeń)
  • Konwerter USB – RS232/TTL/UART – wyjście 3,3V/5V – CP2102
Software:
  • Simcom – sim900 Customer flash loader
  • AiThinker Serial Tool (można również wykorzystać Arduino IDE, ale osobiście polecam tą aplikacje z uwagi na efektywność i wygodę korzystania)

(Programy do pobrania poniżej w artykule)

Połączenie

Łączymy konwerter do modułu następująco :

  • GND -> GND
  • 5V -> VCC
  • RXD -> TX
  • TXD -> RX

Komunikacja z modułem

Otwieramy AiThinker.

Najpierw musimy sprawdzić czy mamy na pewno dobrze ustawiony port. Możemy sprawdzić z jakiego portu korzysta nasze urządzenie dzięki Menedżerowi urządzeń

Po upewnieniu się że poprawnie ustawiliśmy port i boundrate, rozpoczynamy komunikację. Do komunikowania się z modułem służą komendy AT, w Arduino Ide używamy je wykorzystując monitor portu szeregowego jako terminal. Wystarczy otworzyć pusty szkic a następnie monitor portu i wpisać “AT” w pole odpowiadające za wysyłanie treści do płytki. Po tym moduł powinien nam odpowiedzieć “OK” co oznacza że nie ma żadnych problemów w komunikacji z urządzeniem. W AiThinker robimy to samo, tyle że nie musimy zapamiętywać komend, a wystarczy że w panelu po prawej stronie wciśniemy odpowiednio ponumerowany przycisk który sam wprowadzi nam komendę. (Jeżeli komunikat “OK” nie wyświetlił się, upewnij się że wszystkie przewody są dobrze podpięte)

Skoro wiemy że nasze połączenie działa bez zarzutów sprawdźmy jaka wersja jest zainstalowana na naszym module. Do tego użyjemy komend “AT + GMM” i “AT + CGMR”

Teraz kiedy wiemy już jaką wersję mamy musimy zamienić ją na adekwatną do niej wersję europejską która w nazwie zamiast litery “A” posiada literę “M”(Jeżeli na module znajduje się 32 bitowa wersja bez problemu możemy ją zastąpić 64 bitową). (Link do strony z wersjami znajduje się na dole w artykule).

Pobranie nowej wersji Firmware

Otwieramy Simcom i tak jak poprzednio sprawdzamy czy mamy ustawiony dobry port. Jako prędkość wybieramy “115200”.

Następnie musimy ustawić jaki plik chcemy pobrać na moduł. Teraz z folderu z wersją firmware wybieramy plik z końcówką “.cla”. Program sam powinien nam pokazać tylko ten plik który potrzebuje.

Po wybraniu pliku naciskamy start(po pojawieniu się komunikatu “Please power up the target” odłącz i podłącz ponownie kable od VCC ) i czekamy aż nowa wersja, nadpisze starą. Po załadowaniu się całego paska możemy sprawdzić że wersja na module rzeczywiście uległa zmianie wpisując ponownie “AT + GMM” w AiThinker.

Przykład

Elementy:

  • 4x Kable stykowe
  • Moduł GSM GPRS SIM900A mini V3.8.2 z anteną
  • Arduino Uno lub Mega
  • Telefon Komórkowy
  • Oddzielna karta SIM

Połączenie:

  • Arduino -> Moduł
  • GND -> GND
  • 5V -> VCC
  • 10(Mega)/ 2(Uno) -> TXD
  • 11(Mega)/3(Uno)-> RXD

Na początku musimy zaimplementować bibliotekę Software Serial dzięki której będziemy mogli wykonać połączenie. Tworzymy obiekt tej klasy/biblioteki i definiujemy które piny będą odpowiadały na płytce jako RX i TX. W Arduino Uno zamiast (10,11) ustawiamy (2,3).

#include <SoftwareSerial.h>
SoftwareSerial SIM900A(10,11); 

Kolejno zajmijmy się funkcją void setup(). Rozpoczynamy w niej komunikacje na porcie szeregowym i utworzonym przez nas porcie SIM900A. Następnie wysyłamy komunikat informujący że układ jest gotowy do działania. Potem wyświetli nam się informacja o tym abyśmy podjęli wybór co chcemy zrobić, gdyż nasz program jest wyposażony w 2 funkcje: odbierania i wysyłania. Po wpisaniu “s” w oknie terminala szeregowego będziemy mogli wysłać wiadomość, a po wpisaniu “r” odebrać ją.

void setup()
{
  SIM900A.begin(9600);   // GSM Module Baud rate - communication speed 
  Serial.begin(9600);    // Baud rate of Serial Monitor in the IDE app
  Serial.println ("Text Messege Module Ready & Verified");
  delay(100);
  Serial.println ("Type s to send message or r to receive message");
}

Teraz funkcja void loop() w której zadziała logika podjętego przez nas wcześniej wyboru. Po wpisaniu odpowiedniej litery zostanie wykonana adekwatna funkcja. Następnie tworzymy if-a którego zadaniem jest wyświetlenie na monitorze portu szeregowego wszytskich danych przechodzących przez port SIM900a.

void loop()
{
 if (Serial.available()>0)
   switch(Serial.read())
  {
    case 's':
      SendMessage();
      break;
    case 'r':
      RecieveMessage();
      break;
  }

 if (SIM900A.available()>0)
   Serial.write(SIM900A.read());
}

Pierwsza z dwóch ostatnich funkcji SendMessage pozwala na wysłanie wiadomości przy użyciu komend AT. Na początku ustawiony zostaje typ przesyłanych danych na tekst. Potem ustawiony zostaje numer docelowy. A na koniec treść wiadomości. Po tym pojawia się jeszcze komunikat (char)26 który znaczy to samo co “CTR+Z”.

 Serial.println ("Sending Message please wait....");
  SIM900A.println("AT+CMGF=1");    //Text Mode initialisation 
  delay(1000);
  Serial.println ("Set SMS Number");
  SIM900A.println("AT+CMGS=\"+48numertelefonu\"\r"); // Receiver's Mobile Number
  delay(1000);
  Serial.println ("Set SMS Content");
  SIM900A.println("Wiadomosc zostala wyslana przez arduino ");// Messsage content
  delay(100);
  Serial.println ("Done");
  SIM900A.println((char)26);//   delay(1000);
  Serial.println ("Message sent succesfully");

W Funkcji ReviceMessages mająca zadnie odbierać wiadomości dzięki komendom AT ustawiamy tylko port na tryb odbioru.

 void RecieveMessage() {
  Serial.println ("Receiving Messeges");
  delay (1000);
  SIM900A.println("AT+CNMI=2,2,0,0,0"); // Eeceiving Mode Enabled
  delay(1000);
  Serial.write ("Messege Received Sucessfully");
 }

Pliki do pobrania:

Link do Firmwarów- http://drive.google.com/drive/folders/1G8FgBx3XeAaJpn5ZKPW4UjIX6Ks_iRdj

Sticky
Możliwość komentowania Moduł GSM GPRS SIM900A mini V3.8.2 z anteną została wyłączona
Dadas Bartosz

Dadas Bartosz

Jest Uczniem Technikum Budowlano-Elektronicznego w Świdnicy na kierunku Technik Informatyk. Na co dzień oprócz projektów z ardunio uczy się programować aplikacje mobile. W przyszłości chcę zostać programistą.

Comments are closed.

Strona korzysta z plików cookies w celu realizacji usługi i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.