Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jhonoryza/gsm-library
https://github.com/jhonoryza/gsm-library
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/jhonoryza/gsm-library
- Owner: jhonoryza
- License: gpl-2.0
- Created: 2015-12-30T08:12:07.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2015-12-30T08:20:56.000Z (almost 9 years ago)
- Last Synced: 2023-08-12T15:34:45.078Z (over 1 year ago)
- Language: C++
- Size: 61.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
GSM GPRS Shield for Arduino Uno
For informations and support:
http://www.gsmlib.org
http://code.google.com/p/gsm-shield-arduino/ (no longer supported)
http://www.open-electronics.org/arduino-gsm-shield/
http://www.futurashop.it/The below functions are always available in the library.
int attachGPRS(char* domain, char* dom1, char* dom2)
establishes a GPRS connection with domain using authentication (if needed)
parameters and return values:
domain: pointer to a string that contains the domain address of GPRS connection
dom1: pointer to the username string (don't use if not needed)
dom2: pointer to the password string (don't use if not needed)
return:
0 - unable to establish a GPRS connection
1 - connection successfully establishedint dettachGPRS()
disconnects the GPRS connectionint connectTCP(const char* server, int port)
starts a socket connection to the server at specific port
parameters and return values:
server: pointer to the server address string, it can be the IP or normal address
port: port used to establish a connection
e.g. gsm.connectTCP("www.google.it",80)
e.g. gsm.connectTCP("74.125.39.106",80)
return:
0 - unable to start the TCP connection
1 - connected to the server as client
Sample: GSM_GPRSLibrary_Clientint disconnectTCP()
stops the TCP connection to the serverint connectTCPServer(int port)
puts the SIM900 into server mode, waiting for TCP client connection on the specified port.
parameters and return values:
port: port used for establish a connection
return:
0 - unable to start server connection
1 - server started successfully, waiting for client connection
Sample: GSM_GPRSLibrary_Servervoid SimpleRead()
simple way to read from the newsoftserial and print the value on the hardware serial
Sample: GSM_GPRSLibrary_ATvoid SimpleWrite(char *comm)
simple way to write a string on newsoftserial
parameters and return values:
comm: pointer to the string to write
Sample: GSM_GPRSLibrary_ATFor memory saving, next functions are included in a class, so before use them is needed to include the header and to create the class.
For calling functions is necessary to include the next two lines
include "call.h";
CallGSM call_classname; //the name you choose must be the same in the functions belowvoid Call(char *number_string)
calls the specific number
e.g. call_classname.Call(“+390123456789″);void Call(int sim_position)
calls the number stored at the specified SIM position
e.g. call_classname.Call(1); // call to the number stored at the 1st SIM positionvoid HangUp(void)
hangs up call(incoming or active)
e.g. call_classname.HangUp();void PickUp(void)
picks up the incoming call
e.g. call_classname.PickUp();For using SMS functions is necessary to include the next two lines
include "sms.h";
SMSGSM sms_classname; //the name you choose must be the same in the functions belowchar SendSMS(char *number_str, char *message_str)
sends SMS to the specific phone number
parameters and return values:
number_str: pointer to the phone number string
message_str: pointer to the SMS text string
return:
ERROR ret. val:
—————
-1 – comm. line to the GSM module is not free
-2 – GSM module didn’t answer in timeout
-3 – GSM module has answered “ERROR” string
OK ret val:
———–
0 – SMS was not sent
1 – SMS was sent 9/15
example of use:
sms_classname.SendSMS(“00XXXYYYYYYYYY”, “SMS text”);char SendSMS(byte sim_phonebook_position, char *message_str)
sends SMS to the specified SIM phonebook position
parameters and return values:
sim_phonebook_position: SIM phonebook position <1..20>
message_str: pointer to the SMS text string
return:
ERROR ret. val:
—————
-1 – comm. line to the GSM module is not free
-2 – GSM module didn’t answer in timeout
-3 – specified position must be > 0
OK ret val:
———–
0 – SMS was not sent
1 – SMS was sent
an example of usage:
GSM gsm;
include "sms.h";
SMSGSM sms_classname;
sms_classname.SendSMS(1, “SMS text”);char IsSMSPresent(byte required_status)
finds out if there is present at least one SMS with specified status
if there is new SMS before IsSMSPresent() is executed this SMS has a status UNREAD and then after calling IsSMSPresent() method status of SMS is automatically changed to READ
parameters and return values:
required_status:
SMS_UNREAD – new SMS – not read yet
SMS_READ – already read SMS
SMS_ALL – all stored SMS
return:
ERROR ret. val:
—————
-1 – comm. line to the GSM module is not free
-2 – GSM module didn’t answer in timeout
OK ret val:
———–
0 – there is no SMS with specified status
1..20 – position where SMS is stored
example of use:
char position;
char phone_number[20]; // array for the phone number string
char *sms_text;
position = sms_classname.IsSMSPresent(SMS_UNREAD);
if (position) { // read new SMS
sms_classname.GetGSM(position, tel_number, &sms_text);
}char GetSMS(byte position, char *phone_number, char *SMS_text, byte max_SMS_len)
reads SMS from specified memory(SIM) position
parameters and return values:
position: SMS position <1..20>
phone_number: a pointer where the phone number string of received SMS will be placed
so the space for the phone number string must be reserved – see example
SMS_text : a pointer where SMS text will be placed
max_SMS_len: maximum length of SMS text excluding also string terminating 0×00 character
return:
ERROR ret. val:
—————
-1 – comm. line to the GSM module is not free
-2 – GSM module didn’t answer in timeout
-3 – specified position must be > 0
OK ret val:
———–
GETSMS_NO_SMS – no SMS was found at the specified position
GETSMS_UNREAD_SMS – new SMS was found at the specified position
GETSMS_READ_SMS – already read SMS was found at the specified position
GETSMS_OTHER_SMS – other type of SMS was found an example of usage:
GSM gsm;
include "sms.h";
SMSGSM sms_classname;
char position;
char phone_num[20]; // array for the phone number string
char sms_text[100]; // array for the SMS text string
position = sms_classname.IsSMSPresent(SMS_UNREAD);
if (position) {
// there is new SMS => read it
sms_classname.GetGSM(position, phone_num, sms_text, 100);
Serial.println(“DEBUG SMS phone number: “, 0);
Serial.println(phone_num, 0);
Serial.println(“\r\n SMS text: “, 0);
Serial.println(sms_text, 1);
}char GetAuthorizedSMS( byte position, char *phone_number, char *SMS_text, byte max_SMS_len, byte first_authorized_pos, byte last_authorized_pos)
reads SMS from specified memory(SIM) position and makes authorization -
it means SMS phone number is compared with specified SIM phonebook position(s) and in case numbers match GETSMS_AUTH_SMS is returned, otherwise GETSMS_NOT_AUTH_SMS is returned
parameters and return values:
position: SMS position to be read <1..20>
phone_number: a pointer where the tel. number string of received SMS will be placed so the space for the phone number string must be reserved – see example
SMS_text : a pointer where SMS text will be placed
max_SMS_len: maximum length of SMS text excluding terminating 0×00 character
first_authorized_pos: initial SIM phonebook position where the authorization process starts
last_authorized_pos: last SIM phonebook position where the authorization proces finishes
Note(important):
================
In case first_authorized_pos=0 and also last_authorized_pos=0
the received SMS phone number is NOT authorized at all, so every
SMS is considered as authorized (GETSMS_AUTH_SMS is returned)
return:
ERROR ret. val:
—————
-1 – comm. line to the GSM module is not free
-2 – GSM module didn’t answer in timeout
-3 – position must be > 0
OK ret val:
———–
GETSMS_NO_SMS – no SMS was found at the specified position
GETSMS_NOT_AUTH_SMS – NOT authorized SMS found at the specified position
GETSMS_AUTH_SMS – authorized SMS found at the specified position
an example of usage:
GSM gsm;
include "sms.h";
SMSGSM sms_classname;
char phone_num[20]; // array for the phone number string 12/15
char sms_text[100]; // array for the SMS text string
// authorize SMS with SIM phonebook positions 1..3
if (GETSMS_AUTH_SMS == sms_classname.GetAuthorizedSMS(1, phone_num, sms_text, 100, 1, 3)) {
// new authorized SMS was detected at the SMS position 1
Serial.println(“DEBUG SMS phone number: “, 0);
Serial.println(phone_num, 0);
Serial.println(“\r\n SMS text: “, 0);
Serial.println(sms_text, 1);
}
// don’t authorize SMS with SIM phonebook at all
if (GETSMS_AUTH_SMS == sms_classname.GetAuthorizedSMS(1, phone_num, sms_text, 100, 0, 0)) {
// new SMS was detected at the SMS position 1
// because authorization was not required
// SMS is considered authorized
Serial.println(“DEBUG SMS phone number: “, 0);
Serial.println(phone_num, 0);
Serial.println(“\r\n SMS text: “, 0);
Serial.println(sms_text, 1);
}char DeleteSMS(byte position)
deletes SMS from specified SMS position
parameters and return values:
position: SMS position <1..20>
return:
ERROR ret. val:
—————
-1 – comm. line to the GSM module is not free
-2 – GSM module didn’t answer in timeout
-3 – position must be > 0
OK ret val:
———–
0 – SMS was not deleted
1 – SMS was deletedFor HTTP functions is necessary to include the next two lines
include "inetGSM.h";
inetGSM inet_classname; //the name you choose must be the same in the functions belowint httpGET(const char* server, int port, const char* path, char* result, int resultlength)
Send a GET request to server, at specified port, for the requested path and save the reply in a string
parameters and return values:
server: the name or IP address of the server
port: number of port used for the connection
path: pointer to the string that contains the requested path e.g. / or /test/test.html
result: pointer to the reply string from the server
resultlength: size of the string with result
return:
0 - nothing received, maybe there is an error
other - number of byte received
Sample: GSM_GPRSLibrary_Client