SMS receiver

What is it? questionmark

In the remote connection / VPN world, RSA tokens and other two-way authentication methods are used to increase security. Sometimes a sms (text message) is send with an one-time-password. This box is able to receive these smses and display them over a telnet session, making it unnecessary to find that one specific mobile that receives these messages.

Eagle layout questionmark

sim900

The SIM900 shield is represented by the JP2 pin header.
On the SIM900 shield the power jumper is soldered together, so the Arduino Mega pin 9 is able to power cycle the SIM900 board.

Arduino code questionmark

https://github.com/timdows/AMD/tree/master/SMS%20receiver
The source is split into 4 files to improve readability.

arduino_sim900.ino only holds the setup and loop functions.

ESPController.ino in the setup will wait for the ESP8266 to confirm to have an IP. If it takes more than 15 seconds to receive this status, the CH_PD pin will be pulled low for 100ms, forcing a power cycle on the ESP8266 board.
In the loop it will check if the magic string All your sms are belong to us is received (of course taken from Zero Wing), if so it will printout all the smses in memory.

LedController.ino is holding some functions to control the two leds on the front of the box.

SIMController.ino holds up to 5 smses and makes sure the new received smses are placed in the string array.

End result questionmark

Installed everything in the 3d print The two led’s represent the status of the GPRS and WiFi modules

3d print questionmark

Box drawn in tinkercad https://www.tinkercad.com/things/9rYtQ9gANIV-sim900-box

SIM900

TODO questionmark

  1. Print the top part in blue, as it now is grey

Project costs in € or $ questionmark

Object Price
Arduino Mega $ 11.58
SIM900 shield $ 29.96
ESP8266 $ 2.89
LM1117T $ 0.59
2x WS2801 $ 3.34
3d print € 50
SIM card € 10
Other materials $ 2
Total $ 117.36

What could be better questionmark

  1. Add capacitor on the output of the LM1117T
  2. Send the received sms to a central server, to store / view / process them there