loading

Personal Locator Beacon

Hi all

I've recently learned about PLBs and EPIRB, which basically send distress signals with position information from the device built-in GPS. They can be relatively expensive, so I'm wondering if anyone has made any work towards a home-brew device?

Legal Disclaimer: haha, homebrew is a poor term. These devices need to be registered etc., so it's not recommended ( and actually unsafe) to build your own device. What I'm looking for is education on how these things work and general pointers on how to approach the designing  of such a  device.

caitlinsdad4 years ago
They have GPS modules for the arduino. It is easier to buy a GPS or get an iphone.
Arellano (author)  caitlinsdad4 years ago
Yeah, I can interface an arduino with a gps module no sweat. It's the transmitting part that I havent got down just yet. In my mind, once the micro has adquired the data it should be simple to use a transmitter (GSM or whatever) to send it wherever's needed. Perhaps I'm wrong?
You can use a GSM/GPRS shield for Arduino. it is fairly simple to send data collected from the GPS module to *somewhere* using SMS or GPRS. SMS would be easier and due to the nature of SMS probably a bit more failsafe, but less cost-effective.
GPRS is slightly more complicated (not that much) but usually a little more cost-effective.

You can simply use AT commands to get the GSM/GPRS shield to do what you want to do. I use the GPRS shield from Seeedstudio myself and it is really easy to send an SMS:

(mySerial refers to the softserial used to connect to the GPRS shield)

// Set SMS to text mode so you can send plain text
mySerial.print("AT+CMGF=1\r");
delay(100);

// Start defining the SMS message. XXXX is the destination number
mySerial.println("AT + CMGS = \"XXXX\"");
delay(100);

// Enter the message contents. SMS_TEXT is an earlier defined variable
// containing the actual message text.
mySerial.println(SMS_TEXT);
delay(100);

// To end the message input and send the message you need to send 'ctrl-z',
// as you don't have a keyboard like on a serial terminal, you can do a println
// with (char)26)
mySerial.println((char)26);

Before all this you may need to set the SMSC number, this is done by the operator on most SIMS, but in some cases (like mine, where I have my own GSM network to play with) you need to do that yourself with the AT+CSCA command.

Using GPRS is a bit harder to describe as a lot of parameters are operator-specific. But I guess for a simple HTTP Get over GPRS it will come down to using something like:

AT+CGATT? // to start GPRS attachment
AT+SAPBR // with any parameters you need to set for your operator
AT+HTTPINIT // to initiate the HTTP request
AT+HTTPPARA // with parameters for the URL/message you want to send (to)
AT+HTTPACTION=0 // to execute the HTTP request
delay(10000) // Important! there must be enough time to receive response
AT+HTTPREAD // read response (do whatever you want with it)
AT+HTTPTERM // end the http request


it is that simple :)
Once you have the GPS coordinates, I guess you have to find out how digital data is transmitted, look up the XBee modules for arduino, they do wi-fi and bluetooth is also available but essentialy how to pump that signal on the air. It can be text based or encoded in some reconizable way - morse code. Audio out on AM. I guess the other half is radio design with a directional or omnidirectional antenna on the right frequency that rescuers monitor.