Help me guys to understand more about GSM Module

Good day , I'm working with project right now that will display text and logo in RGB LED strip using GSM module and arduino . I'm al ready done with that but the problem is My whole project requires a Admin

this is the scenario

student texted the number of GSM module then it will temporary stored (maybe on array)

then the admin need to approve it ( Display or Delete that message )

To display or delete message Admin requires a password and command like this:

STI123 Display MGS1
(password) (command) (message that stored)

can you give me example codes or some PDF to understand more about GSM module TIA guys :slight_smile:

You have some significant reading to do...
Fortunately there are many previous attempts at similar projects on the forum.

Let’s get some basic terminology straight...
GSM is the mobile telephony technology that supports SMS and MMS messaging as an add-on.
As 3G an 4G are DATA extensions to the original 2G platform, they may be regarded as supersets, but are not correctly called GSM any longer, but 3G or 4G with even further enhancements like VoLTE etc. They’re principally data layers which offer progressively better bandwidth and reduced latency. You’re only interested in the SMS component of this alphabet soup

So you already have the messaging part of the project, you need to look at PARSING, EEPROM and a few other techniques to handle the storage and processing of your messages.

Assuming the student sends a text message TO the unit, where is the admin located ? Local to the Arduino, or somewhere else...?
How are you going to communicate with the admin? Serial, another SMS message etc ?

Why don't you let us know which exact GSM module you're talking about?

wvmarle:
Why don't you let us know which exact GSM module you're talking about?

I'm using GSM module sim900a mini

lastchancename:
You have some significant reading to do...
Fortunately there are many previous attempts at similar projects on the forum.

Let’s get some basic terminology straight...
GSM is the mobile telephony technology that supports SMS and MMS messaging as an add-on.
As 3G an 4G are DATA extensions to the original 2G platform, they may be regarded as supersets, but are not correctly called GSM any longer, but 3G or 4G with even further enhancements like VoLTE etc. They’re principally data layers which offer progressively better bandwidth and reduced latency. You’re only interested in the SMS component of this alphabet soup

So you already have the messaging part of the project, you need to look at PARSING, EEPROM and a few other techniques to handle the storage and processing of your messages.

Assuming the student sends a text message TO the unit, where is the admin located ? Local to the Arduino, or somewhere else...?
How are you going to communicate with the admin? Serial, another SMS message etc ?

I'll luckily solved my problem how to make statement

if(textMessage.indexOf(password + "ON")>=0){
Serial.println("LED set to ON");
textMessage = "";
}

if i texted " STI(the password) ON" the serial print LED set ON

my problem right now is how to change/modify/save the password in the system , is that using EEPROM ? can you guide me what to do ? thanks bro

this is my current program ,

#include <SoftwareSerial.h>

SoftwareSerial mySerial(50, 51);
String password = "STI ";
String textMessage;
String Message;

void setup()
{
mySerial.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
delay(5000);
Serial.print("SIM900 ready...");
SendMessage();

}

void loop()
{

textMessage="";
if(mySerial.available()>0){
textMessage = mySerial.readString();

delay(10);

if(textMessage.length()>0)
{
textMessage=textMessage.substring(textMessage.indexOf("+CMT"));
textMessage=textMessage.substring(textMessage.indexOf("\n"));
textMessage.replace("\n","");
Serial.print(textMessage);
Serial.println("");
}

if(textMessage.indexOf(password + "ON")>=0){
Serial.println("LED set to ON");
textMessage = "";
}

}
}

void SendMessage()
{
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
mySerial.println("AT+CMGS="+639290584072"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("The system is ready");// The SMS text you want to send
delay(100);
mySerial.println((char)26);// ASCII code of CTRL+Z
delay(1000);
}

Yes, can be stored in EEPROM.

This should work for storing/retrieving a string containing your password (untested):

uint8_t pwLength = 17; // for 16 characters + null terminator
char password[pwLength];
uint8_t EEPROM_ADDRESS = 0; // from where to store the password in EEPROM.

void storePw() {
  for (uint8_t i = 0; i < pwLength; i++) {
    EEPROM.update(EEPROM_ADDRESS + i, password[i]);
  }
}

void getPw() {
  for (uint8_t i = 0; i < pwLength; i++) {
    password[i] = EEPROM.read(EEPROM_ADDRESS + i);
  }
}

And be aware I used a regular C string, not the Arduino's String class. I wouldn't even know how to implement this using Strings.

thanks bro , can you see this

what do you think ? I will try this when i got home .