Introduction: Personal GSM Alarm System - SMS Module SIM900A, Arduino

About: I like to combine electronics like Arduino's, ESP8266 etc with 3D designing and 3D printing.

A few times a month I bring my old aunt to the local church. Sometimes the church service takes much longer and the end time is hard to predict. So after a few half an hours waiting, I thought it would be better if she could warn me the service had ended. However, she is 88 years old and can not handle a regular smart phone anymore.

I got the idea to make a device so she can alarm me to pick her up, that way this quick project was born.

The module has only one switch, if you switch it on, it connects to the GSM network, gets the time from the network and sends a SMS: "your aunt wants to be picked up" together with the measured battery voltage and the time the SMS was send.

She can also use this as a personal alarm system to warn me wherever she is. It can not be used as a 'woman-down' system.

In this project I learned some more about the SIM900A module and the AT commands.


The device is made from:

Step 1: Flash the Sim900A

The stock sim900A does not work in my country (The Netherlands). However, after flashing it with the 1137B09SIM900B32_ST.cla firmware it works fine (you can even use a mobile data connection (GPRS).

The firmware is found on this website.

The flash tool can be found here or here.

Flash via a FTDI adapter, see this video.

The GSM module needs the 'AT+CLTS=1' command one time so it can request the current time from the GSM-network when connecting to it.

Step 2: Hardware Setup

For this quick project I just soldered all components together and stacked it all up.

See the scheme for the connections

The enclosure was designed in Fusion360, thanks to this video of the 'guy with the Swiss accent'.

The STL-files are published on Thingiverse.

Step 3: Software Setup

The code is published on my Github. Many AT commands can be found here.

The program:

  • Does an init of the GSM module
  • Ensures a connection to the GSM network
  • Gets the time from the GSM network ads the timestamp in the SMS message
  • Ensures the SMS was send (if the sending was not succesful, another attempt is made after 60 sec)
  • Sets the GSM module to sleep to save battery power in the time before the module is switched of by me