Driving a relay directly with a microcontroller?
No uC (microcontroller) operates from 12V (except for 1 pin per uC for very niche application pins in a very few cases). 

30 mA is more than the rated current from any uC

Drivers are easy and cheap.


1 x ULN2803 or similar
8 lines. $US0.89/1
pricing and datasheet.
uC drives one input per relay. Relays connect output to +12V. No diodes or resistors etc needed. ie 1 IC and nothing else needed.
Note that pin 10 (com) should also connect to V+ (12V here).
Also note other family members (ULN280X).


Hundreds of related web pages




5 x MOSFET. uC drives gate. Source grounded. Drain to rely. Relay to 12V. Reverse diode across relay.
eg ZVN2106 [prices(http://search.digikey.com/us/en/products/ZVN2106A/ZVN2106A-ND/92596) and [datasheet]((http://www.diodes.com/datasheets/ZVN2106A.pdf)
Same with a bipolar transistor but needs a 1K base drive resistor uC to base. Emitter grounded. Collector to relay. etc
eg BC337 prices and datasheet


Circuit below same for FET or bipolar EXCEPT FET does not need base resistor. 





Relay driving basics

Transistor relay driver

And again

MANY ICs made for the job