Sommario:
- Forniture
- Passaggio 1: configura il tuo Raspberry Pi
- Passaggio 2: collegamento dell'hardware
- Passaggio 3: aggiunta del codice
- Passaggio 4: provalo
- Passaggio 5: debug e file RxTx.py
- Passaggio 6: divertiti
Video: Come controllare le prese usando un Raspberry Pi: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
In questo Instructable, ti mostrerò come creare un'interfaccia web per controllare le prese di casa usando un Raspberry Pi. Ho scelto di scrivere questo progetto quando ho visto il concorso Sensors e, poiché questo progetto prevede l'utilizzo di un sensore per leggere i codici dal telecomando fornito con le prese acquistate, ho pensato che questo progetto sarebbe stato perfetto.
Lavorerò per mantenere questo livello il più alto possibile e fornirò il codice per far funzionare tutto. Per tutte voi scimmie del codice là fuori, sentitevi liberi di scavare nel codice e scrutatemi nei commenti! Cerco sempre di migliorare. C'è molto da fare in questo, quindi se hai domande su qualsiasi passaggio, lascia un commento in modo che possa aggiornare Instructable con i dettagli necessari.
Questo progetto utilizza prese controllate a radiofrequenza a 433 MHz accoppiate con un trasmettitore RF collegato al tuo Raspberry Pi. Le prese sono dotate di telecomandi che possono accendere/spegnere le prese, ma non è divertente! Utilizzeremo invece un server Web in esecuzione sul raspberry pi che consente a chiunque sia connesso alla rete di attivare o disattivare determinate prese. Un front-end Web per questo progetto è l'ideale poiché qualsiasi dispositivo connesso al Web sulla rete può essere utilizzato come telecomando.
Questo è un progetto che sogno da anni di portare a termine e, sebbene ci sia ancora spazio per integrazioni, il progetto descritto di seguito è un sistema funzionale.
Forniture
- Un Raspberry Pi (ho usato un RPi 3 Model B+)
- Un trasmettitore e ricevitore a 433 MHz (ho usato questo)
- Prese a 433 MHz (ho usato questo)
- Maglioni da donna a donna (ho comprato questo mazzo)
- Un computer o un dispositivo portatile in grado di accedere a Internet
Passaggio 1: configura il tuo Raspberry Pi
Inizia installando l'ultima versione di Raspbian sul tuo nuovo Raspberry Pi. Se prevedi di utilizzare un Pi esistente (cosa che puoi fare totalmente), tutto ciò che devi fare è assicurarti di avere Python 3 sul tuo Pi, poiché è quello in cui è scritto tutto il codice sorgente che fornisco. Per fare questo, genere
pitone3
nella riga di comando. Se hai Python 3, dovresti vedere il terminale Python aperto. Esci dal terminale chiudendo o digitando
Uscita()
Dopo averlo confermato, devi installare il pallone sul tuo Pi. Flask ci permette di creare il nostro server web. Dalla riga di comando Pi, digita
sudo pip3 install flask
Nel caso in cui non sia installato pip sul tuo Pi, dovrai digitare
sudo apt-get install python3-pip
Preferisco sviluppare sul mio Raspberry Pi comodamente dal mio computer desktop. Se anche tu preferisci questa opzione, devi installare una sorta di ambiente per SSH nel Pi. PuTTY funzionerà, ma preferisco avere una GUI (interfaccia utente grafica), che fa sembrare che tu sia direttamente sul Pi. Per l'opzione GUI, ti consigliamo di installare VNC Viewer sul computer su cui prevedi di lavorare. Ci sono anche impostazioni che dovrai regolare sul tuo Pi. Le istruzioni per modificare le impostazioni sono disponibili qui.
Passaggio 2: collegamento dell'hardware
A questo punto, è il momento di effettuare tutte le connessioni fisiche necessarie in preparazione dell'impostazione del codice sorgente per questo progetto. Collegherai i pin del trasmettitore e del ricevitore ai pin GPIO del tuo Pi. Dovrai fare riferimento religiosamente al diagramma di piedinatura dei pin GPIO. Per farlo, apri il terminale sul tuo Pi e digita
piedinatura
Di seguito sono riportati i collegamenti che ho effettuato. Potresti avere una configurazione diversa se hai acquistato un hardware trasmettitore/ricevitore diverso da quello indicato nell'introduzione. Se decidi di scegliere numeri di pin diversi da quelli che ti indico qui sotto, non temere! Quando scarichi il codice sorgente, modifica semplicemente i numeri dei pin secondo necessità nel file RxTx.py.
Ricevitore (grande chip):
- GND - Qualsiasi pin di terra designato
- DATI - Pin 11
- DER - Non connesso
- +5V - Qualsiasi pin designato +5V
- ------
- +5V - Qualsiasi pin designato +5V
- GND - Qualsiasi pin di terra designato
- GND - Non connesso
- ANT - Non connesso
Nota: puoi collegare un'antenna secondo necessità, ma ho scoperto che non ne avevo bisogno. Questo piccolo chip era sorprendentemente sensibile e rileva fedelmente i segnali fino ad almeno 50 piedi da dove si trovava e attraverso almeno due pareti.
Trasmettitore:
- P - Il pin da 3,3 V
- DA - Pin 7
- G - Qualsiasi pin di terra designato
- AN - non connesso
Nota: ancora una volta, puoi collegare un'antenna al trasmettitore secondo necessità, ma ho scoperto che non ne avevo bisogno. La portata è più che sufficiente (50+ piedi).
Passaggio 3: aggiunta del codice
Questa è la parte su cui ho trascorso la maggior parte del mio tempo durante lo sviluppo di questo progetto. Cerco di commentare il più possibile, ma probabilmente ho lasciato dei vuoti che potrebbero richiedere una spiegazione se qualcuno di voi passa il tempo a cercare di capirlo. Se ti capita, lascia un commento!
Le lingue che sono coinvolte qui sono:
- Pitone
- CSS
- Javascript
- HTML
- JQuery/Ajax
Il Python è usato nel server flask e nel
RxTx.py
file, che gestisce la trasmissione e la ricezione del codice. I CSS vengono utilizzati per generare lo stile della pagina web. Chi vuole un sito noioso!? Javascript viene utilizzato in qualsiasi gestione degli eventi (premendo un pulsante, ecc.). L'HTML è l'elemento fondamentale della pagina web. Infine, JQuery/Ajax viene utilizzato per comunicare tra la pagina Web e il backend Python.
Se tutte queste lingue sembrano intimidatorie, non preoccuparti! Sapevo solo che Python stava entrando in questo progetto, che è stato il linguaggio che ha coinvolto la minor quantità di codice, vai a capire … Basti dire che prenditi il tuo tempo per esaminare il codice se è quello che scegli di fare. Se non vuoi, non devi!
Quella che segue è la struttura di directory che ho scelto di utilizzare con questa pagina web. La cartella zip allegata a questo passaggio contiene tutto il codice sorgente nella seguente struttura.
Uscita Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> webpage-- static----- favicon.ico----- style.css-- templates----- index.html----- schedule.html-- app.py-- data.file
Puoi mettere la cartella Outlet Switch ovunque sul tuo Pi. Quando sei pronto per eseguire il tuo server web, apri il terminale sul tuo Pi e
cd
(cambia directory) nella directory della pagina web. Quindi digita
python3 app.py
nel terminale. Se non ci sono stati errori, dovresti essere a posto!
P. S. Per favore, sii paziente se incontri qualche bug. Ho provato a schiacciarli tutti prima di caricarli.
Passaggio 4: provalo
Ora che stai eseguendo il codice, puoi avere un'idea dell'interfaccia web a portata di mano. Il controllo del sistema è molto semplice:
- Puoi aggiungere tutti i punti vendita che desideri utilizzando l'interfaccia web.
- L'eliminazione è semplice come fare clic su Modifica, selezionare i punti vendita che si desidera eliminare e fare clic su Elimina.
Il video di YouTube sopra mostra come aggiungere effettivamente un nuovo punto vendita alla tua lista. Per riassumere ciò che mostra:
- Per prima cosa inserisci il titolo del punto vendita nel campo Titolo
- Fare clic o toccare fuori dal campo Titolo per consentire al programma di verificare che il titolo non esista già. Non puoi avere titoli con lo stesso nome
- Una volta convalidati, i pulsanti Codice ON e Codice OFF sono abilitati.
- Tieni premuto il pulsante ON sul telecomando fornito e fai clic rapidamente sul pulsante ON Code sull'interfaccia. Tieni premuto il pulsante sul telecomando finché il tuo codice binario non compila il campo adiacente.
- Ripetere il passaggio precedente per il codice OFF.
- Fai clic su OK e ora sei pronto per cambiare questa presa!
Come accennato nell'introduzione, il progetto non è completo al 100% per i miei usi. Il componente più grande che devo ancora completare e implementare è la capacità di pianificazione. Ho intenzione di consentire all'utente di creare un programma che consenta l'accensione e lo spegnimento automatico dei punti vendita a orari prestabiliti.
Passaggio 5: debug e file RxTx.py
L'unica limitazione nota del sistema è la possibilità di incompatibilità tra i punti vendita di diversi fornitori. I messaggi di codice di attivazione e disattivazione sono a 25 bit per il mio sistema e se un sistema ha una lunghezza del messaggio diversa, non è immediatamente compatibile con questo progetto. Se hai seguito esattamente le istruzioni e hai ancora problemi a farlo funzionare, il seguente sarebbe il modo migliore per eseguire il debug del problema.
-
Assicurati di avere matplotlib installato sul tuo Pi. Puoi farlo digitando quanto segue nel terminale del Pi:
-
pitone3
-
import matplotlib
- Se ricevi un errore, devi installare matplotlib.
-
Esci dalla shell Python usando
Uscita()
-
-
Per installare matplotlib, digita
sudo pip3 install matplotlib
- nel terminale
- Scarica il file test.py allegato e posizionalo accanto al file RxTx.py sul tuo Pi
- Apri il terminale Python e cambia la directory nella cartella comm.
-
Tipo
python3 test.py
- Quando viene visualizzato il messaggio "**Registrazione avviata**", tieni premuto il pulsante ON o OFF del telecomando fino al termine della registrazione.
- Il programma caricherà una figura matplotlib simile a quella sopra. Ingrandisci finché non vedi il segnale ripetitivo come mostrato nelle foto sopra.
- Conta l'1 logico totale e lo 0 logico per ogni messaggio, dove un messaggio è un'iterazione del segnale ripetitivo visto sopra. Se il totale è 25, è probabile che il file RxTx.py non sia responsabile. Se incontri qualcosa di diverso da 25, assicurati di commentare di seguito e riorganizzerò il file RxTx.py in modo che sia più aperto (o sentiti libero di provarci).
Cosa succede se non vedo un segnale ripetitivo?
Se non vedi un segnale ripetitivo, una delle due cose è sbagliata. Innanzitutto, controlla che tutti i collegamenti dei cavi dei ponticelli siano eseguiti correttamente. Se tutto sembra a posto, potresti avere un cattivo ricevitore. Hai comprato quello che ti ho suggerito? Quando ho comprato il mio primo chip ricevitore, era molto rumoroso. Così rumoroso che non riuscivo a ottenere un segnale chiaro. Quindi ho restituito quel chip e ho preso quello che avevo collegato, e non avrebbe potuto funzionare meglio.
Passaggio 6: divertiti
Sai che hai la possibilità di accendere/spegnere le prese dal tuo telefono, tablet, computer o altro dispositivo abilitato per il web! Fatemi sapere cosa ne pensate nei commenti!
Consigliato:
Come controllare un dispositivo utilizzando Raspberry Pi e un relè - LE BASI: 6 passaggi
Come controllare un dispositivo utilizzando Raspberry Pi e un relè - LE BASI: questo è un tutorial di base e diretto su come controllare un dispositivo utilizzando Raspberry Pi e un relè, utile per realizzare progetti IoT Questo tutorial è per principianti, è amichevole per segui anche se non hai alcuna conoscenza dell'uso di Raspberry
Visuino Come usare un pulsante come ingresso per controllare cose come il LED: 6 passaggi
Visuino Come utilizzare un pulsante come input per controllare cose come il LED: In questo tutorial impareremo come accendere e spegnere il LED utilizzando un semplice pulsante e Visuino. Guarda un video dimostrativo
Automazione domestica intelligente con prese Energenie - Prese di prossimità: 4 passaggi
Automazione domestica intelligente con prese Energenie - Prese di prossimità: IntroduzioneCi sono molti esempi di automazione domestica intelligente là fuori, ma questa è semplice e ha funzionato in modo molto efficace per un anno a casa mia, quindi spero che ti piaccia. Quando hai finito avrai un dispositivo in grado di scansionare la rete
Come controllare la luce/le luci domestiche usando Arduino e Amazon Alexa: 16 passaggi (con immagini)
Come controllare la luce/le luci domestiche usando Arduino e Amazon Alexa: ho spiegato come controllare la luce collegata a UNO e controllata da Alexa
Come usare il Wiimote come mouse del computer usando le candele come sensore!!: 3 passaggi
Come utilizzare il Wiimote come mouse del computer utilizzando le candele come sensore!!: questa guida ti mostrerà come collegare il telecomando Wii (Wiimote) al PC e utilizzarlo come mouse