Configurare l'automazione domestica Raspberry Pi

Set Up Raspberry Pi Home Automation



Una delle cose più importanti per l'automazione domestica è il controllo della CA ad alta tensione utilizzando una CC a bassa tensione. Per controllare l'alta tensione AC da Raspberry Pi, avrai bisogno di un interruttore a relè da 5V. Puoi controllare l'interruttore del relè utilizzando i pin GPIO di Raspberry Pi. L'interruttore del relè può quindi controllare gli elettrodomestici CA tramite Raspberry Pi.

Questo articolo ti mostrerà come utilizzare Raspberry Pi e l'interruttore relè 5V per accendere e spegnere una lampadina dal tuo dispositivo mobile. L'articolo include un'app Web a cui è possibile accedere da qualsiasi dispositivo sulla rete e controllare in modalità wireless qualsiasi elettrodomestico AC in casa. Quindi, iniziamo con il nostro semplice esperimento di automazione domestica Raspberry Pi.







Cose di cui avrai bisogno

Se desideri utilizzare il tuo Raspberry Pi headless (tramite SSH o VNC), avrai bisogno delle seguenti cose:



1) Raspberry Pi 3 o Raspberry Pi 4.
2) Interruttore relè 5V.
3) Cavi elettrici.
4) 3 fili di collegamento femmina-femmina.
5) Lampadina AC.
6) Portalampada AC.
7) Spina CA.
8) Strumento tagliafili e spelafili.
9) Cacciavite CR-V3.
10) Adattatore di alimentazione Micro-USB (Raspberry Pi 3) o USB Type-C (Raspberry Pi 4)
11) Scheda microSD da 16 GB o 32 GB con sistema operativo Raspberry Pi lampeggiante.
12) Connettività di rete su Raspberry Pi.
13) Computer portatile o desktop per accesso desktop remoto VNC o accesso SSH a Raspberry Pi.



Se non desideri accedere a Raspberry Pi in remoto tramite SSH o VNC, avrai anche bisogno di quanto segue:





14) Un monitor.
15) Cavo HDMI o micro-HDMI.
16) Una tastiera.
17) Un topo.

Se hai bisogno di assistenza per il flashing dell'immagine del sistema operativo Raspberry Pi sulla scheda microSD, consulta l'articolo Come installare e utilizzare Raspberry Pi Imager.



Se sei un principiante di Raspberry Pi e hai bisogno di assistenza per l'installazione del sistema operativo Raspberry Pi su Raspberry Pi, dai un'occhiata all'articolo Come installare il sistema operativo Raspberry Pi su Raspberry Pi 4.

Inoltre, se hai bisogno di assistenza con la configurazione headless di Raspberry Pi, consulta l'articolo Come installare e configurare il sistema operativo Raspberry Pi su Raspberry Pi 4 senza monitor esterno.

Di seguito sono riportate le immagini di tutti gli strumenti necessari.

Accensione di Raspberry Pi

Quindi, collega il cavo di alimentazione a Raspberry Pi e accendi Raspberry Pi.

Una volta acceso Raspberry Pi, puoi connetterti a Raspberry Pi tramite VNC o SSH. Oppure puoi collegare una tastiera, un mouse e un monitor a Raspberry Pi per accedervi direttamente.

Piedinatura relè 5V

Un relè è fondamentalmente un interruttore. Ma, a differenza di un interruttore tradizionale, un relè può essere controllato da una piccola quantità di tensione CC.

Il relè 5V è molto facile da usare. Ha due lati: un lato viene utilizzato per controllare il relè tramite DC a bassa tensione (dal Raspberry Pi) e l'altro lato viene utilizzato per controllare l'AC ad alta tensione (cioè la lampadina), a seconda dello stato del relè .


Da un lato, il relè ha due LED (uno rosso e uno verde) e tre pin ( IN, GND, e VCC ). Questi tre pin sono usati per controllare il relè dal Raspberry Pi.

I primi due pin sull'altro lato vengono utilizzati per controllare l'elettrodomestico CA.

Collegamento del relè 5V al Raspberry Pi

Per collegare il relè 5V al Raspberry Pi, avrai bisogno di tre cavi di collegamento femmina-femmina.

Collegare un lato dei cavi di collegamento al IN (filo giallo), GND (filo nero), e VCC (filo rosso) nel relè 5V, come mostrato di seguito.


L'altro lato dei fili va nei pin dell'intestazione GPIO di Raspberry Pi, come mostrato nell'immagine qui sotto.

Il filo rosso dovrebbe andare nel PIN 2 (VCC) di Lampone Pi.
Il filo nero dovrebbe andare nel PIN 6 (GND) di Lampone Pi.
Il filo giallo dovrebbe andare nel PIN 7 (GPIO 4) di Lampone Pi.


Una volta che il relè 5V è collegato a Raspberry Pi, dovrebbe apparire come mostrato nell'immagine qui sotto.

Consentire l'accesso GPIO all'utente di accesso

Per consentire l'accesso ai pin GPIO, l'utente di accesso predefinito del sistema operativo Raspberry Pi pi dovrebbe essere aggiunto al gpio gruppo.

Puoi aggiungere il pi utente al gpio gruppo con il seguente comando:

$sudousermod-aGgpio $(chi sono)


Affinché le modifiche abbiano effetto, riavvia Raspberry Pi con il seguente comando:

$sudoriavviare

Creazione di una directory di progetto

È anche una buona idea mantenere organizzati tutti i file del progetto.

Per mantenere organizzati i file del progetto, crea la directory del progetto ~/www e le sottodirectory richieste con il seguente comando:

$mkdir -pv~/www/{modelli, statici}


Una volta creata la directory del progetto, accedere alla directory del progetto come segue:

$cd~/www

Commutazione del relè 5V da Raspberry Pi

Ora che hai collegato il relè 5V al Raspberry Pi, cambierai il relè dal Raspberry Pi usando il linguaggio di programmazione Python.

NOTA: Commutazione è un termine usato in elettronica. Commutare significa controllare (cioè accendere/spegnere) un determinato dispositivo elettronico.

Per sperimentare la commutazione del relè utilizzando il linguaggio di programmazione Python, creare il nuovo script Python test.py nella directory del progetto come segue:

$nanotest.py


Digita le seguenti righe di codice nello script Python test.py.

a partire dalgpiozeroimportareGUIDATO
a partire dal tempo importaredormire

mentre Vero:
relè=GUIDATO(4)
Stampa('Relè: attivato')
dormire(5)

relè.chiudere()
Stampa('Relè: spento')
dormire(5)

Una volta terminato, premere + X seguito da E e per salvare il test.py Script Python.


Qui, la riga 1 importa GUIDATO dal gpiozero libreria e la riga 2 importa dormire funzione da tempo biblioteca.


Le righe 6-14 sono all'interno di un ciclo infinito.


La riga 6 inizializza un LED nel GPIO 4 di Raspberry Pi, che è collegato al IN pin del relè.


La linea 8 accende il relè usando il Su() metodo.

La riga 9 stampa un messaggio nella console utilizzando il tasto Stampa() funzione.

La riga 10 ritarda l'esecuzione della riga di codice successiva di cinque secondi utilizzando il tasto dormire() funzione.


La linea 12 disattiva il relè utilizzando il chiudere() metodo.

Allo stesso modo, la riga 9 stampa un messaggio sulla console utilizzando il tasto Stampa() funzione e la riga 10 ritarda l'esecuzione della riga di codice successiva per 5 secondi utilizzando il tasto dormire() funzione.


Quindi, esegui test.py Script Python come segue:

$python3 test.py


Il test.py Lo script Python dovrebbe iniziare a commutare il relè 5V. Dovresti sentire un clic ogni cinque secondi. Quando il relè cambia stato (da acceso a spento o da spento a acceso), emette un rumore di clic. Ciò significa che il relè funziona correttamente.


Quando il relè è spento (funzionamento normale – il carico CA è scollegato), solo il netto Il LED dovrebbe accendersi, come puoi vedere nell'immagine qui sotto.


Quando il relè è in stato on (carico CA collegato), sia il verde LED e il netto Il LED dovrebbe accendersi, come puoi vedere nell'immagine qui sotto.


Una volta completato il test, premere + C terminare il test.py sceneggiatura.

Collegamento della lampadina CA al relè 5V

Il relè 5V dovrebbe ora funzionare correttamente. Ora collegherai il tuo elettrodomestico CA (una lampadina, in questo caso) al relè 5V.

Per prima cosa, taglia il filo elettrico nero collegato alla lampadina con un tronchese.


Una volta che il filo elettrico nero collegato alla lampadina è stato tagliato con un tagliafili, dovrebbe apparire come mostrato nell'immagine qui sotto.


Quindi, rimuovere lo strato esterno per esporre circa ½ pollice del cavo elettrico, come mostrato nell'immagine qui sotto.


Quindi, piega i fili esposti, come mostrato nell'immagine qui sotto.


Allentare le viti contrassegnate del relè con un cacciavite CV-3.


Inserisci i fili scoperti che hai spelato e piegato in precedenza nei due terminali a vite e stringi le viti con un cacciavite CV-3.

Verifica della commutazione del relè dopo aver collegato il carico CA

Una volta che il carico CA è collegato al relè 5V, collegare la spina della lampadina alla presa a muro.


Corri il test.py Script Python dalla directory del progetto come segue:

$python3 test.py


Il test.py Lo script Python dovrebbe iniziare a commutare il relè 5V, che, a sua volta, commuterà la lampadina CA ad alta tensione a intervalli di cinque secondi. La lampadina AC dovrebbe rimanere accesa per cinque secondi, quindi rimanere spenta per cinque secondi e così via.

La lampadina è spenta nell'immagine qui sotto.


La lampadina è accesa nell'immagine qui sotto.


Come puoi vedere, possiamo commutare il relè e controllare la lampadina AC ad alta tensione usando il linguaggio di programmazione Python. Quindi, premi + C terminare il test.py sceneggiatura.

Passiamo ora alla sezione successiva.

Scrivere l'app Web per la domotica

In questa sezione, ti mostrerò come scrivere un'app Web basata su API utilizzando il linguaggio di programmazione Python. È possibile utilizzare l'app Web per controllare il relè e gli elettrodomestici CA o i dispositivi elettrici collegati al relè da un browser web.

NOTA: Tutti i codici mostrati in questa sezione sono disponibili nel mio repository GitHub shovon8 / raspberry-pi-home-automation . Se vuoi, puoi clonare il mio repository GitHub e saltare tutti i codici.

Crea lo script Python server.py nella directory del progetto come segue:

$nanoserver.py


Digita le seguenti righe di codici nel server.py Script Python.

a partire dalborracciaimportareBorraccia,jsonify,url_for,render_template
a partire dalgpiozeroimportareGUIDATO
a partire daluuidimportareuuid4
camere= {}
camere['Camera 1'] = [{
'ID': uuid4(),
'nome':'Luce 1',
'icona':'fa fa-lampadina',
'stato':falso,
'relayPin':4,
'relayInstance':falso
}, {
'ID': uuid4(),
'nome':'Ventola 1',
'icona':'fa fa-fan',
'stato':falso,
'relayPin':6,
'relayInstance':falso
}]
camere['Bagno 1'] = [{
'ID': uuid4(),
'nome':'Luce 1',
'icona':'fa fa-lampadina',
'stato':falso,
'relayPin':5,
'relayInstance':falso
}]
app=Borraccia(__nome__)
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@app.rotta('/')
defcasa():
Restituzionerender_template('./indice.html',camere=camere)
deftoggle_appliance_status(ID):
perCameraincamere:
perapparecchioincamere[Camera]:
Se P(apparecchio['ID']) == ID:
Seapparecchio['relayInstance']:
apparecchio['relayInstance'].chiudere()
apparecchio['relayInstance'] = falso
altro:
apparecchio['relayInstance'] =GUIDATO(apparecchio['relayPin'])
apparecchio['relayInstance'].Su()
apparecchio['stato'] = nonapparecchio['stato']
Restituzione Vero
Restituzione falso
@app.rotta('/elettrodomestico/commuta/')
defappliance_toggle(ID):
Restituzionejsonify({'stato': toggle_appliance_status(ID)})

Una volta terminato, premere + X seguito da E e per salvare il server.py Script Python.


Qui, le righe 1-3 importano tutti i componenti necessari dalle rispettive librerie.


La riga 5 crea un vuoto camere dizionario. In questo dizionario, memorizzeremo tutti i dettagli dell'apparecchio AC che vogliamo controllare dall'app web.


Il camere i dettagli sono memorizzati nelle righe 7-29.


Discutiamo la struttura dei dati di una delle stanze.

Qui, il nome della stanza sarà Sala 1. Così, Camera 1 è la chiave per camere dizionario.


Il Camera 1 key contiene un array come valore. Il numero di elementi dell'array è uguale al numero di elettrodomestici CA che hai in quella stanza e che vuoi controllare anche dall'app web. In questo caso, abbiamo due elettrodomestici AC che vogliamo controllare: Luce 1 e Ventola 1 .


Ogni definizione di elettrodomestico ha un ID . Il ID è un UUID generato casualmente. Questo è usato per identificare quale stanza vogliamo controllare usando l'API.

Un elettrodomestico ha anche tutto quanto segue:

  • nome (Luce 1 in questo caso)
  • icona (Classe di icone Font Awesome, poiché utilizzeremo Font Awesome per le icone)
  • stato (vero Se Su e falso Se spento )
  • relèPin (il numero pin GPIO utilizzato per controllare il relè collegato all'elettrodomestico CA)
  • relayInstance (il inizializzato GUIDATO oggetto di gpiozero libreria responsabile del controllo del rispettivo pin GPIO – relèPin )


La riga 31 inizializza un server Web Python flask.

La riga 32 configura il server web del pallone.


Le righe 34-36 inviano il index.html file dal modelli/ directory quando si visita l'app web di automazione domestica.

Usi del pallone Jinja2 linguaggio di template per rendere il index.html file. Quindi, ho superato il camere dizionario per il index.html file. Jinja2 renderà la homepage usando il camere dati.


La funzione toggle_appliance_status() nelle righe 39-52 serve per accendere l'elettrodomestico se è spento e spegnere l'elettrodomestico se è acceso tramite il ID .

ritorna Vero se l'operazione di commutazione è andata a buon fine. Se c'è un errore, tornerà falso .


Le righe 55-57 vengono utilizzate per commutare un elettrodomestico utilizzando il tasto /elettrodomestico/toggle/ Endpoint API del server web. Qui, ID è l'ID dell'elettrodomestico.


Crea il index.html file nel modelli/ directory del tuo progetto come segue:

$nanomodelli/index.html

Digita le seguenti righe di codici nel index.html sceneggiatura.


< html lang='Su'>
< testa >
< meta set di caratteri='UTF-8'>
< meta nome='finestra' contenuto='larghezza=larghezza-dispositivo, scala-iniziale=1.0'>
< collegamento rel='foglio di stile' href='{{ url_for('static', file) }}'>
< collegamento rel='foglio di stile' href='{{ url_for('static', file) }}'>
< titolo >Domotica con Raspberry Pi</ titolo >
</ testa >
< corpo >
< div ID='contenuto'>
< h1 >Automazione domestica Raspberry Pi</ h1 >

{% per stanza in stanze %}
< div classe='Camera'>
< h2 >{{ Camera }}</ h2 >
< div classe='elettrodomestici'>
{% per apparecchio nelle stanze[stanza] %}
< div classe='apparecchio' ID='{{ appliance['id'] }}'> ='attivo'>
< io classe='{{ appliance['icon'] }}'></ io >
< span >{{ apparecchio['nome'] }}</ span >
</ div >
{% endfor %}
</ div >
</ div >
{% endfor %}

</ div >

< sceneggiatura src='{{ url_for('static', file) }}' genere='testo/javascript'></ sceneggiatura >
</ corpo >
</ html >

Una volta terminato, premere + X seguito da E e per salvare il index.html file.


Creare un stile.css file nel statico/ directory del tuo progetto come segue:

$nanostatico/stile.css


Digita le seguenti righe di codici nel stile.css file.

@importare URL('https://fonts.googleapis.com/css2?family=BenchNine: [email protected] ;400;700&display=swap');

* {
margine: 0;
imbottitura: 0;
famiglia di font: 'BenchNine', sans-serif;
}

#contenuto >h1{
sfondo:gradiente lineare(aGiusto, RGB(112, 24, 163), RGB(86, 127, 240));
colore: #F F F;
allineare il testo: centro;
imbottitura: .5em 0;
}

div.Camera {
margine: .5em;
frontiera: 2px solido RGB(112, 24, 163);
raggio di confine: 5px;
}

div.Camerah2{
/* sfondo: rgb(9, 76, 121); */
sfondo:gradiente lineare(aGiusto, RGB(112, 24, 163), RGB(86, 127, 240));
imbottitura: 0 0 0 .5em;
colore: #F F F;
}

div.elettrodomestici {
margine: .5em .5em 0 0;
Schermo:flettere;
flex-wrap:avvolgere;
}

div.apparecchio {
frontiera: 2px solido RGB(112, 24, 163);
raggio di confine: 5px;
larghezza: 110 px;
altezza: 120 px;
allineare il testo: centro;
margine: 0 0 .5em .5em;
Schermo:flettere;
direzione di flessione:colonna;
}

div.apparecchioio.fa {
dimensione del font: 4em;
flex-grow: 1;
imbottitura-top: 0.3em;
colore: RGB(204, cinquanta, cinquanta);
}

apparecchio div[dati attivi='attivo']io.fa {
colore: RGB(32, 177, 51);
}

div.apparecchiospan{
Schermo: bloccare;
carattere-peso: grassetto;
sfondo: RGB(112, 24, 163);
colore: #F F F;
}

Una volta terminato, premere + X seguito da E e per salvare il stile.css file.


Creare un app.js file nel statico/ directory del tuo progetto come segue:

$nanostatico/app.js


Digita le seguenti righe di codici nel app.js file.

finestra.addEventListener('carico',principale);

funzioneprincipale() {
funzionetoggleStatoApparecchio(e) {
doveID=e.il percorso[1].ID;

dovehttp= nuovoXMLHttpRequest();

http.onreadystatechange = funzione() {
Se(questo.prontoStato === 4 && questo.stato === 200) {
Se(JSON.analizzare(questo.testorisposta).stato === vero) {
Se(e.il percorso[1].ha attributo('dati attivi')) {
e.il percorso[1].rimuovi attributo('dati attivi')
} altro {
e.il percorso[1].setAttribute('dati attivi', 'attivo')
}
}
}
}

http.aprire('OTTENERE',``/apparecchio/attiva/disattiva/${ID}``, vero);
http.Inviare();
}


doveelettrodomestici=documento.getElementsByClassName('apparecchio');
per(io=0;io<elettrodomestici.lunghezza;io++) {
elettrodomestici[io].addEventListener('clic',toggleStatoApparecchio);
}
}

Una volta terminato, premere + X seguito da E e per salvare il app.js file.


Qui, la linea 1 esegue il principale() funzione al termine del caricamento della pagina Web.

Nel index.html file, ogni elettrodomestico è racchiuso in un apparecchio classe. Le righe 26-29 sono utilizzate per selezionare ciascun elettrodomestico dalla pagina web e allegare il clic evento all'apparecchio. Quando qualcuno fa clic su un elettrodomestico dalla pagina Web, il toggle StatoApparecchio() funzionerà.


Nelle righe 4-23, il toggle StatoApparecchio() la funzione viene utilizzata per richiedere il /elettrodomestico/toggle/ endpoint del server web per modificare lo stato dell'elettrodomestico su cui si è fatto clic. La richiesta viene effettuata in background tramite AJAX. Una volta ricevuta la risposta, la pagina web viene aggiornata di conseguenza.


Vai a statico/ directory nella directory del progetto come segue:

$cdstatico/


Scarica Font Awesome con il seguente comando:

$wgethttps://use.fontawesome.com/rilasci/v5.15.1/fontawesome-free-5.15.1-web.zip


Una volta scaricato Font Awesome, dovresti trovare il nuovo file zip fontawesome-free-5.15.1-web.zip nel statico/ directory.

$ls -lh


Decomprimi il fontawesome-free-5.15.1-web.zip file con il seguente comando:

$decomprimerefontawesome-free-5.15.1-web.zip


Il fontawesome-free-5.15.1-web.zip il file dovrebbe ora essere decompresso.


La nuova directory fontawesome-free-5.15.1-web/ dovrebbe essere creato nella directory static/, come puoi vedere nello screenshot qui sotto.

$ls -lh

Rinominare la directory fontawesome-free-5.15.1-web/ a fantastico/ con il seguente comando:

$mv -vfontawesome-free-5.15.1-web fontawesome


Ora non hai più bisogno di fontawesome-free-5.15.1-web.zip file. Quindi, rimuovi il fontawesome-free-5.15.1-web.zip file con il seguente comando:

$rm -vfontawesome-free-5.15.1-web.zip


Il statico/ la struttura della directory dovrebbe apparire come mostrato nello screenshot qui sotto.

$ls -lh


Torna alla directory del progetto ~/www come segue:

$cd..

Testare l'app Web per la domotica

Per testare l'app web di automazione domestica, esegui il seguente comando nella directory del tuo progetto:

$FLASK_APP= esecuzione del pallone server.py


L'app Web dovrebbe essere disponibile sulla porta 5000 del tuo Raspberry Pi.


Dal browser web Chromium, visita http://localhost:5000 . L'app web per la domotica dovrebbe essere caricata.

Fare clic sull'icona della lampadina, indicata nell'immagine sottostante.


La lampadina AC dovrebbe ora essere accesa. Anche il colore dell'icona dovrebbe diventare verde, a indicare che la lampadina è accesa.


Quindi, l'app web per la domotica funziona. premere + C per terminare il server web.

Creazione del servizio Systemd per l'app Web di automazione domestica

In questa sezione, ti mostrerò come creare un file di servizio systemd per l'app Web di automazione domestica in modo che si avvii automaticamente all'avvio.

Per prima cosa, crea il raspi-home-automation.service file nella directory del progetto come segue:

$nanoraspi-home-automation.service

Digitare le seguenti righe nel file raspi-home-automation.service.

[Unità]
Descrizione=Servizio Web di automazione domestica Raspberry Pi
Dopo=rete.obiettivo
[Servizio]
Elenco di lavoro=/casa/pi/www
Ambiente=FLASK_APP=server.py
Ambiente=FLASK_ENV=produzione
ExecStart=/usr/sono/corsa del pallone--ospite= 0.0.0.0
Uscita standard= ereditare
Errore standard= ereditare
Ricomincia=sempre
Utente= pi
[Installare]
ricercato da=destinazione multiutente

Una volta terminato, premere + X seguito da E e per salvare il raspi-home-automation.service file.


Copia il raspi-home-automation.service file per il /etc/systemd/system/ directory con il seguente comando:

$sudo cp -vraspi-home-automation.service/eccetera/sistema/sistema/


Ricaricare i demoni systemd per rendere effettive le modifiche come segue:

$sudosystemctl daemon-reload


Aggiungi il raspi-domotica service all'avvio del sistema del sistema operativo Raspberry Pi con il seguente comando:

$sudosystemctlabilitareraspi-home-automation.service


Riavvia Raspberry Pi con il seguente comando:

$sudoriavviare


Una volta avviato il Raspberry Pi, il raspi-domotica il servizio dovrebbe essere attivo/in esecuzione, come puoi vedere nello screenshot qui sotto.

$sudostato systemctl raspi-home-automation.service

Accesso all'app Web di automazione domestica da altri dispositivi

Per accedere all'app web di automazione domestica da altri dispositivi nella rete domestica, dovrai conoscere l'indirizzo IP del tuo dispositivo Raspberry Pi.

Puoi trovare l'indirizzo IP del tuo dispositivo Raspberry Pi 4 dall'interfaccia di gestione web del tuo router di casa. Nel mio caso, l'indirizzo IP è 192.168.0.103. Questo sarà diverso per te. Quindi, assicurati di sostituire il mio IP con il tuo d'ora in poi.


Se hai accesso alla console Raspberry Pi, puoi eseguire il seguente comando anche per trovare l'indirizzo IP.

$Nome host -IO


Una volta che conosci l'indirizzo IP del tuo dispositivo Raspberry Pi, puoi accedervi da qualsiasi dispositivo nella tua rete domestica.

Come puoi vedere nello screenshot qui sotto, ho effettuato l'accesso all'app web di automazione domestica dal mio smartphone Android.


Assicurati di collegare la spina della lampadina alla presa di corrente a muro.


La lampadina dovrebbe essere spenta per impostazione predefinita.


Se tocchi l'icona della lampadina dall'app web di automazione domestica, il colore dell'icona della lampadina dovrebbe diventare verde, a indicare che la lampadina è accesa.


Come puoi vedere nell'immagine qui sotto, la lampadina è accesa.

Conclusione

Questo articolo ti ha mostrato come utilizzare un relè da 5 V per controllare un dispositivo elettrico CA ad alta tensione da Raspberry Pi utilizzando il linguaggio di programmazione Python. L'articolo ha anche mostrato come scrivere un'app Web flask Python basata su API per controllare il relè dal browser Web. Questo articolo dovrebbe aiutarti a iniziare con l'automazione domestica utilizzando Raspberry Pi.