I recently stumbled over a cheap GPRS/GSM shield made for the Arduino platform, of course on ebay, of course from China. As it was priced at a very reasonable 20 EUR (25 USD), I thought I’d go with the risk and order from China. Several weeks later it finally arrived and, I couldn’t believe that at first, worked out of the box.
This is how it looks. If you get interested in one of these gadgets, just search for “GSM Arduino” on ebay, that should do the trick.
It’s a SIM900 based design and has a real time clock (plus buffer battery) on the back. A full description of all the possible AT-commands can be found here. It is basically the same shield that can be bought from Seedstudio, but much cheaper. A description with some sample sourcecode (that is working!) can be found at the Geeetech-Wiki pages.What bothered me first was that in the description they state that the shield may either be used with the hardware serial pins on the Arduino or with pins D7 and D8 only. This is of course, when attached to an Arduino. Well, it turns out that is not entirely true. Take a look at the above picture:
The yellow jumper array is used to set either the hardware serial or D7/D8 configuration. The middle pins are hardwired to the SIM900 UART ports, the left pins are directly connected to the D7/D8 pin and the right pins are connected to the D0/D1 (hardware serial) pins of the connector to the Arduino. This is very well explained in the Wiki (UART Connection).
Well, we would not be tinkerers if we were to accept this without thinking about an alternative. And, as obvious as it may seem, I did some thorough testing to make sure that none of the unassigned pins/connector headers is somewhere connected on the GSM-shield. It turns out they are not, so this is what could be done:
You may connect the middle pins (SIM900 UART) to any of the Arduino Pins by using a female-male breadboarding wire. That way the shield could stay attached to the Arduino but will be using the pins you define. And always remember: the TX line of the shield goes into the RX port of the Arduino (during my testing I once or twice connected TX-TX and RX-RX and asked myself why on earth that would not work with the pins I just selected…).
What am I going to do with that?
My newest project idea is sort of an “intelligent” desk clock. My girlfriend is so stressed out at work recently that she does not allow herself the time to text me via SMS if she’s going to be late, on her way or just “Pissed as hell” (that is actually a quote…).
So the idea is to build her an Arduino based desk clock with some big buttons with symbols on it for “Getting Late”, “On my way”, “Need single malt and chocolate later”. So she just needs to press a button and the desk clock will automatically send me an SMS with the message.
Of course there will be possibility for me to send her an SMS to the desk clock. A button should then start to blink and if she presses it, the message will be displayed.
I’m thinking something very retro and old school (as we both are old school), designed from aluminium, with handles to the left and right. Something like a Viper cockpit from “Battlestar Galactica” (the original series, of course). Currently I’m searching for those big rectangular push-buttons that could be illuminated and labeled. They cost a fortune when bought as new, so this will take some time…
I found an alternative at my local electronics thrift shop (lucky such shops still exist) but they require a lamp with a “T5.5” socket, which is very rare today. These sockets were used in telephones and industrial installations where you needed to replace signal lamps easily. There are some of these lamps around, even with LEDs, but they all are designed for 12V or 24V or even higher voltages, because they are usually found in industrial switchboards. And I am not sure if it would be possible to unsolder the resistor and replace it to make the LED work on 5V.
So for now I am gathering parts, thinking mostly about the design and exterior of the desk clock, as the programming would be straightforward.