How to generate an interrupt on a MCU when a specific frequency sound is made
To summarize, you want to detect the presence of a 18.5 kHz signal within a few 100 ms.

Yes, you can do this with a resonant filter, amplitude detector, and comparator.  However, my first reaction is to do this digitally with a small microcontroller or DSP.  One of the small Microchip dsPIC series should be suitable.

Advantages of doing this digitally are much better accuracy, drift, temperature variation, and response time.  You can also tightly fit the passband width to reject as much noise as possible while having the minimum response time you need.  This is much more difficult to tweak in analog, and will be quite dependent on part variations.  The processor probably takes less space, and by the time you pay for precision analog parts, it's probably cheaper too.

To detect a single known frequency digitally:

Sample the input signal.  The theoretical bare minimum sample rate is twice the frequency of interest, but in reality you need more than that.  Basically, sample as fast as the processor and A/D can take and process the samples.

I'd start with maybe 250 kHz.  That gives you 13.5 samples per cycle, which is plenty.  For a 70 MIPs EP series dsPIC, that gives you 280 instruction cycles per sample, which is also plenty.  Many of these parts have 12 bit A/Ds that can easily run at this rate.

There is some advantage to having a integer number of samples per cycle that is divisible by 4 (see next point), so I'd pick 12x or 16x.  16x your 18.5 kHz target frequency is 296 kHz.  That gives you 236 instruction cycles per sample, which is significantly more than it should take.

Generate the sine and cosine of the 18.5 kHz target frequency for each input sample.  This is where sampling at a integer multiple of the target frequency simplifies things a little.  In that case, you can use a table of pre-computed values.  The number of table entries is the number of samples per cycle.  You use the same table for since and cosine, with the indexes offset by 1/4 table.  That's where the 4x multiple of the sample rate came from.

Each sample, compute the sample times the sine and times the cosine.

Low pass filter the two products.  The passband of your overall filter will be twice the rolloff frequency of this filter.  For example, if you low pass filter the two products to 100 Hz, then you will ultimately be detecting 18.5 kHz &plusmn;100 Hz.

This filter also becomes the noise immunity versus response time tradeoff.  The narrower the passband around your target frequency, the more noise will be eliminated, but the longer the detection will take to settle.  I'd start with two simple poles at 100 Hz each.

Square the two filtered results and add them.

Compare that result to a pre-determined threshold.  This result is the digital 18.5 kHz is present signal.  A little hysteresis might be useful here, depending on details you haven't told us.



See this answer that goes into more detail on this technique, including examples of detecting a DTMF tone.