Il modo più economico per controllare più prese di corrente (luci) tramite Wi-Fi


41

Quello che vorrei vedere è il modo più economico possibile per controllare le mie luci usando il mio Raspberry Pi.

Quello che immagino di controllarlo

Costruisco un'interfaccia sul mio smartphone tramite la quale posso inviare comandi al mio Raspberry Pi. Il Raspberry Pi invierebbe quindi un pacchetto (o qualcos'altro) a qualcosa che posso mettere nella mia presa di corrente (quindi non lo vedo). Nota che questa cosa dovrebbe essere connessa tramite Wi-Fi (in quale altro modo riceverà il messaggio dal mio Raspberry Pi?).

Cos'è questa cosa e qual è il modo più economico possibile, poiché sto progettando di collegare una dozzina di luci?


C'è una presa controllata da wifi che qualcuno ha realizzato per circa $ 20 in parti (escluso il lampone pi) ProvoTronics.com
Ty Jones

Risposte:


22

Sto usando questi elementi:

  • Ricevitori ON-OFF per controllare le mie luci (in genere si inserisce un dispositivo nel walloutlet o invece del walloutlet). Funzionano nella banda 433 MHz (ISM).

Immediatamente hai un telecomando che invia un segnale al dispositivo ricevente e lo accende o spegne.

Nel mio caso, ho creato questa situazione:

  • Creato un sito HTML sul mio Raspberry Pi ( /switch.html)
  • Chiamo quella pagina sul mio smartphone
  • Nella pagina ci sono quattro pulsanti (controllo quattro dispositivi / luci)
  • Quando faccio clic su un pulsante, viene generato in modo asincrono una chiamata /switch.php(il .php si trova sul Raspberry Pi)
  • Il switch.phpchiama un switch.pyprogramma di che controlla il mittente 433 MHz (vedi sotto)
  • Il mittente 433 MHz fa la stessa cosa del telecomando out of the box.

Questo è il mittente, ovvero la sostituzione del telecomando standard: Superregeneration modulo trasmettitore wireless 433 MHz per Arduino

Ho anche creato uno scenario per l'uso fuori casa.

Non volevo connettere il mio Raspberry Pi tramite il mio homerouter direttamente a Internet, quindi mi sono costruito un'altra pagina web (nel mio dominio) che non controlla direttamente il Raspberry Pi, ma invia un'email a un (noto solo a me) indirizzo email ( Gmail ).

Il Raspberry Pi controlla quell'account e-mail ogni 10 minuti per vedere se ci sono e-mail. In quell'e-mail, ad esempio, dico A on o B off.

Quindi quando arriviamo a casa tardi e le luci sono già spente, accediamo al sito sul mio cellulare (si prevede di renderlo un'app Android), fare clic sul pulsante, la pagina viene pubblicata e sul server viene inviata un'e-mail e nei prossimi 0-10 minuti il ​​Raspberry Pi controlla l'e-mail, vede quattro nuove e-mail (A on, B on, C on e D on) e accende le luci.

Come iniziare

Quindi, per iniziare, queste sono le cose che ho fatto per far funzionare tutto. Nel mio caso, ho programmato il controllo del mittente 433 MHz in Python (che è una lingua semplice se sai già come programmare).

Per prima cosa installi la rpi.gpiolibreria.

Questa libreria viene utilizzata per controllare i piccoli pin del tuo Raspberry Pi dallo script Python. Vedi Installa la libreria Python di RPi.GPIO .

Quindi puoi facoltativamente leggere l'articolo Tutorial: come utilizzare il tuo Raspberry Pi come un Arduino , tratta di cosa puoi fare con la rpi.gpiolibreria, ad esempio i LED lampeggianti .

Tuttavia, non è obbligatorio per la commutazione della luce Elro.

Quindi ottieni il fantastico codice per il comando Elro di HeikoHeiko, su http://pastebin.com/aRipYrZ6 . Si incolla quel codice in un file chiamato ' switchelro.py'.

Quindi si modifica la stringa sulla linea 94 con le proprie impostazioni dei ponticelli (come è stato impostato nel telecomando e nel dispositivo walloutlet. Controllare se la combinazione dispositivo remote-walloutlet funziona prima di provarla con il Raspberry Pi. Se non funziona con i componenti standard, probabilmente fallirà anche con il Raspberry Pi).

Quindi si modifica il numero del pin a cui è collegato il mittente sulla linea 97.

Il numero di pin può essere ottenuto dalle periferiche di basso livello RPi e in File: RPi P1 header.png .

Devi usare il conteggio 1..26 (l'immagine nera), non GPIO34, GPIO24, ecc. (Immagine verde).

Quindi digitare questo sul prompt dei comandi:

sudo python switchelro.py 2 1

che significa "attiva B" (seguendo questo schema: A = 1, B = 2, C = 4, D = 8, E = 16per il primo numero e 1 = attivo, 0 = spento per il secondo).

Ho cambiato la repeat = 10su line 30per repeat = 20in principio (non mi ricordo perché) e che funziona. Non l'ho mai provato con l'impostazione '10'.


1
oh, e il prezzo .. qui nei Paesi Bassi un set di 3 ricevitori walloutlet (che si fa clic nel walloutlet e la luce va nel ricevitore) con telecomando costa 15 euro. Il mittente 433 Mhz costa circa $ 5
Michel

Sembra esattamente quello che sto cercando! La prego di inviarmi i file del progetto? (Switch.html, switch.php e, switch.py) La mia email è in una risposta sopra. Inoltre, dove posso acquistare il ricevitore on-off2 nei Paesi Bassi? Il sito Web che hai fornito non fornisce alcun prezzo.
Rick Hoving,

Post eccellente- Puoi aggiungere dove hai trovato la fonte per i comandi che invii via seriale? Stai utilizzando una biblioteca? Come target i dispositivi? +1
Piotr Kula,

1
@Nitin Nel mio sistema è possibile impostare il dip-switch sul ricevitore (i 5 interruttori on / off) e 5 lettere (A .. E). Quindi, con il codice default_key = [1,0,0,0,1]della pastebin.com/aRipYrZ6 codice che controlli i dip-switch e con la pinproprietà nel def __init__(self, device, key=[1,1,1,1,1], pin=4):codice è possibile controllare la A .. E (a = 1 .. e = 16)
Michel

1
@Nitin Non so come controllarlo con C #. Non vedo l'ora, perché l'ultimo PI eseguirà Win10 e speriamo che esegua anche C #. Detto questo, mentre io sono un programmatore C #, Python è un apprendimento facile
Michel

6

La cosa si chiama X10 , è uno standard industriale per la maggior parte delle attività di automazione domestica, compreso il controllo delle luci. Il segnale di controllo viene inviato sulla stessa linea di alimentazione a cui sono collegati gli apparecchi.

Per poter controllare tutto dal computer, è possibile leggere le interfacce del computer X10 dal sito Web OpenRemote. Il modello che probabilmente stai cercando è CM15A con interfaccia USB, con supporto Linux.

Inoltre, potrebbe essere una buona idea controllare ebay per prese a muro abilitate X10 e moduli lampada avvitabili, questi possono essere acquistati abbastanza a buon mercato, nella gamma di $ 10-20.


6

Quello che stai cercando è un relè a stato solido o un relè meccanico . L'idea è che una piccola quantità di corrente a bassa tensione (come dal tuo RPi) può essere utilizzata per innescare il flusso di una maggiore quantità di corrente a una tensione più alta (come una lampada).

Vorrei raccomandare $ 12 SainSmart 8 Channel DC 5V Relay Module per Arduino Raspberry Pi , poiché è già stato fabbricato in una scheda con terminali a vite pronti all'uso. Dispone di FET per la generazione della corrente aggiuntiva necessaria per l'attivazione dei relè meccanici. Esistono schede diverse della stessa azienda, in un'ampia varietà di layout / numero di relè. Quello che ho inviato è di 8 canali, quindi potrebbe non essere sufficiente per le tue esigenze, sebbene siano disponibili versioni a 16 canali . Sono generalmente più economici rispetto all'acquisto di più relè separatamente e facilitano il collegamento con essi.

Sono necessarie 4 connessioni:

  • Un terreno comune (condiviso con tutti i relè) che si collega all'RPi
  • Ingressi separati alimentati da singole linee GPIO RPi (per attivare i relè)
  • Un ingresso ad alta tensione
  • Un'uscita ad alta tensione

Gli ingressi / uscite ad alta tensione sono i collegamenti che vengono effettuati o interrotti dai relè in base alle loro linee di ingresso.

Ho già un fantastico programma C per il cambio remoto dei pin GPIO su SSH. Se vuoi, posso darti il ​​codice sorgente o anche spiegare come funziona.


Come posso dire di no a un programma FANTASTICO. Sebbene C non sia nel mio repertorio di lingue, posso almeno guardare il codice nel tempo.
Rick Hoving,

Puoi inviarlo rickhoving7@hotmail.com? Grazie in anticipo!
Rick Hoving,

Se hai risposto alla tua domanda, fai clic sul segno di spunta sotto le frecce di voto.
Alexander,

@XAleXOwnZX posso vedere anche questo fantastico codice? Forse dovresti aprire una domanda "Qualcuno ha un programma C INCREDIBILE per cambiare da remoto i pin GPIO su SSH", quindi rispondere.
puk

Avrò bisogno del tuo indirizzo e-mail, lo invierò e invierò la domanda + risposta domani
Alexander

2

il mio sistema è economico: EUR 43.- (ricevitore + trasmettitore) vedi sotto.

per l'automazione ho semplicemente collegato un trasmettitore FS20 868,35 MHz compatibile 3.3V all'RPI:

http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html

questo trasmettitore si interfaccia direttamente (solo con 4 fili) alle porte GPIO di RPI (3.3V, GND, TXD, RXD) ed è semplicemente controllato tramite l'interfaccia della linea seriale.

ora puoi controllare l'enorme gamma di dispositivi FS20 come interruttori, interruttori a levetta, dimmer, timer, radio. ricevitori multicanale ecc. trasmettendo alcuni byte sull'interfaccia della console seriale UART di RPI.

Panoramica del sistema FS20:

http://www.elv.de/fs20-funkschaltsystem.html

(purtroppo il sito web è disponibile solo in tedesco)

Personalmente preferisco una semplice CLI per il controllo dei miei dispositivi domestici. Se preferisci qualche interfaccia grafica puoi dare un'occhiata qui:

http://fhem.de/fhem.html

fortunatamente in inglese :-)

Sebbene molto flessibile, il sistema FS20 è molto economico. Costi di esempio per un semplice interruttore on / off:

passare da solo: http://www.elv.de/elv-funk-schaltsteckdose-fs20-st.html EUR 22,95

Trasmettitore UART: http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html EUR 19,95

Consiglio di controllare l'RPI stesso tramite una tastiera wireless. Per questo puoi opzionalmente acquistare questa piccola cosa geniale:

RT-MWK03 [Wireless 2.4 Ghz] ( http://www.riitek.com/en/product-detail-428.html )



0

Pur non essendo esattamente economico, ecco la mia soluzione:

http://www.everyhue.com/?page_id=38#/discussion/707/raspberry-touchpad-some-success

Fondamentalmente, usi Philips Hue (luci LED multicolori programmabili, controllabili tramite Wi-Fi) insieme a un RPi e un touchpad. La superficie del touchpad USB agisce sulle dimensioni di colore e luminosità, mentre i pulsanti del mouse accendono e spengono le luci. Il costo è RPi + dongle Wifi ($ 11) + touchpad USB economico ($ 15) + set di tonalità Philips ($ 200 per bridge e 3 luci, quindi $ 60 / luce).


0

Ho un approccio diverso: sto usando il dongle USB CUL di Busware (supporta FS20 + HMS + FHT + altri protocolli e dispositivi) e ho implementato la mia API Java per astrarre i dispositivi e consentire una facile automazione tramite un'applicazione Java.

Nel caso qualcuno si interessi al mio piccolo progetto: http://www.paulo-lima.org/hans

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.