want to Merge this codes to send sms to my mobile have a RFID TAG Number
First Code for Sending msg to mobile
int8_t answer;
int onModulePin= 13;
char aux_string[30];
char phone_number[]="000000652";
void setup(){
pinMode(onModulePin, OUTPUT);
Serial.begin(115200);
Serial.println("Starting...");
power_on();
delay(3000);
// sets the PIN code
sendATcommand("AT+CPIN=****", "OK", 2000);
delay(3000);
Serial.println("Connecting to the network...");
while( (sendATcommand("AT+CREG?", "+CREG: 0,1", 500) ||
sendATcommand("AT+CREG?", "+CREG: 0,5", 500)) == 0 );
Serial.print("Setting SMS mode...");
sendATcommand("AT+CMGF=1", "OK", 1000); // sets the SMS mode to text
Serial.println("Sending SMS");
sprintf(aux_string,"AT+CMGS=\"%s\"", phone_number);
answer = sendATcommand(aux_string, ">", 2000); // send the SMS number
if (answer == 1)
{
Serial.println("Test-Arduino-Hello World");
Serial.write(0x1A);
answer = sendATcommand("", "OK", 20000);
if (answer == 1)
{
Serial.print("Sent ");
}
else
{
Serial.print("error ");
}
}
else
{
Serial.print("error ");
Serial.println(answer, DEC);
}
}
void loop(){
}
void power_on(){
uint8_t answer=0;
// checks if the module is started
answer = sendATcommand("AT", "OK", 2000);
if (answer == 0)
{
// power on pulse
digitalWrite(onModulePin,HIGH);
delay(3000);
digitalWrite(onModulePin,LOW);
// waits for an answer from the module
while(answer == 0){ // Send AT every two seconds and wait for the answer
answer = sendATcommand("AT", "OK", 2000);
}
}
}
int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout){
uint8_t x=0, answer=0;
char response[100];
unsigned long previous;
memset(response, '\0', 100); // Initialice the string
delay(100);
while( Serial.available() > 0) Serial.read(); // Clean the input buffer
Serial.println(ATcommand); // Send the AT command
x = 0;
previous = millis();
// this loop waits for the answer
do{
// if there are data in the UART input buffer, reads it and checks for the asnwer
if(Serial.available() != 0){
response[x] = Serial.read();
x++;
// check if the desired answer is in the response of the module
if (strstr(response, expected_answer) != NULL)
{
answer = 1;
}
}
// Waits for the asnwer with time out
}while((answer == 0) && ((millis() - previous) < timeout));
return answer;
}
Second code for Reading RFID Tag
#include<SoftwareSerial.h>
#define RFIDEnablePin 2
#define RFIDSerialRate 2400
#define RxPin 5
#define TxPin 4
SoftwareSerial RFIDReader(RxPin , TxPin);
String RFIDTAG="";
String DispalyTAG="";
void setup() {
RFIDReader.begin(RFIDSerialRate);
pinMode(RFIDEnablePin,OUTPUT);
digitalWrite(RFIDEnablePin,LOW);
Serial.begin(9600);
Serial.println("Please Scan Card");
}
void loop() {
// put your main code here, to run repeatedly:
if(RFIDReader.available() > 0)
{
ReadSerial(RFIDTAG);
}
if(DispalyTAG!=RFIDTAG)
{
DispalyTAG=RFIDTAG;
Serial.println(RFIDTAG);
}
}
void ReadSerial(String &ReadTagString)
{
int bytesread=0;
int val=0;
char code[10];
String TagCode="";
if (RFIDReader.available()>0)
{
if((val = RFIDReader.read()) == 10)
{
bytesread=0;
while(bytesread<10)
{
if( RFIDReader.available() > 0)
{
val = RFIDReader.read();
if((val == 10)||(val == 13)){
break;
}
code[bytesread]=val;
bytesread++;
}
}
if(bytesread==10){
for(int x=0; x<10; x++)
{
TagCode+=code[x];
}
ReadTagString = TagCode;
while(RFIDReader.available() > 0)
{
RFIDReader.read();
}
}
bytesread=0;
TagCode="";
}
}
}