This library enables an Arduino board, allows you to do things like using a mobile GSM: place and receive voice calls, send and receive SMS, and connect to the internet over a GPRS network. The GSM shield transfers data from a serial port to the GSM network through his modem. The modem executes operations via a series of AT commands. The library abstracts low level communications between the modem and SIM card. It relies on the Software Serial library for communication between the modem and Arduino. Typically, each individual command is part of a larger series necessary to execute a particular function. The library can also receive information and return it to you when necessary.
Library structureThere are a number of different classes. The class GSM deals with issue commands to the modem that handles aspects of connectivity and records the system in GSM infrastructure. All your programs GSM / GPRS will include an object of this class to handle the necessary low-level communication. *Voice call handling, managed by the GSMVoiceCall class. *Send/receive SMS messages, managed by the GSM_SMS class. The GPRSClass is for connecting to the internet. GSMClient includes implementations for a client, similar to the Ethernet and WiFi libraries. GSMServer includes implementations for a server, similar to the Ethernet and WiFi libraries. NB : A number of network operators do not allow for incoming connections from the public internet, but will allow them from inside their own. Check with your operator to see what restrictions there are on data use. A number of utility classes such as GSMScanner and GSMModem
Ethernet library compatibilityThe library tries to be as compatible as possible with the current Ethernet library. Porting a program from an Arduino Ethernet or WiFi library to an Arduino with the GSM Shield should be fairly easy. While it is not possible to simply run Ethernet-compatible code on the GSM shield as-is, some minor, library specific, modifications will be necessary, like including the GSM and GPRS specific libraries and getting network configuration settings from your cellular network provider.
GSM classThis class prepares the functions that will communicate with the modem.
GSMVoiceCall classEnables voice communication through the modem. A microphone and speaker need to be added for full use.
GSM_SMS classFacilitates sending and receiving Short Message Service (SMS) messages.
- Arduino Function: SMS.flush
- Arduino Function: SMS.peek
- Arduino Function: SMS.print
- Arduino Function: SMS.write
- Arduino Function: SMS.read
- Arduino Function: SMS.remoteNumber
- Arduino Function: SMS.available
- Arduino Function: SMS.endSMS
- Arduino Function: SMS.ready
- Arduino Function: SMS.beginSMS
- Arduino Function: GSM SMS Constructor
GPRS classThis class is responsible for including the files that are part of the library that involve TCP communication.
GSMClient classThe client class creates clients that can connect to servers and send and receive data.
- Arduino Function: GSMclient.stop
- Arduino Function: GSMclient.flush
- Arduino Function: GSMclient.peek
- Arduino Function: GSMclient.available
- Arduino Function: GSMclient.read
- Arduino Function: GSMclient.connected
- Arduino Function: GSMclient.endWrite
- Arduino Function: GSMclient.write
- Arduino Function: GSMclient.beginWrite
- Arduino Function: GSMclient.connect
- Arduino Function: GSMclient.ready
- Arduino Function: GSMClient Constructor
GSMServer classThe Server class creates servers which can send data to and receive data from connected clients (programs running on other computers or devices).
The GSMModem class facilitates diagnostic communication with the modem.
GSMScanner classThe GSMScanner class provides diagnostic information about the network and carrier.
GSMPIN classThe GSMPIN class has utilities for communicating with the SIM card.
- Arduino Function: GSMPIN.setPINUsed
- Arduino Function: GSMPIN.getPINUsed
- Arduino Function: GSMPIN.checkReg
- Arduino Function: GSMPIN.switchPIN
- Arduino Function: GSMPIN.changePIN
- Arduino Function: GSMPIN.checkPUK
- Arduino Function: GSMPIN.checkPIN
- Arduino Function: GSMPIN.isPIN
- Arduino Function: GSMPIN.begin
- Arduino Function: GSMPIN Constructor