Greetings all:
I have a vision for a device that assists rural volunteer fire fighters. When there is a fire call, a series of tones is transmitted on a radio frequency followed by the nature of the call and the address. The firefighters carry pagers tuned to the dispatch frequency. When the pager hears the proper tones, it opens the squelch on the pager so the voice transmission is heard.
I would like to build an arduino device that listens for these tones, then sends 20 seconds of recorded audio out as an email attachment, or perhaps FTPs it to a server, maybe even sends it out the serial port. The goal is for firefighters to be notified via email/MMS message, etc. as a secondary alert system beyond their pagers, as well as to control some cool EL wire visual indicator at the station, though thats just icing on the cake.
I've done a lot of googling and experimenting. I have an audio pre-amp that seems to work, based on the LM386.
I found a frequency counter library for arduino though I haven't tried it yet. This forum won't let me post the link, as this is my first post. Sorry. I reverse engineered the frequency of the tones using Audacity.
The pagers used are the motorola Minitor series, and based on that learned that the tones will always be between 300 Hz and 3000Hz. There are always two tones (A&B). A is 1 second, followed by B for 3 seconds followed by voice audio for 20 or 30 seconds.
What I don't understand at all is how to capture and record audio sampled at say, 4khz. The clips would be about 20 seconds long.
So if this is the proper way to calculate it: 4,000 samples/second * 8-bit ADC resolution * 20 seconds is 640Kbits or 80Kbytes of data.
What are my options? I found a 1Mbit I2C EEPROM from Microchip.com
http://parts.digikey.com/1/parts/535810-ic-eeprom-1mbit-1mhz-8soic-24fc1025-i-sm.html
Is an EEPROM even the proper choice given that they have limited read/write lifetimes?
Is an SD card a better choice?
Is there any way to add external RAM to the Arduino Uno? Not sure of the Atmega328 supports this at all. Maybe I need a Mega?
I wonder how the Minitor pagers accomplish this. They store several previous calls.
Thanks for your patience in advance. I'm a pre-med student, not an EE, though arduino is making me wish I was EE some days!
Also, my big fantasy feature: Does anyone think speech recognition is advanced enough to convert the address given in the audio feed to text?
I'd love to write an iPhone app that would put the address into the map and generate GPS instructions to the call. I don't think this is possible, but I'd love to be proved wrong!