SMS Pinging for Physical Objects

mark@argobot.com




Links


SMS/PDU tutorial (http://www.dreamfabric.com/sms/)
PDU Conversion Tool (http://www.nerdlabs.org/tools/pdu.php)
Symbian / Python Developer (http://crschmidt.net/symbian/)
Good SMS Links (http://www.experts-exchange.com/Programming/Wireless_Programming/Top_Solutions_1.html)
PDUSpy (http://www.nobbi.com/pduspy.htm)
Ericsson R320 AT Command reference (http://linuxbrit.co.uk/downloads/R320AT_R1A.pdf)



Examples of Objects

Spectra-txt by Peter Freeman
http://www.peterfreeman.co.uk/midboro.htm

The installation uses a series of text codes to control its lights. By texting 'Chromapop', 'Boro' or several other keywords it triggers the proper lighting sequence.

SMS Chandelier by Ron Arad
http://swarovskisparkles.com/

Just send a text with any content to the defined number and watch the text scroll across the chandelier. At 2 Million this is quite the expensive gimmick.


Hugms & .dot.dot.dot by ME!
http://www.mobjects.net/hugms/

These objects connect via Bluetooth and use AT Commands to trigger SMS events on the handset. A PIC on the device codifies the SMS, only using the handset like a modem.



Models of Interaction









Models of Interaction

As far as I know, J2ME is only able to send SMS and recieve port-specific SMS. Perhaps this only depends on the manufacturer's profile but what this means is that you can't read the users SMS database. What you can still do is create SMS PDUs.

Python development on Series 60 apps became possible just recently, but the Messaging object for Python currently only has one function - SMSSend. What this means is that theres no reading of SMS. Yet. There is a Location object that allows you to read celltower-id info!

Symbian is low-level enough that you can do what you like with the hardware - meaning send/recieve SMS. It's just a pain to program (unless you're a C++ whiz).

There's other ways to interact with SMS for different handsets. Some support AT Commands and others have their own SDKs (Software Development Kits). There's also gaming platforms like BREW and Mophun but I don't recommend trying to develop for those.


The SMS Payload

Note: This stuff can get much much more technical. Check out the 3gpp breakdown of the PDU format here: 3GPP 23.040
How do I decode a septet??? http://www.dreamfabric.com/sms/hello.html


Some AT Commands for SMS

These commands are tested with Ericsson equipment
AT+CNMI=3,1,2,0,0 notifies TE (terminal equip) of SMS
AT+CMGR=5 Read Message#5 from PMS (Preferred Message Storage)
AT+CPMS="ME" Set the PMS to ME (Mobile Equipment)
AT+CMGF=1 Switch to Text Mode
AT+CMGS="3472475997" Start SMS (end with CTRL-Z)