Invio di Dan McGrath. Di cosa si tratta allora? Bene, ho un sacco di automazione domestica e lo adoro! Tuttavia, ogni volta che lo mostro ad amici e parenti, tendo a ottenere una delle due risposte. Il primo è che è solo un espediente e non vorrebbero mai niente del genere. Il secondo è che è fantastico, ma troppo complicato per loro creare qualcosa di simile.
Quindi questo è il mio tentativo di un semplice dispositivo di automazione domestica molto semplice che chiunque può usare e praticamente chiunque può fare. In realtà sto seriamente considerando di produrre questi alla rinfusa (beh qualcosa di simile) e di vendere l’intero lotto come servizio gestito per circa un dieci anni all’anno. (Per favore fatemi sapere se questo potrebbe essere di interesse per chiunque). Comunque, quindi questo è il mio tentativo di automazione domestica economica per le masse, spero che ti piaccia …
Design – Giusto, quindi ho bisogno di qualcosa di economico, affidabile, facile da ottenere. Anche qualcosa che può essere attivato da un interruttore facile e quell’interruttore potrebbe essere uno dei seguenti:
Collegalo a una presa, una luce o qualsiasi altro apparecchio e usalo per montare.
Collegare a un pannello solare o LDR per monitorare i livelli di luce.
Collegare una coppia di sonde e rilevare acqua (piante, pioggia, perdite ecc …)
Connettiti a un interruttore PIR o Reed per la sicurezza,
Collegarsi a un allarme antincendio per la protezione antincendio,
Collegarsi a un tappetino a pressione ecc.
La maggior parte delle persone non vuole un PC o un server in esecuzione tutto il giorno, a causa del consumo di rumore, calore e energia. Easy Tiny One Board Computer può ora essere acquistato da $ 50 ciascuno (Xport, Arduino, Picotux, ecc.), Ma anche questo sembra eccessivo per quello che voglio …
Uno switch gestito, router, firewall, qualsiasi cosa con una porta Ethernet e una sorta di interfaccia web era quello che stavo cercando, ma doveva essere economico … e piccolo … Poi ho avuto l’idea di un server di stampa … I server di stampa sono l’ideale, usano pochissima elettricità, vengono sviluppati per essere accesi sempre, possono rispondere a un ping e meglio avere ancora un web server integrato. Ho fatto un po ‘di Google in giro e li ho visti per un minimo di Tenner su eBay. Oh e anche loro sono piccoli! Ho avuto tre idee per questo progetto:
Il primo era che potevo rompere o abbreviare la coppia di trasmissione sulla televisione via cavo Ethernet in arrivo sul server di stampa. Certamente con questi cortocircuiti o rotti, il dispositivo non sarebbe in grado di rispondere a un ping o a una richiesta HTTP.
Penso che funzionerebbe, ma mi è sembrato un po ‘barbaro e sono sicuro di poter fare di meglio.
Il secondo era solo quello di rompere l’alimentazione sul dispositivo
Ciò ha avuto un potenziale da un punto di vista del risparmio energetico in quanto avresti alimentato il dispositivo solo qualche volta, ovviamente quando è stato spento non vedresti né il suo sito Web né una risposta a una richiesta di ping. Mi è piaciuta molto questa idea, l’unica cosa che mi ha scoraggiato è stata che, quando è stato spento, sarebbe impossibile dire se il dispositivo fosse spento o si è disconnesso dalla rete per un altro motivo, forse un fallimento altrove. Inoltre, non ero sicuro per quanto tempo il dispositivo avrebbe tenuto le impostazioni (rete ecc.) Mentre era spento.
Quello che volevo veramente era un modo per ottenere una reazione dall’unità per confermare che era in uno stato o nell’altro, in questo modo potevi essere sicuri di ciò che stava realmente accadendo. È qui che entra in gioco la mia terza idea.
La terza idea era quella di ingannare il server di stampa che una stampante era davvero collegata ad essa,
E poi ho in modo che sembrasse che la stampante fosse su o spento.
Ho fatto un po ‘di ricerca e sembra che il pin 13 del connettore sia usato per questo scopo. Prendi il pin in alto (ovvero applica 5volt su di esso) e il server pensa che la stampante sia on_line, prendi il pin basso (ovvero rimuovi la tensione) e il server pensa che la stampante sia off_line.
Dato che tutto ciò che devo fare è applicare e rimuovere 5volt, posso solo trovare 5volt da qualche parte e instraderlo attraverso un interruttore. Chiudi lo switch e sembra che la stampante sia on_line, apri l’interruttore e la stampante appare Off_line. Come ho detto, questo stato si riflette nell’interfaccia Web, quindi uno script facile dovrebbe essere in grado di sondaggio di questa pagina e analizzare lo stato della stampante e quindi utilizzare queste informazioni per qualcosa di utile.
Costruzione-Come discusso in precedenza, ho usato un server di stampa parallelo PS-1206p Edimax, che ho acquistato per circa 25 sterline online. In realtà era molto più simile a 22 quid, ma affrancatura e imballaggio un po ‘. Ho finito per acquistare una manciata di questi perché erano così economici. Non ho mai sentito parlare di Edimax prima, quindi il prodotto potrebbe essere buono o cattivo, ma non mi interessa, fintanto che risponderà a una richiesta HTTP, allora sarò felice! Sono rimasto piacevolmente stupito quando si sono presentati, erano ben in scatola e anche il contenuto sembrava OK:
Una cosa è certa, però, questo dispositivo non verrà mai inserito nella parte posteriore di una stampante. Presto l’avrei tagliato in qualcosa di molto più interessante. Dettagli qui: Edimax PS-1206p
Ok, quindi togli il coperchio di uno di questi … adoro solo smontare, ma prendere cose nuove di zeccaa parte è particolarmente divertente per me, sembra così sbagliato !! Ci sono un paio di viti a testa di Phillips sul fondo e una volta rimosse, la custodia si stacca, anche se è necessario spremere un po ‘i lati mentre le due metà si aggrottano l’una nell’altra.
Sono rimasto piacevolmente stupito dall’interno di questa unità, è stato molto ben messo insieme. Il Signore sa solo a cosa servono tutti i pezzi, immagino che ci sia un processore lì dentro, un po ‘di memoria, un po’ di I/O e altre cose che non capisco.
Ora, potresti mantenere il grande socket Centronics a 36pin sul server di stampa e ottenere semplicemente la spina corrispondente per connettersi ad esso, ma questi sono piuttosto ingombranti e sembra un po ‘esagerato soprattutto considerando che dobbiamo solo connetterci a 2 di 2 Questi 36 pin. Ho scelto di tagliare la presa … No, non l’ho fatto con un’ascia, al momento sembra un po ‘ruvido:
Ho quindi trattenuto i singoli perni dalla tavola e ho realizzato una piccola piastra di metallo per bloccare il foro a sinistra dalla presa mancante. Ho praticato un paio di fori e collegato un paio di terminali a vite. Un po ‘di epossidico in 2 parti e un po’ di calore e tu hai questo …
Abbastanza pulito eh?! Questo è il prototipo funzionante, con un po ‘di fortuna, colmare quei due terminali a vite restituirà uno stato On_line e lasciarli aperti darà un Off_Line. Quindi è tempo di testare. Nota: le immagini sopra mostrano le connessioni ai pin 35 e 36, questo non è corretto, i test successivi hanno mostrato che in realtà avevo bisogno di pin 13 e 19.
Ho scelto di misurare il consumo energetico e sono rimasto piacevolmente stupito da quello che ho trovato, usa solo 6 watt, il che non è molto più vero? (A 10 p per kWh, costerà circa 5 quid all’anno per correre)
Come ho detto sopra, ho intenzione di sondarsi del mio server con una richiesta HTTP e raccogliere lo stato della stampante, ma se vuoi vedere solo se è lì eseguendolo ping, allora puoi usare il ping per Montior, usando qualcosa come:
Data
n = 1
mentre [$ n -lt 1000]
fare
ping -n 1 server_ip
Echo $ n
Sia n = n+1
fatto
Data
Mostra che questo dispositivo può facilmente inviare (e ricevere) 1000 ping in 52 secondi, il che è di 20 ping al secondo. Quindi il ping è un’opzione praticabile e dovrebbe darti una risposta abbastanza pronta. Naturalmente se vuoi semplicemente utilizzare il ping, dovrai mettere l’unità rompendo la connessione di potenza o di rete (non sarà influenzato dallo stato della stampante). I ping non funzionano davvero bene su Internet, molte persone e router disabilitano le richieste ICMP ai loro confini, tuttavia il vantaggio di questo dispositivo è che ha anche un’interfaccia Web che può essere sondata per verificarne la disponibilità. Questo può essere fatto su Internet facilmente, e di nuovo uno script breve mostra che è possibile effettuare circa 1 richiesta al secondo usando …
#!/usr/bin/bash
utente = nome utente
password = password
url = server_url
WGET –QUiet –http-user = $ user –http-password = $ password \
–Proxy = $ proxy $ url
Grep off_line Printer.htm> /dev /null
Se [“$?” == “0”]
Quindi riecheggia “offline”
else echo “online”
fi
RM Printer.htm
Restituisce un valore in base allo stato della stampante. Nota che il server Web a bordo è piuttosto lento, come previsto davvero, ma ottieni una reazione in meno di un secondo, quindi penso che sarà fattibile sondaggio ogni 5-10 secondi. Sostituire i comandi Echo con la posta o i comandi WGET aggiuntivi potrebbe inviarti un’e -mail o ottenere un URL (magari utilizzare Twitter per SMS ecc.)
Ok, un esempio di come aggiornare il tuo stato di Twitter è riportato di seguito:
Wget-Keep-Session-Cookies –http-user = nome utente \
–HTTP-Password = Password –Post-Data = Message \
(Sostituisci nome utente, password e messaggio con, beh sai ..)
O meglio ancora, ecco come mandarti un tweet quando succede qualcosa:
Wget-Keep-Session-Cookies –http-user = utente \
–HTTP-Password = Password –Post-Data = Message \
Nota, devi URL codificare il messaggio piuttosto bello, vero? Guarda molto di più sull’API di Twitter qui. – API di Twitter
Per vedere questo dalla rete, dovrai nat al tuo server di stampa, sto eseguendo un router Cisco, quindi quanto segue ha funzionato per me:
IP Nat all’interno della sorgente statica TCP estendibile
(Mantieni il numero di porta negli alti 50.000 e otterrai meno persone che ti scansionano e sondano). Se hai un router Linksys, la linea guida sarà diversa, ma qualcosa del genere dovrebbe farlo:
Se non hai nessuno dei due precedenti, allora sei da solo … buona fortuna!
Software – OK, ho fornito alcuni esempi sopra, di seguito è riportato uno script di shell bash funzionante che monitorerà uno di questi per te e Twitter SMS quando lo stato cambia. È un esempio molto semplice, ma dovrebbe iniziare.
#!/bin/bash
## Web Ottieni parametri
utente = “amministratore”
password = “1234 ″
url = “http: //ip_address/printer.htm”
## parametri di Twitter
t_user = utente
t_passwd = password
## altri parametri
status = “chiuso”
mentre è vero
fare
old_status = $ status
WGET –QUiet –http-user = $ user –http-passwd = $ password $ url
Grep off_line Printer.htm> /dev /null
Se [“$?” == “0”]
quindi status = “apri”
else status = “chiuso”
fi
RM Printer.htm
if [$ status! = $ old_status]
Quindi wget –QUiet –http-user = $ t_user \
–HttP-PASSWD = $ T_PAPSWD-Keep-Session-Cookies \
–Post-data = ”user = twitter_username & text = message” \
fi
sonno 1
fatto
In alternativa, è possibile utilizzare alcuni software di monitoraggio come i Freenat eccezionali per avvisarti quando succede qualcosa.
CONCLUSIONE – Beh, spero che tu abbia felice quello che ho fatto, devi ammettere che è l’automazione domestica
A buon mercato e molto facile da fare. Saluti – Dan
Link utili
CPAN – Tutte le cose perl
Perl – Molte più cose perl
Wget – Applicazione Wget
Edimax – Provider del server di stampa Altro / Misc
Twitter – Sito di social network con SMS
Questo breve articolo riprodotto dall’originale per gentile consenso di Dan McGrath di yourmissus.com
Voglio di più? – Seguici su Twitter, come noi su Facebook, o iscriviti al nostro feed RSS. Puoi anche ottenere queste notizie consegnate tramite e -mail, direttamente alla tua casella di posta ogni giorno
Condividi questo:
Facebook
Twitter
Reddit
LinkedIn
Pinterest
E-mail
Di più
WhatsApp
Stampa
Skype
Tumblr
Telegramma
Tasca