You are on page 1of 2

There are at least three ways to send an SMS message using Sony Ericsson phone: 1.

method use AT+CMGS command (send message) like described here: http://www.ardu ino.cc/cgi-bin/yabb2/YaBB.pl?num=1290601471/all In this method it is often neces sary to convert somehow text to PDU format (some very old phones have ordinary te xt mode). You can use online converter if you want to use limited amount of prede termined messages, but if you want to send for example data from a senor - write Arduino code to convert to PDU. 2. method use AT+CMSS command (send message form memory) like implemented here: http://www.riccibitti.com/tinyplanet/tiny_article.htm - very easy and simple way to send predetermined message, can take one line of code in Arduino like: Seria l.println( AT+CMSS=1 ); // send message which is stored in memory under number 1. It doesn t take any resources or specialized programming skills to send message this way. 3. method use AT*EAPP command (sign * , not + ). By this command you can avoid PDU conve rsion entirely and you can send any normal text from Arduino it will pop up in the phone as ready to send SMS message (MMS, e-mail, or note) and next use button p ress emulation to send it it will be automatically converted by the phone to PDU and divided to many messages if the text is very long (if phone supports this). There is a AT*EAPP certain command to send a message to the predefined phone boo k entry but this command doesn t seem to work in reality, neither on K700i, nor on W810i, K510i (last two phones doesn t work directly with Arduino s serial) so key p ress emulation is the solution to make it finally sent. This way it takes two li nes of code like that: Serial.println( AT*EAPP=0,0,\ text message\ ); // make appear re ady-to-send message in the phone. Serial.println(AT+CKPD= \ :J:J^:J:J:J\ ,2,2 ); //this emulates joystick s action (2 times joystick press, one up, and 3 times press again) of going to the first phonebook entry and send (can be different sequence on different phones). Note: Before you use "^" or "[" keys for joystick emulation you have to change t o different character set by using simple command AT+CSCS. Also there is a possi bility that in the meantime the phone receives a message or do some other action and in this case if you want to sent message this way you will not start from t he main menu therefore it is good idea to initiate this entire procedure by emul ating long press <- key which will bring phone back to main menu form any possible submenu. This is only appropriate to the method when phone s interface is used (l ike key press emulation) any other AT command can be send anytime, no matter what the interface is doing. Please refer to SE Developers guidelines on how specifically to use AT commands. If you send AT commands by serial (Pin0 and Pin1) Arduino must be disconnected f rom the computer cable otherwise it will interfere. You can use NewSoftSerial li brary to emulate additional serial connection on any Arduino pins, but I have fo und, that when I use last versions of NewSoftSerial (v.1.0 and v.1.1) I can read short responses from the phone but if I need to read stored SMS message I can o nly get 63 bytes - while the message in reality is much longer. There is no prob lem to read it if in place of NewSoftSerial I use native Serial. For now I don t k now what causes that any idea? There is one more interesting capability of SE mobile phones Sony Ericsson has Bl uetooth remote control application (ready available in late phones like k700) and application to download and run on computer so the phone can control computer b y Bluetooth. I haven t try this but most probably it should also work with AT comm ands (key press emulation).

It would be nice if somebody could write library for Arduino to communicate with newer phones or Java application for microcontroller communication on any javacapable phone many new phones have GPS and other interesting functions

You might also like