Cose che ho letto

sabato 12 gennaio 2013

Accensione remota PC con Arduino e OpenWRT

Una cosa che sicuramente tutti gli appassionati di elettronica ed informatica hanno sempre desiderato poter fare, è accendere il pc di casa da remoto, magari perchè no da un celluare. E' esattamente quello che vedremo oggi.


Premessa
  • In teoria, la tecnologia che permette di farlo esiste già, e si chiama wake on lan, in pratica dal bios della nostra scheda madre, impostiamo di lasciare la scheda di rete sempre attiva, in modo tale che quando questa riceve un certo tipo di pacchetto dalla rete, invia un segnale che accende il pc come se avessimo premuto fisicamente il pulsante. Di solito questa cosa è utile nelle aziende o nei grandi laboratori (come ad esempio quello della mia univeristà, pieno zeppo di assistenti scanzafatiche) per evitare di dover accendere manualmente tutti i pc, ma con l'avvento dell'ADSL sempre connnesso, delle connessioni mobili e della app per smartphone, questa tecnlogia è ora utilizzabile facilmente da tutti.
Ma a noi ingegneri, tecnici, progettisti, amanti dell'elettronica, dell'open source e del fai da te

NON CE NE FREGA UN CAZZO!
Quindi cominciamo

Per prima cosa, un semplice schema della nostra applicazione, in modo da elencare in maniera chiara e completa tutti gli step che seguiremo, e tutte le tecnologie che adotteremo, così chiunque potrà capire sin da subito se questo progetto fa al caso suo o meno.

 Pagina WEB di controllo in HTML 
sul Server Apache del vostro OpenWRT
|
Pressione del pulsante di accensione
|
Script PHP
|
Programma Python
|
Porta USB Seriale
|
Arduino
|
Relè
|
Accensione del computer

Se quanto visto fin'ora è di vostra competenza, allora cominciamo la realizzazione 

I requisiti sono
  • Avere installato sul vostro router openwrt un server apache, questa è la wiki del sito su come fare (veramente molto semplice)
  • Python installato e in grado di comunicare con arduino, tutto descritto un mio vecchio articolo 
Procediamo
  • Scaricate il mio pacchetto con i 4 file necessari -> Download  
  • Il primo è la pagina index.html che andrà caricata nella directory del vostro server apache, o dove volete voi, l'importante è ke si trovi nella cartella dove metterete gli altri file del pacchetto, altrimenti dovrete modificare i file aggiungedo i vari path
In pratica quando premiamo il pulsante accensione, chiamiamo uno script php passandogli un carattere, questo a sua volta lo passerà a un programam python, che lo invierà ad arduino, che lo riconoscerà e agirà di conseguenza. Sembra senza senso, ma è facile, ed è la soluzione migliore.

Per vedere se sin qui va tutto bene, collegate un led al pin 12 dell'arduino, aprite la pagina web e premete il pulsante, vedrete dopo 3 secondo il led lampeggiare.

Non ci resta che collegare un relè all'arduino che si occupi di premere il pulsante di accensione.
In rete è pieno di guide per farlo, io vi riamando a questa molto ben fatta di Antonio Coviello.

Nella foto vediamo i pin della scheda madre a cui sono collegati i pulsanti e i led del vostro case.


Dovete individuare quello a cui corrisponde il pulsante di accensione, sdoppiarli e collegarli al vostro relè. Se usate un relè a 5V potete prelevare l'alimentazione da una porta usb del pc, che riamane alimentaa anche a pc spento. Io personalmente ho preferito la 12V e ho messo una presa per un piccolo alimentatore esterno. Ho collegato l'arduino al pc con una vecchia presa seriale e il cavo di un joystick, per rendere tutto facilmente rimovibile. Vi consiglio di mettere anche un led che indichi lo stato, e un interruttore. Seguono foto della realizzazione e il video dimostrativo.

Alla prossima ragazzi, e chiedete per qualsiasi info o dubbio ;)
















6 commenti:

  1. Ciao è la cosa inversa si puo fare? cioè spegnere il computer senza avere problemi al riavvio del tipo:
    "your system maybe overclock fail or post interrupted";

    RispondiElimina
  2. guarda, nell'articolo non mi pare di averlo specificato. ma il sistema funziona tranquillamente in tuti e 2 i modi. io per mesi ho acceso e spento il pc senza alcun problema. il mio era win xp, e non dava nessun messaggio di errore. ma la storia non dovrebbe cambaire su altri sistemi. lo spegnimento tramite pressione del pulsante di alimentazione, è una cosa normale.

    RispondiElimina
  3. ciao grazie della risp non vorrei che cambi a secondo del bios ho fatto alcune prove ma se faccio spegnere ad arduino il pc poi al riavvio mi da: "your system maybe overclock fail or post interrupted" se non dovrebbe essere un errore non capisco a cosa sia dovuto, o la durata dell impuloso faro qualche altra prova.

    RispondiElimina
    Risposte
    1. Dalle impostazioni di risparmio energetico dovresti trovare qualcosa tipo 'comportamento computer a pressione del pulsante di alimentazione' controlla li

      Elimina
  4. ciao a tutti ! io vorrei farlo con il notebook sony vaio già ho tutto arduino mega, il relè dorrei solo saldare i fili al pulsante power e non mi vorrei sbagliare, chi mi da una mano ?!!??!?!? sono disperato ho gia aperto il pc in 2

    RispondiElimina