Hi together,
i got problems with the SIM900 and sending emails.
If i using the example code for AT commands and enter the AT commands into the serialmonitor separately, then it works fine and i send an email.
here is the working code:
#include "SIM900.h"
#include <SoftwareSerial.h>
//#include "inetGSM.h"
//#include "sms.h"
//#include "call.h"
//To change pins for Software Serial, use the two lines in GSM.cpp.
//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.
//Simple sketch to communicate with SIM900 through AT commands.
//InetGSM inet;
//CallGSM call;
//SMSGSM sms;
int numdata;
char inSerial[40];
int i=0;
void setup()
{
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(9600))
Serial.println("\nstatus=READY");
else Serial.println("\nstatus=IDLE");
};
void loop()
{
//Read for new byte on serial hardware,
//and write them on NewSoftSerial.
serialhwread();
//Read for new byte on NewSoftSerial.
serialswread();
};
void serialhwread()
{
i=0;
if (Serial.available() > 0) {
while (Serial.available() > 0) {
inSerial[i]=(Serial.read());
delay(10);
i++;
}
inSerial[i]='\0';
if(!strcmp(inSerial,"/END")) {
Serial.println("_");
inSerial[0]=0x1a;
inSerial[1]='\0';
gsm.SimpleWriteln(inSerial);
}
//Send a saved AT command using serial port.
if(!strcmp(inSerial,"TEST")) {
Serial.println("SIGNAL QUALITY");
gsm.SimpleWriteln("AT+CSQ");
} else {
Serial.println(inSerial);
gsm.SimpleWriteln(inSerial);
}
inSerial[0]='\0';
}
}
void serialswread()
{
gsm.SimpleRead();
}
Then i enter the following AT commands:
AT+SAPBR=3,1,"Contype","GPRS"
AT+SAPBR=3,1,"APN","web.vodafone.de"
AT+SAPBR =1,1
AT+SAPBR=2,1
AT+EMAILCID=1
AT+EMAILTO=30
AT+SMTPSRV="mail.smtp2go.com",2525
AT+SMTPAUTH=1,"user","pass"
AT+SMTPFROM="aaaa@bbbbb.de","Test"
AT+SMTPRCPT=0,0,"xxxxx@yyyy.de","R"
AT+SMTPSUB="MySubject"
AT+SMTPBODY
(enter Ctr + Z)
AT+SMTPSEND
It works perfect. I get responds from the AT commands and finally the email.
How can i translate that into code now?
I connected the components as shown in the screenshot.
As connection to the shield i use softwareserial with PIN 7 and 8.
Could anyone help me to solve the problem?
Arduino GPRS Shield.pdf (838 KB)