This should have been a comment, but I fear it's too big for comment field.
A major part of the design can be the speaker, so you should pay considerable attention to that.
There are several options you could use and the best depends on the type of sound you want to achieve.
I'll first talk about the easiest option to set up. That would be a self-oscillating buzzer. In this question I got some nice answers on how to connect one to an AVR microcontroller (of same family as ones used in Arduino). The downside of this is that the buzzer produces only one frequency and all you can do is turn it on or off. On the other hand for a simple alarm, it should probably be good enough. The plus side is alto that you can only turn it on or off. This makes it very easy to program the microcontroller. The buzzer shouldn't be too expensive. The price will of course depend on the size and power, but for this type of application, 2€ or 3€ would be more than enough for the speaker and the transistor needed to drive it.
The second option is to use a piezoelectric sound source. The downside of them is that you must create your own driving circuit for the speaker. You could make an oscillator or you could use the Arduino to create square waves and then using a transistor and a resistor drive the sound source. I don't know how much this would cost.
Another option is to use a real speaker. The easiest way to do this is to get a cheap amplifier chip and connect it to the speaker. You'd also need electronics for the amplifier (but that could be just a couple capacitors for some amplifiers). Another problem is that you'd need to use the Arduino to generate audio signal which will drive the amplifier, making the programming a bit more complicated. A positive side is that you can (with right amplifier choice) easily control volume. expect high price. The speaker could easily cost couple of Euros and so could the amplifier.
Paraphrased from my comments above
Depending on the flexibility available in designing the sensor modules, a common signaling / sensor approach traditionally used with long cables in industrial applications is the 4-20 mA (or 10-50 mA for longer throws or EMI-intensive environments) current loop signaling standard.
- The cable and sensor module make up a current loop, module regulating current through it
- A current of 4 mA indicates analog minimum, or digital LOW
- 20 mA indicates analog full-scale or digital HIGH
- Open circuit = 0 mA = sensor offline alarm
- Short circuit = Current limit = sensor shorted alarm
Industrial sensor modules are often designed to be powered by the same current loop, thus eliminating the need for local power supplies. This is feasible, of course, only if the sensor module does not require greater than 4 mA drive current.
Various options exist for signaling current regulation, such as using BJTs, MOSFETs or complementary TrenchFET parts.
At the data collection end, voltage generated across a shunt resistor is amplified using an op-amp, for analog sensors. Digital signals can be captured using a suitably trimmed comparator circuit designed with some hysteresis.
Depending on any lightning or other high voltage risks perceived along the transmission cables, isolation amplifiers may be recommended instead of conventional op-amps for amplifying the shunt voltage. This ensures that the data collation devices are protected from potential differences that may creep in through induction, ground potential differences, or other causes.
For example, TI's AMC1100 Fully-Differential Isolation Amplifier is designed specifically for current-shunt sensing with HV isolation.
An added advantage of using a current loop signaling approach is that security breaches to the home security system implied in the question, can be detected if any sensor is either shorted out, or disconnected.
Best Answer
The easiest solution would most likely involve an I2C connection between the two boards. I'm not familiar with the EtherMega, but I know the STM32F4-Discovery has several I2C pins available. You could then let the Arduino handle the network protocol, and only shift the relevant information over to the STM. Whether or not this will be fast enough for your purpose, I cannot say.
The only thing you need in terms of extra components is a way of level-shifting the (presumably) 5V of the Arduino to the 3.3V of the STM32F4-Discovery. For I2C a simple solution is to use an n-channel mosfet with two pull-up resistors per line (SDA, SCL - so 2 mosfets and 4 resistors in total). Philips/NXP has a very nice application note on this, specifically for I2C, available here:
http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf