<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wake On Lan Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/wake-on-lan/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/wake-on-lan/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 16 Jul 2012 07:17:59 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>Wake On Lan Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/wake-on-lan/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Wake on lan accendere il computer con Arduino Ethernet</title>
		<link>https://logicaprogrammabile.it/wol-accendere-computer-arduino-wake-on-lan/</link>
					<comments>https://logicaprogrammabile.it/wol-accendere-computer-arduino-wake-on-lan/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Sun, 15 Jul 2012 11:00:11 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Magic Packet]]></category>
		<category><![CDATA[Wake On Lan]]></category>
		<category><![CDATA[WOL]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=2904</guid>

					<description><![CDATA[<p>WOL come accendere un computer con Arduino Con alcune righe di codice possiamo utilizzare la funzione wake on lan disponibile in tutti i computer per poterli accendere inviando un particolare pacchetto di dati attraverso la rete lan (magic packet). Questa caratteristica abbinata a una scheda...</p>
<p>The post <a href="https://logicaprogrammabile.it/wol-accendere-computer-arduino-wake-on-lan/">Wake on lan accendere il computer con Arduino Ethernet</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>WOL come accendere un computer con Arduino</h3>
<p>Con alcune righe di codice possiamo utilizzare la funzione <a href="http://en.wikipedia.org/wiki/Wake-on-LAN" target="_blank">wake on lan</a> disponibile in tutti i computer per poterli accendere inviando un particolare pacchetto di dati attraverso la rete lan (magic packet).<br />
Questa caratteristica abbinata a una scheda <strong>Arduino Ethernet</strong> (o con <strong>ethernet shield</strong>) può risultare utile in moltissimi casi come ad esempio, l&#8217;accensione programmata o l&#8217;accensione simultanea di gruppi di computer.</p>
<p>Permettere alla board di avviare il computer mi da la possibilità di espandere il campo di applicazione, soprattutto nel caso in cui si ha la possibilità di utilizzare delle piccole schede madri come le nano-itx per realizzare applicazioni anche complesse.</p>
<p>Solitamente la funzione wol è disabilitata, per attivarla bisogna accedere al bios del computer e navigare nei menu fino ad abilitare il Wake on lan. Dovete consultare il manuale della vostra scheda madre perché ogni modello a la sua voce specifica.</p>
<p>Ora è necessario conoscere il MAC address della scheda di rete montata sulla mainboard. Dopo aver avviato il sistema operativo (Windows nel mio caso) aprite una finestra prompt dei comandi (Start-&gt;Esegui-&gt;cmd.exe) e digitate il seguente commando</p>
<p><span id="more-2904"></span></p>
<p style="text-align: center;"><strong>ipconfig /all</strong></p>
<p>verranno elencate una serie di parametri tra cui la voce &#8220;Indirizzo fisico&#8221; composta da sei byte esadecimali. Annotate questi valori.</p>
<p>La composizione del <strong>magic packet</strong> che avvia il pc, rispetta una particolare sintassi, infatti è composto da 102 byte dove i primi 6 vengono settati al valore 0xFF e i successivi vengono settati con l&#8217;indirizzo fisico (mac address) ripetendolo per 16 volte</p>
<p><a href="https://logicaprogrammabile.it/wol-accendere-computer-arduino-wake-on-lan/broadcast/" rel="attachment wp-att-2910"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-2910" title="broadcast WOL" src="https://logicaprogrammabile.it/wp-content/uploads/2012/07/broadcast.png" alt="wake on lan magic packet" width="535" height="223" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/07/broadcast.png 535w, https://logicaprogrammabile.it/wp-content/uploads/2012/07/broadcast-300x125.png 300w" sizes="(max-width: 535px) 100vw, 535px" /></a></p>
<p>il protocollo utilizzato per l&#8217;instradamento è quello UDP, sulla porta 7 oppure 9.</p>
<p>Il codice seguente è ricco di commenti che descrivono bene il funzionamento del sistema.</p>
<p>[c]<br />
#include &lt;SPI.h&gt;<br />
#include &lt;Ethernet.h&gt;<br />
#include &lt;EthernetUdp.h&gt;</p>
<p>//Configurazione Arduino Ethernet<br />
byte arduino_MAC[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };<br />
byte arduino_IP[] = { 192, 168, 0, 250 };</p>
<p>//Porta UDP locale<br />
int portaLocale = 7;</p>
<p>//Indirizzo broadcast della rete locale<br />
byte broadCastIp[] = { 192, 168, 0, 255 };<br />
//Mac address della scheda lan del pc da avviare<br />
byte remote_MAC_ADD[] = { 0x00, 0x0D, 0x9D, 0xD8, 0x80, 0xC8 };<br />
//Porta UDP WOL<br />
int wolPort = 9;</p>
<p>//Creao un oggetto EthernetUDP<br />
EthernetUDP Udp;</p>
<p>void setup()<br />
{<br />
  //init modulo ethernet WIZ5100<br />
  Ethernet.begin( arduino_MAC, arduino_IP);</p>
<p>  //init oggetto EthernetUDO<br />
  Udp.begin(portaLocale);</p>
<p>  //definisco un pin in input per accendere il pc<br />
  //quando richiesto<br />
  pinMode(3, INPUT);</p>
<p>}</p>
<p>void loop()<br />
{<br />
  //controllo il pin3<br />
  //se è presente un livello logico alto invio<br />
  //il magic Packet<br />
  if(digitalRead(3) == HIGH)<br />
  {<br />
    inviaMagicPacket();<br />
  }<br />
}</p>
<p>//funzione per la creazione e l&#8217;invio<br />
//del magic packet<br />
void inviaMagicPacket()<br />
{<br />
  //definisco un array da 102 byte<br />
  byte magicPacket[102];<br />
  //variabili per i cicli<br />
  int Ciclo = 0, CicloMacAdd = 0, IndiceArray = 0;</p>
<p>  for( Ciclo = 0; Ciclo &lt; 6; Ciclo++)<br />
  {<br />
    //i primi 6 byte dell&#8217;array sono settati al valore 0xFF<br />
    magicPacket[IndiceArray] = 0xFF;<br />
    //incremento l&#8217;indice dell&#8217;array<br />
    IndiceArray++;<br />
  }</p>
<p>  //eseguo 16 cicli per memorizzare il mac address del pc<br />
  //da avviare<br />
  for( Ciclo = 0; Ciclo &lt; 16; Ciclo++ )<br />
  {<br />
    //eseguo un ciclo per memorizzare i 6 byte del<br />
    //mac address<br />
    for( CicloMacAdd = 0; CicloMacAdd &lt; 6; CicloMacAdd++)<br />
    {<br />
      magicPacket[IndiceArray] = remote_MAC_ADD[CicloMacAdd];<br />
      //incremento l&#8217;indice dell&#8217;array<br />
      IndiceArray++;<br />
    }<br />
  }</p>
<p>  //spedisco il magic packet in brodcast sulla porta prescelta<br />
  Udp.beginPacket(broadCastIp, wolPort);<br />
  Udp.write(magicPacket, sizeof magicPacket);<br />
  Udp.endPacket();</p>
<p>}</p>
<p>[/c]</p>
<p>Mentre il circuito elettrico è il seguente</p>
<p><a href="https://logicaprogrammabile.it/wol-accendere-computer-arduino-wake-on-lan/wol/" rel="attachment wp-att-2918"><img decoding="async" class="aligncenter size-full wp-image-2918" title="WOL" src="https://logicaprogrammabile.it/wp-content/uploads/2012/07/WOL.gif" alt="Wake on lan" width="325" height="299" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/07/WOL.gif 325w, https://logicaprogrammabile.it/wp-content/uploads/2012/07/WOL-300x276.gif 300w" sizes="(max-width: 325px) 100vw, 325px" /></a></p>
<p>Quando forniamo alimentazione al pin3, Arduino invierà, tramite il modulo ethernet, il magic packet producendo l&#8217;accensione del pc.</p>
<p>The post <a href="https://logicaprogrammabile.it/wol-accendere-computer-arduino-wake-on-lan/">Wake on lan accendere il computer con Arduino Ethernet</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/wol-accendere-computer-arduino-wake-on-lan/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
