Cosa serve
Per questo progetto bastano pochi componenti economici: un Raspberry Pi con Raspberry Pi OS già installato, un modulo relè a 1 canale con interfaccia a 3,3V/5V (molto diffusi e già dotati di circuito di isolamento), un pulsante e qualche cavetto jumper femmina-femmina. Il modulo relè permette di comandare con il Raspberry Pi carichi che lavorano a tensioni e correnti che la scheda da sola non potrebbe gestire, come una lampada a 230V collegata tramite i contatti del relè (attenzione: qualsiasi collegamento a rete elettrica va eseguito da personale competente).
Il collegamento
Il modulo relè si collega tipicamente a tre pin: alimentazione (5V), massa (GND) e un pin di segnale, ad esempio GPIO 17. Il pulsante si collega invece tra un altro pin GPIO, ad esempio GPIO 27, e la massa, sfruttando la resistenza di pull-up interna del Raspberry. Prima di collegare qualsiasi cavo è buona norma spegnere la scheda.
Il codice
Con la libreria gpiozero il codice risulta estremamente compatto: si importano le classi Button e OutputDevice, si creano i due oggetti passando i rispettivi numeri di pin BCM, e si collega la pressione del pulsante all'accensione del relè tramite when_pressed e il suo rilascio allo spegnimento tramite when_released. In alternativa, per un comportamento a "toggle" (un tocco accende, un altro spegne), si può alternare lo stato del relè con il metodo toggle() ad ogni pressione, mantenendo il programma in esecuzione con un semplice pause() finale che tiene vivo lo script in attesa degli eventi.
Andare oltre
Da questa base è semplice espandere il progetto: sostituire il pulsante fisico con un comando ricevuto via rete (ad esempio interrogando periodicamente un piccolo server Flask), aggiungere un sensore di temperatura per accendere il relè automaticamente al superamento di una soglia, oppure registrare ogni attivazione su un file di log per tenere traccia dell'utilizzo nel tempo. Il principio resta lo stesso: leggere un ingresso, decidere una logica, pilotare un'uscita.