Send AT commands to Iridium 9600
hello,
i've started arduino programming today. want send @ commands arduino mega iridium 9600 (satellite modem).
if connect iridium directly computer, can send him @ commands via serial port (software hterm) , works! iridium sends emails. wrote programm arduino , connected iridium arduino. i'm sending same commands, modem doesn't send message via.
can me? i'm new arduino, modems, electronic, this.
my programm:
i've started arduino programming today. want send @ commands arduino mega iridium 9600 (satellite modem).
if connect iridium directly computer, can send him @ commands via serial port (software hterm) , works! iridium sends emails. wrote programm arduino , connected iridium arduino. i'm sending same commands, modem doesn't send message via.
can me? i'm new arduino, modems, electronic, this.

my programm:
code: [select]
string inputstring;
void setup() {
serial.begin(9600); // usb
serial1.begin(19200); // iridium 9600
inputstring.reserve(200);
while (!serial) {
; // wait serial port connect. needed native usb
}
while (!serial1) {
serial.println("serial1 not ready!");
}
}
void loop() {
if (serial.available() > 0) {
inputstring = serial.readstring();
inputstring.trim();
serial.println("input: " + inputstring);
serial.println("--- @ commands ---");
serial.print("at+sbdwb=");
serial.println(getlengthofstring(inputstring));
serial1.print("at+sbdwb=");
serial1.println(getlengthofstring(inputstring));
delay(2000);
string data = getdata(inputstring);
data.touppercase();
serial.println(data);
serial1.println(data);
delay(4000);
serial.println("at+sbdix");
serial1.println("at+sbdix");
delay(4000);
serial.println("at+sbdd0");
serial1.println("at+sbdd0");
serial.println("--- end ---");
}
// response of iridium
if (serial1.available() > 0) {
string response = serial1.readstring();
serial.println(response);
}
}
/**
converts ascii hex 2-byte-checksum
*/
string getdata(string ascii) {
int summe = 0;
string hexstring;
for (int = 0; < ascii.length(); i++) {
int decvalue = ascii[i] + 0;
summe += decvalue;
string hexvalue = string(decvalue, hex);
hexstring = hexstring + hexvalue;
}
string sumhexvalue = string(summe, hex);
string checksumhex = gethexofint(summe, 2);
return hexstring + checksumhex;
}
string gethexofint(int num, int precision) {
char tmp[16];
char format[128];
sprintf(format, "0%%.%dx", precision);
sprintf(tmp, format, num);
// serial.print(tmp);
return tmp;
}
/**
it's necessary for
at+sbdwb=<message length>
*/
int getlengthofstring(string s) {
return s.length();
}
i connected arduino rx232 module: http://www.chinalctech.com/index.php?_m=mod_product&_a=view&p_id=808
the iridium satellite modem connected com port.
may me?
my code produces output:

the iridium satellite modem connected com port.
may me?
my code produces output:
Arduino Forum > Using Arduino > Networking, Protocols, and Devices (Moderator: fabioc84) > Send AT commands to Iridium 9600
arduino
Comments
Post a Comment