(1) How to use Rpi to control a relay to switch on/off a LED?
(2) How to wire the NC and COM terminals of the relay?
Let us use the following example and look closely at the very right side of the schematic, the relay switch with the COM, NO, and NC terminals:
Part A - How to wire the COM and NO terminals
(1) COM (Common) - The COM terminal connects to the power source, eg +5V, +6V, +9V, +12V of a battery.
(2) NO - (Normally Open) - The NO terminal connects to the load, ie the LED, with a series protecting resistor, usually 4k7 to 1k2.
(3) Grd - (Ground) The ground terminal connects to the other end of the load.
(4) NC (Normally Open) - The NC terminal is not used, ie, left open or disconnected.
Part B - How to protect the LED using a series resistor to limit LED current
(1) It is important to connect a protective resistor in series with the LED, otherwise too much current would flow through the LED and fry it.
(2) Usually an ordinary LED needs 5mA ~ 20mA to turn on. The value of the protective series resistor can be calculated as below:
(a) Vcc = Voltage to power the LED, supposing 9V,
(b) V = voltage across the LED, supposing 0.4V,
(a) Ir = current flowing through the resistor and LED, supposing 10mA,
(c) Vr = voltage across the protective resistor, = 9V - 0.4V = 8.6V,
(d) R = value of resistor = Vr / Ir (Ohm's Law) = 8.6V / 10mA ~= 860Ω
So you need a 860Ω resistor to protect the LED. Usually you don't need to be that precise, because all values of components and power etc are only rough numbers, so a resistor of 512Ω to 1kΩ should be good enough.
Part C - How to troubleshoot the relay module
(a) Using a jumper wire connecting Ground and 3V3 as input signal to relay module
You don't need to use any python program to test your relay. You only need a jumper wire and test by hand to make sure if the relay is basically working. The procedure is summaized below.
(i) Connect one end of jumper to IN terminal of relay module.
(ii) Hold the other end of the jumper wire by hand, and touch/connect it to Rpi ground. Now you are inputting a Ground (0V, Logically Low level) signal to the relay module. If you hear a click sound, then you now know that a Low signal can trigger/turn on the relay switch. If you don't hear any click sound, then it might mean that your relay module is High level (3v3) triggered, and you can try step (iii) below to continue the test.
(iii) Now repeat (ii) above, but this connect jumper end to Rpi 3V3, and see if you hear the click sound. If yes, then it means your relay is High level triggered.
(iv) You can repeatedly touch the jumper to Ground and 3V3 to make sure if it is High or Low signal that triggers the relay.
(1) In (ii) or (iii) step above, if you hear a click sound that means the relay switch is turned on, and you now remove the jumper wire from Ground or Vcc, you should hear another click sound, which means the relay's triggerable signal is removed, and the relay switch is turned off. Again you can repeatedly connect and remove the trigger signal to hear relay repeatedly clicking, meaning it is repeatedly switch on and off.
Part D - How to connect an external power source to COM
(b) Using a Rpi Thonny python and GPIO pin as input signal to relay module
/ to continue, ...
(1) Amazon Relay Modules
(2) AliExpress Relay Modules
(3) Relay - Wikipedia
(4) Electrical Relay - Electronics Tutorials
(5) Electromechanical Relays - All About Circuits