I want to make two or more boards to blink an LED at the same time (within 1 ms difference) The boards cannot be connected with wires to each other and will be located in different rooms. How can I do this? What components do I need?
Have both sync to a master clock using GSM shields. These shields are getting very cheap (as low as $14 on ebay).
The shields receive the time wirelessly from the cellular network and this time base is extremely accurate. Here is some example code to read the current time from the shield...
Note that you will need a SIM card to get the time, but you should not need an active cellular account.
You can also use real time clock (RTC) modules to syncronize arduinos. These are cheaper than other solutions like GPS or WiFi.
You could certainly do it with multiple Arduinos, each with a WiFi shield, but that would cost a lot of money.
Instead I would suggest building a low power radio transmitter that sends simple morse code clicks, and then building amplifier boards that use the clicks to trigger LED blinks. You'd need to use a frequency that is open for low power use in your country, like the range for garage door openers.
I've seen circuits in old electronics kits for building morse code transmitters, but they might not meet current FCC regulations.