Hi all!
I'm trying to get my SE T610 works with arduino to be able to send SMS. After check that sms plain text mode is supported
AT+CMGF=?
0,1
AT+CMGF=1
OK
I'm trying this code:
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
String send_command(String at_cmd, int dly){
String msg;
int incomingByte;
Serial.println(at_cmd);
delay(dly);
while (Serial.available() > 0)
{
incomingByte = (Serial.read());
msg = msg + char(incomingByte);
}
delay(1000);
return msg;
}
void setup() {
lcd.begin(16, 4);
Serial.begin(9600);
String ret;
ret = send_command("AT+CMGF=1",3000);
lcd.clear();
lcd.println(ret);
delay(3000);
Serial.print("AT+CMGS="XXXXXXXXXX"\r");
Serial.print("Hello");
Serial.print(0X1A);
lcd.clear();
lcd.println(ret);
delay(3000);
}
void loop() {
}
And geta bad "ERROR"... :0 I've looked to Home - TimZaman.com to try with PDU mode instead bu without any success too...
Someone have any idea about my problem? or get T610 working? I've tried international phone number like +33XXXXXXX but no more results..
Thanks,
Alex.
#include <SoftwareSerial.h>// serial speed to use with phone
SoftwareSerial m32_serial(2, 3); // Order is input pin, output pin
#define PHONE_SERIAL_BUAD 9600
// Puts teh phone into SMS texting mode ( as opposed to MMS, etc.)
#define PHONE_SET_SMS_TXT_MODE_COMMAND "AT+CMGF=1"
// Command used to send a message
#define PHONE_SEND_MSG "AT+CMGS="
// Command to dial a call
#define PHONE_DIAL_CALL "ATD"
#define PHONE_END_CALL "ATH"
#define BUFFSIZ 90 // plenty big
#define ARDUINORX 2
#define ARDUINOTX 3
char buffer[BUFFSIZ];
char buffidx;
//***
char r=13; //return character
String cellContent=""; //string we're sending
String ctlZ="\x1A"; //the code for Ctrl-Z
String content="SMS messaage"; //The text I'm sending
//***
void setup()
{
Serial.begin(9600);
Serial.println("Hello PC");
// set the data rate for the modem port
m32_serial.begin(PHONE_SERIAL_BUAD);
delay(1000);
m32_serial.println("AT");wait4OK();
delay(600);
m32_serial.println("AT");wait4OK();
ATTest();
}
void loop() // run over and over again
{
cellContent+=content;
cellContent+=ctlZ;
m32_serial.print("AT+CMGF=1");
delay(600);
m32_serial.print(r);
delay(600);
m32_serial.print("AT+CMGS=\"xxxxxxxxx\""); // number
delay(600);
m32_serial.print(r);
delay(600);
m32_serial.print("paulos"); //(cellContent);
delay(600);
m32_serial.print(ctlZ);
delay(600);
m32_serial.print(r);
delay(500);
}
void ATTest(){
Serial.println("Arduino: Test modem Communication..wait..(if >5sec..fail..)");
m32_serial.println("AT");
if (wait4OK()==1) {
Serial.println("Arduino: OK");
}
else{
Serial.println("Arduino: Fail!, please check connection! ");
Serial.print("Connect pin"); Serial.print(ARDUINOTX); Serial.print("to GSM RX, ");Serial.print(ARDUINORX); Serial.print(" to GSM TX");
ATTest();
}
}
int wait4OK() {
int returnVal=0;
GSMreadline();
Serial.print("GSM: ");
Serial.println(buffer);
if (strncmp(buffer, "OK",2) == 0) {
returnVal=1;
} else {
returnVal=-1;
ATTest();
}
return returnVal;
}
void GSMreadline(void) {
char c;
buffidx = 0; // start at begninning
int crCount=0;
while (1) {
c=m32_serial.read();
if (c == -1){
delay(500);
continue;
}
if (c == '\n')
continue;
if((int) c == 13){
crCount++;
if (crCount==1 || crCount==2)
continue;
if (crCount==3){
buffer[buffidx] = 0;
return;
}
}
if (buffidx == BUFFSIZ-1){
buffer[buffidx] = 0;
return;
}
if (crCount==2){
buffer[buffidx++]= c;
}
// buffer[buffidx++]= c; //org
}
Serial.println("END WAIT");
}