Sommario:

Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione): 6 passaggi
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione): 6 passaggi

Video: Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione): 6 passaggi

Video: Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione): 6 passaggi
Video: Come riaccendere il Commodore dopo tanti anni / Diagnostica 586220 C64 / Smontaggio e Controllo 2024, Luglio
Anonim
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)
Prese di rete telecomandate Raspberry Pi RF (spine di alimentazione)

Controlla prese di rete a 433 MHz economiche (prese a muro) utilizzando un Raspberry Pi. Il Pi può apprendere i codici di controllo emessi dal telecomando delle prese e usarli sotto il controllo del programma per attivare una o tutte le prese remote in tutta la casa.

Il design non si basa sulla connettività Internet esterna (cioè) "Internet of Things" ed è quindi (IMHO) molto più sicuro dei controller basati sul web. Detto questo, ho provato l'integrazione con Google Home ma ho perso rapidamente la voglia di vivere quando i comandi a volte impiegavano diverse decine di secondi per essere eseguiti o non venivano mai eseguiti.

Un'applicazione ovvia nel periodo natalizio è controllare le luci dell'albero di Natale e (se sei così incline) le luci del display esterno. Sebbene sia un utilizzo semplice, costruendo questo Instructable ti ritroverai con un controller di prese super flessibile che può rispondere agli ingressi dei sensori e ad altri dispositivi sulla rete domestica, come Raspberry Pi con Linux Motion.

Ad esempio, ho una serie di luci della cucina che si accendono quando una telecamera che esegue "Motion" rileva un movimento in cucina e poi le spegne dopo cinque minuti di inattività. Funziona davvero bene!

Con "Tasker" e "AutoTools SSH" dal Google Play Store, puoi configurare tutti i tipi di telecomandi fantasiosi basati sul telefono.

Il progetto si basa su ricevitori e trasmettitori economici a 433 MHz ampiamente disponibili su eBay. Questi sono compatibili con (almeno nel Regno Unito) prese di rete remote da 433 MHz vendute con telecomandi. Il mio progetto include un ricevitore in modo che i nuovi set di comandi del telecomando possano essere incorporati facilmente e rapidamente. Un punto da notare: le prese remote disponibili nel Regno Unito sembrano essere di due tipi: quelle con un ID programmato da un interruttore sulla presa e quelle che dipendono dalla programmazione dal telecomando. Questo progetto è compatibile con entrambi ma i primi non perdono la loro identità in un'interruzione di corrente e sono quindi preferibili.

Il progetto utilizza un vecchio case del router: ne ho alcuni e hanno la maggior parte dei connettori esterni necessari, come alimentazione, ethernet, USB e antenne. Ciò che utilizzerai dipenderà da ciò che hai a disposizione, quindi questo Instructable è probabilmente più utile come guida generale piuttosto che come serie di istruzioni passo-passo.

Sebbene non sia strettamente necessario per questo progetto, ho anche aggiunto una ventola di raffreddamento e una scheda controller. Senza una ventola, il Pi può scaldarsi abbastanza (circa 60°C). I dettagli possono essere forniti in un successivo Instructable.

Devo dire che non sono un programmatore. Il software è (principalmente) scritto in Python e le cose intelligenti sono copiate da persone che sanno cosa stanno facendo. Ho riconosciuto le fonti dove posso - se ne ho perse qualcuna, per favore fatemelo sapere e correggerò il testo.

Instructable presuppone una certa capacità di saldatura e una familiarità passeggera con Python, Bash e parlando con il tuo Pi tramite SSH (anche se cercherò di rendere le istruzioni il più complete possibile). È anche scritto in inglese britannico, quindi se stai leggendo dall'altra parte dello stagno, per favore ignora le lettere in più nelle parole e i nomi strani per le cose (come "prese di rete", che conoscerai come qualcosa come "prese a muro").

Anche eventuali commenti, miglioramenti suggeriti e usi ecc. Sono molto graditi!

Passaggio 1: preparazione del caso

Preparazione del caso
Preparazione del caso
Preparazione del caso
Preparazione del caso
Preparazione del caso
Preparazione del caso

Ho usato un vecchio router TP-Link TD-W8960N per questo progetto. È di buone dimensioni e una volta che ho capito come inserirlo, è abbastanza facile lavorarci.

Ho anche mantenuto l'alimentatore 12v @ 1A del router, che è un po' sottoalimentato ma in pratica va bene per questa applicazione.

L'apertura della custodia è una questione di rimuovere due viti nella parte inferiore della custodia e quindi utilizzare uno strumento indiscreto attorno al bordo della custodia per facilitare l'apertura delle clip. Le due viti si trovano sotto i piedini in gomma sul retro del case (vedi frecce rosse). Le clip più difficili da aprire sono quelle davanti ma ho avuto fiducia e si sono piegate al mio strumento di leva.

Una volta aperta la custodia, svitare i due dadi sui connettori dell'antenna e la scheda del circuito può essere sollevata.

Dato che in seguito utilizzerai entrambe le antenne, dissaldare i cavi coassiali sulla scheda del circuito e metterli da parte.

Se ti senti coraggioso (come me), puoi rimuovere l'interruttore a pressione, la presa CC e le prese RJ45 dal circuito. Il modo migliore che ho trovato per farlo è bloccare la scheda in una morsa e applicare il calore da una pistola termica mentre si fa leva con uno strumento di apertura della custodia sottile adatto o un cacciavite. La logica è che tutte le connessioni di saldatura vengono fuse contemporaneamente, riducendo lo stress termico complessivo sulla custodia in plastica del componente rispetto all'utilizzo di un saldatore su ciascuna giunzione. Questa è almeno la teoria. In pratica, c'è di mezzo un po' di fortuna! Quanto calore applicare è una questione di giudizio, ma fai attenzione e pecca troppo poco. Se tutto va bene, ti ritroverai con i componenti utilizzabili mostrati nella foto (noterai comunque la manopola dell'interruttore fusa e la presa RJ45 leggermente deformata!).

Altrimenti, vai su Internet per comprare i tuoi pezzi.

Passaggio 2: elenco delle parti

Raspberry Pi - Sospetto che andrà bene qualsiasi sapore, ma ho usato un 3B+

Scheda trasmettitore 433 MHz: cerca su eBay "Trasmettitore RF 433 MHz con kit ricevitore per Arduino Arm Mcu Wireless" o simili

Scheda ricevitore 433MHz - idem. In genere £ 1,98 al paio

Regolatore Buck LM2596 - eBay, in genere £ 1,95. Per convertire l'alimentazione da 12 V a 5 V per il Pi

Tubo luminoso - cerca su eBay "Cavo in fibra ottica - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 /3 mm di diametro - Guida luminosa" - Ho usato un tubo da 2 mm ma 1,5 mm sarebbe stato più facile da lavorare (ho pagato £ 2,95 per 1 m)

Interruttore a levetta miniaturizzato a 2 poli (bello da avere ma opzionale)

Presa USB tipo A saldabile a 180° - tramite eBay, ho pagato £ 1,90 per dieci

Interruttore a doppio polo (bello da avere ma opzionale) - Ho preso il mio dalla scheda modem/router

Prese RJ45 - recuperate dalla scheda modem/router

Presa di alimentazione CC - tramite eBay (presa jack per alimentazione CC 10X Connettore femmina per montaggio a pannello 5,5 x 2,1 mm £ 0,99)

Antenne da 430 MHz: convertono le antenne da 2 GHz del modem/router

Alimentatore 12v dc 12W (minimo) - idealmente, questo verrà fornito con il modem/router. In caso contrario, è necessario assicurarsi che la presa di alimentazione CC sopra corrisponda a quella utilizzata. Il requisito 12v è determinato dal trasmettitore 433MHz

Le parti per la mod della ventola di raffreddamento saranno descritte in dettaglio in un successivo Instructable.

Passaggio 3: materiali di consumo e strumenti

Avrai bisogno dei seguenti materiali di consumo:

Saldare (come richiesto)

Colla a caldo (come richiesto)

Cavo di interconnessione - (ad es.) 22 e 24 AWG (come richiesto)

Manicotto termoretraibile (come richiesto)

Gatto sacrificale. 5 cavi patch ethernet

Cavo patch USB 2 sacrificale.

Utensili:

Spelafili

Tagliafili (preferibilmente tronchesi a filo)

Strumento di premiazione

Cacciavite adatto per smontare la custodia.

Saldatore

Pistola a colla

Asciugacapelli (per piegare i tubi luce e per eventuali interruzioni estemporanee dell'acconciatura)

Ricevitore di comunicazione FM 433MHz (opzionale - per la risoluzione dei problemi del trasmettitore) - (es.) AR1000

Passaggio 4: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Il modo in cui assembli il Pi e le schede ausiliarie dipende dal caso che stai utilizzando. Le foto mostrano quello che ho fatto.

Il Pi si trova all'incirca al centro del case, consentendo spazio sufficiente per l'utilizzo dei vari connettori (si noti che l'HDMI non viene utilizzato poiché il Pi viene comunicato tramite SSH (ovvero) "senza testa".

Ho attaccato il Pi alla base usando un paio di elementi di fissaggio in plastica recuperati (vedi foto). Poiché la scatola non è destinata all'uso portatile, puoi farla franca utilizzando solo due elementi di fissaggio. Puoi facilmente usare viti da 2,5 mm con distanziatori o anche colla a caldo (che ho usato in passato - assicurati solo di non usarne troppo ed evita qualsiasi componente di montaggio superficiale sul lato inferiore come inevitabilmente avrai per rimuovere la scheda in un momento (prima legge di costruzione - dovrai smontarla)).

Ho usato la colla a caldo per fissare le varie tavole ai lati del case. Valgono le stesse considerazioni di cui sopra.

Una volta che tutto è a posto, puoi collegare le cose.

Lo schema a blocchi mostra lo schema di cablaggio che ho usato. Nota che uso l'interruttore a levetta opzionale per alternare l'alimentazione tra il trasmettitore e il ricevitore - probabilmente c'è poco rischio di farlo, ma non volevo friggere il ricevitore durante la trasmissione.

Mi è anche venuto in mente che l'interruttore a pressione avrebbe potuto essere usato per spegnere con grazia il Pi (ci sono un certo numero di design disponibili su Internet). Non mi sono preoccupato: in questo caso funge da semplice interruttore di accensione/spegnimento. Devo solo stare attento a spegnere il Pi tramite SSH prima di premere l'interruttore.

Noterai i tubi luminosi utilizzati per incanalare la luce dai due LED sul Pi e dal LED di stato dell'alimentatore alla parte anteriore del case. Ho usato il calore di un asciugacapelli per piegare i tubi (sicuramente NON vuoi usare una pistola termica!). È molto per tentativi ed errori, ma alla fine ne vale la pena poiché puoi vedere direttamente cosa stanno segnalando i LED piuttosto che affidarti a software e LED esterni. È una tua scelta ovviamente. Il taglio dei tubi viene eseguito con un paio di tronchesi affilati (i tagliafili sono i migliori) ma puoi anche usare delle forbici affilate. Anche in questo caso, la colla a caldo può essere utilizzata per fissare i tubi in posizione, ma fai attenzione a usarne solo una piccola quantità - che si raffredda rapidamente - poiché la colla può distorcere i tubi.

Idealmente dovresti modificare le antenne. In genere saranno dimensionati per funzionare a 2 GHz e creeranno antenne molto inefficienti se utilizzati a 433 MHz.

Per fare ciò, è necessario prima rimuovere il coperchio dell'antenna per esporre il cavo dell'antenna. Penso di essere stato fortunato perché la copertura si è staccata da ogni antenna con solo una piccola quantità di sollevamenti.

Taglia dove mostrato per rimuovere l'antenna originale da 2 GHz ed esporre il coassiale. Accedere con attenzione al nucleo interno, rimuovere bene la treccia e saldarla a un nuovo pezzo di filo come mostrato. La lunghezza del nuovo filo è circa 1/4 di lunghezza d'onda di 433 MHz (cioè) lunghezza = 0,25 * 3E8/433E6 = 17 cm. La parte inferiore può essere arrotolata utilizzando una piccola punta da trapano o simili per consentire l'intera lunghezza di adattarsi alla copertura dell'antenna.

Prima del rimontaggio, verificare che non vi sia un cortocircuito tra i contatti dell'antenna interno ed esterno.

Ho modificato solo l'antenna del trasmettitore poiché un ricevitore "sordo" è probabilmente vantaggioso quando si imparano i codici del telecomando RF (vedi più avanti).

La connessione ethernet avviene cablando un Cat sacrificale. 5 cavo di interconnessione alla presa RJ45 recuperato dal modem. Tagliare il cavo per adattarlo alla distanza tra la presa ethernet Pi e la presa della custodia RJ45 e scoprire tutti gli otto fili. Usa un tester di continuità per assicurarti di collegare il cavo pin 1 al pin 1 della presa ecc. Un modo semplice per farlo è collegare il connettore alla presa a cui stai cablando e far squillare tra i contatti della presa e le estremità del cavo scoperto. Poiché viene utilizzata solo una delle quattro prese RJ45 esterne, contrassegnare la presa cablata di conseguenza per evitare errori imbarazzanti in seguito.

Allo stesso modo, il connettore USB è cablato utilizzando un cavo patch USB 2 sacrificale, cablato dal pin 1 al pin 1 ecc. Il connettore USB del mondo esterno è incollato a caldo in posizione sulla custodia, utilizzando il foro nella custodia lasciato dalla presa della linea telefonica.

Passaggio 5: note sul trasmettitore

Note sul trasmettitore
Note sul trasmettitore
Note sul trasmettitore
Note sul trasmettitore
Note sul trasmettitore
Note sul trasmettitore

Le schede di trasmissione e ricezione a 433 MHz che ho usato sono onnipresenti su Internet e poiché sono così economiche ne ho ordinate due paia ciascuna (per consentire gli esperimenti sperimentali). Ho scoperto che i ricevitori erano affidabili, ma il trasmettitore che ho usato aveva bisogno di essere modificato per farlo funzionare in modo affidabile.

Il circuito del trasmettitore FS1000A che ho acquistato* è mostrato nello schema. Ho scoperto per tentativi ed errori che era necessario installare un condensatore da 3 pF nella posizione C1 SoT (selezionare durante il test) per far funzionare la cosa. Dato che ho un ricevitore a banda larga che copre 430 MHz, è stato relativamente facile risolverlo. Come potresti testare senza un ricevitore è una domanda interessante…

*Nota: ho acquistato un secondo lotto di trasmettitori dopo che non sono riuscito a far funzionare i primi due. A tutti questi mancava la bobina del collettore. Hmmm!

Avevo un condensatore da 3 pF nella mia spazzatura, ma questo non sarà il caso per la maggior parte delle persone, immagino e in ogni caso, il valore necessario potrebbe essere maggiore, diciamo 7 pF. Una sostituzione grezza può essere effettuata con due pezzi di filo intrecciato (il cavo a doppino intrecciato di mia conoscenza ha una capacità di circa 100 pF per piede per darti una guida alla lunghezza) ma non è raccomandato in quanto possono sorgere altri problemi. Spero che sarai fortunato e non avrai problemi del genere. Potresti sempre acquistare un trasmettitore più costoso (e quindi probabilmente) di migliore fattura.

Si noti inoltre che la frequenza del trasmettitore non è molto precisa o stabile, ma in pratica è stata abbastanza buona per azionare in modo affidabile le prese remote.

Si prega inoltre di notare che il foro placcato adiacente alla parola "ANT" sul trasmettitore NON è il collegamento dell'antenna - è quello nell'angolo senza segni (vedi foto). Questo è stato il primo errore che ho fatto….

La connessione pin contrassegnata in modo utile con "ATAD" dovrebbe in realtà leggere "DATA" ovviamente.

Passaggio 6: panoramica del software

Panoramica del software
Panoramica del software

Tieni presente che non sono un programmatore. Come affermato in precedenza, le cose intelligenti sono il codice di altre persone, ma ne so abbastanza per pizzicarlo e adattarlo per farlo funzionare insieme. Questo è anche il primo Instructable che ho pubblicato con il codice, quindi mi scuso se ho sbagliato! Se hai domande, tienilo a mente…

Il software di base che ho utilizzato è il seguente:

  • Raspbian Stretch Lite
  • PiGPIO (una fantastica libreria per pilotare i servi ecc.)
  • _433.py codice (per codificare e decodificare i codici di controllo RF) - collegato dal sito Web PiGPIO.
  • Python3 (fornito con Raspbian)

Software aggiuntivo che utilizzo:

  • pyphem (calcola le ore di alba e tramonto - utile per l'accensione della luce)
  • L'eccellente "Tasker" e "AutoTools SSH" per creare un telecomando sul mio telefono Android - vedi foto (entrambi disponibili nel Google Play Store). [Come creare una "scena" di Tasker non rientra nell'ambito di questo Instructable in quanto è coinvolta una curva di apprendimento abbastanza ripida, ma sono felice di discutere di ciò che ho fatto]

Il mio codice (in Python). Grezzo ma funzionale:

  • tx.py - software di argomenti del menu e/o della riga di comando che invia il codice appropriato al trasmettitore 433MHz.
  • alba-tramonto - calcola gli orari dell'alba e del tramonto nella mia posizione e aggiorna il crontab dell'utente (usato per le luci dell'albero di Natale, ecc.)

È possibile accedere al codice personale di cui sopra tramite GitHub:

La funzionalità del progetto è fornita dal codice PiGPIO e _433.py. Quest'ultimo ha una funzione di ricezione che ascolta i comandi del telecomando dal telecomando RF a 433 MHz e decodifica gli impulsi di temporizzazione, producendo un'uscita che può essere memorizzata per un uso successivo dalla funzione di trasmissione. Ciò consente al sistema di apprendere qualsiasi telecomando RF "normale" a 433 MHz. In linea di principio può essere utilizzato anche per apprendere i telecomandi RF del tuo vicino. Lo sconsiglio vivamente in quanto i vicini raramente vedono il lato divertente dei campanelli che suonano casualmente. non lo farei.

Impostare

Poiché il Pi in questa applicazione viene eseguito "senza testa" (cioè senza monitor o tastiera, è necessario parlargli tramite ssh. Sono disponibili molte guide su come configurare un Pi senza testa, ma per semplificare le cose, presumo che tu avvii prima il Pi con un monitor e una tastiera. Una volta avviato, avvia il terminale e digita "sudo raspi-config". Seleziona '5. Opzioni di interfacciamento' e poi 'P2 SSH'. Abilita il server ssh e chiudi raspi-config (che probabilmente terminerà con un riavvio).

Le comunicazioni successive con il Pi possono quindi essere condotte da un terminale remoto tramite ssh. Nota che il codice non richiede un indirizzo IP LAN fisso per il Pi, ma sicuramente aiuta (ed è certamente necessario se approfondisci il controllo di Tasker). Ancora una volta, ci sono molti tutorial online che spiegano come farlo. Il mio router di casa mi consente di assegnare un indirizzo IP fisso all'indirizzo MAC del Pi, quindi lo faccio in questo modo, piuttosto che modificando la configurazione del Pi.

Installazione di PiGPIO:

ssh nel Pi e inserisci i seguenti comandi:

sudo apt update

sudo apt install pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt install python3-RPi. GPIO

Per eseguire PiGPIO all'avvio:

crontab -e

aggiungi la seguente riga:

@reboot /usr/local/bin/pigpiod

Ottieni il codice Python per trasmettere e decodificare codici remoti RF 433MHz:

wget

decomprimi _433_py.zip

Sposta il file _433.py decompresso in una directory adatta (ad es.) ~/software/apps

Digitando (in quella directory)

_433.py

pone il Pi in modalità 433 rx, in attesa di codici di controllo remoto RF demodulati sul pin 38 GPIO.

Con il ricevitore 433MHz collegato, quando si utilizza un telecomando 433MHz nelle vicinanze, sullo schermo verranno visualizzati i seguenti dati:

codice=5330005 bit=24 (gap=12780 t0=422 t1=1236)

Questi dati vengono utilizzati nel tuo programma Python per rigenerare la trasmissione dal telecomando.

Per reindirizzare questi dati a un file per un uso successivo, eseguire:

_433.py > ~/software/apps/remotedata.txt

Una volta che hai i dati, il passo successivo è usarli per modificare il codice 'tx.py' che puoi copiare dal mio repository GitHub. Questo codice utilizza i dati per generare forme d'onda comprese dalle prese remote che devono essere trasmesse dal trasmettitore a 433 MHz. Speriamo che le modifiche richieste siano ragionevolmente ovvie e il resto dipende da te…..

Consigliato: