<?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>blog di sayIT</title>
	<atom:link href="http://blog.sayit.ch/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sayit.ch</link>
	<description>Il mondo visto da una società di consulenza informatica</description>
	<lastBuildDate>Thu, 19 Apr 2012 08:50:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Domotica con Arduino e Android</title>
		<link>http://www.gaspartorriero.it/2012/04/domotica-con-arduino-e-android/</link>
		<comments>http://www.gaspartorriero.it/2012/04/domotica-con-arduino-e-android/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 16:02:46 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Arduino]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4195</guid>
		<description><![CDATA[Il fine settimana è dedicato fisso alle meraviglie di Arduino: oggi ho trovato Domotic Home, un sito molto interessante che ti permette di controllare facilmente un Arduino connesso a internet (con lo shield Ethernet o con quello WiFi) in due modi: via una interfaccia web via una app gratuita di Android (wow!) Una volta registrato sul [...] <a href="http://www.gaspartorriero.it/2012/04/domotica-con-arduino-e-android/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p>Il fine settimana è dedicato fisso alle meraviglie di Arduino: oggi ho trovato <a href="http://www.domotichome.net/welcomes">Domotic Home</a>, un sito molto interessante che ti permette di controllare facilmente un Arduino connesso a internet (con lo shield Ethernet o con quello WiFi) in due modi:</p>
<ul>
<li>via una interfaccia web</li>
<li>via una app gratuita di Android (wow!)</li>
</ul>
<p>Una volta registrato sul sito, inserisci la configurazione IP del tuo Arduino, gli dici quali pin sono collegati a cosa, e il sito ti restituisce il codice semi-funzionante, che vanno corrette alcune chiamate che sono cambiate nella versione 1.0.</p>
<p>Mi si aprono mondi.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2002/04/sono-io/" rel="bookmark" class="crp_title">Sono io!</a></li><li><a href="http://www.gaspartorriero.it/2012/01/domotica-spicciola-con-arduino/" rel="bookmark" class="crp_title">Domotica spicciola con Arduino</a></li><li><a href="http://www.gaspartorriero.it/2012/04/il-mio-arduino-e-wifi/" rel="bookmark" class="crp_title">Il mio Arduino è WiFi</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/04/domotica-con-arduino-e-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il mio Arduino è WiFi</title>
		<link>http://www.gaspartorriero.it/2012/04/il-mio-arduino-e-wifi/</link>
		<comments>http://www.gaspartorriero.it/2012/04/il-mio-arduino-e-wifi/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 17:40:43 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Arduino]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4169</guid>
		<description><![CDATA[Continua la saga di Gaspar Torriero gone Arduino: l&#8217;ultimo capitolo si intitola &#8220;Il WiFi funziona, finalmente&#8221;, e non è stato semplice. Prima di tutto ho dovuto saldare i piedini della scheda, ed è stata la mia prima volta con in mano un saldatore. Poi ho cominciato le mie prove, e non funzionava niente: dopo molto [...] <a href="http://www.gaspartorriero.it/2012/04/il-mio-arduino-e-wifi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.gaspartorriero.it/wp-content/uploads/2012/04/IMG630.jpg"><img class="alignnone size-full wp-image-4170" title="IMG630" src="http://www.gaspartorriero.it/wp-content/uploads/2012/04/IMG630.jpg" alt="" width="500" height="375" /></a></p>
<p>Continua la saga di <em>Gaspar Torriero gone Arduino</em>: l&#8217;ultimo capitolo si intitola &#8220;Il WiFi funziona, finalmente&#8221;, e non è stato semplice.</p>
<p>Prima di tutto ho dovuto saldare i piedini della scheda, ed è stata la mia prima volta con in mano un saldatore. Poi ho cominciato le mie prove, e non funzionava <em>niente</em>: dopo molto scartabellare tra forum e blog, ha finalmente trovato una libreria che funziona con il modulo WiFi e la versione 1.0 di Arduino (per la cronaca, è <a href="https://github.com/jmr13031/WiFly-Shield">questa</a>), dato che quella fornita dal fabbricante <a href="https://www.sparkfun.com/products/9954">SparkFun</a> non è aggiornata.</p>
<p>Insomma, sono a buon punto e il mio progetto <a href="http://www.gaspartorriero.it/2012/02/arduino-fammi-il-caffe-v0-1/">Arduino, fammi il caffè</a> è a un passo dalla realizzazione. Nel frattempo ho visto che nel reparto elettricità dell&#8217;Esselunga si vende un temporizzatore per apparecchi elettrici a meno di 10 €.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2012/04/domotica-con-arduino-e-android/" rel="bookmark" class="crp_title">Domotica con Arduino e Android</a></li><li><a href="http://www.gaspartorriero.it/2011/09/wifi-gratis-in-centro-a-como/" rel="bookmark" class="crp_title">WiFi gratis in centro a Como</a></li><li><a href="http://www.gaspartorriero.it/2003/04/wifi-gratis-a-milano/" rel="bookmark" class="crp_title">WiFi gratis a Milano</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/04/il-mio-arduino-e-wifi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generatore automatico di previsioni economiche</title>
		<link>http://www.gaspartorriero.it/2012/03/generatore-automatico-di-previsioni-economiche/</link>
		<comments>http://www.gaspartorriero.it/2012/03/generatore-automatico-di-previsioni-economiche/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 17:04:56 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Economia]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Stupidate]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4148</guid>
		<description><![CDATA[Nel caso tu abbia bisogno di prevedere l&#8217;andamento futuro dello spread, la procedura è la seguente: scarica e apri questo file di Excel 2010 vai al foglio &#8220;Lo Spread &#8211; il grafico&#8221; premi il tasto funzione F9 per aggiornare i dati fino a quando sei contento del risultato stampa il grafico e presentalo come il [...] <a href="http://www.gaspartorriero.it/2012/03/generatore-automatico-di-previsioni-economiche/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p><a title="LoSpread by gaspartorriero, on Flickr" href="http://www.flickr.com/photos/gaspart/6851056450/"><img src="https://farm8.staticflickr.com/7056/6851056450_06c478e194.jpg" alt="LoSpread" width="500" height="323" /></a><br />
<a title="azioni by gaspartorriero, on Flickr" href="http://www.flickr.com/photos/gaspart/6851056642/"><img src="https://farm7.staticflickr.com/6234/6851056642_42f5e5ff08.jpg" alt="azioni" width="500" height="326" /></a></p>
<p>Nel caso tu abbia bisogno di prevedere l&#8217;andamento futuro dello spread, la procedura è la seguente:</p>
<ol>
<li>scarica e apri <a title="la sofisticata analisi econometrica" href="http://www.gaspartorriero.it/Excel/testa_croce.xlsx">questo file</a> di Excel 2010</li>
<li>vai al foglio &#8220;Lo Spread &#8211; il grafico&#8221;</li>
<li>premi il tasto funzione F9 per aggiornare i dati fino a quando sei contento del risultato</li>
<li>stampa il grafico e presentalo come il frutto di complesse analisi econometriche.</li>
</ol>
<p>Enjoy!</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2005/11/blog-e-diritto-di-replica/" rel="bookmark" class="crp_title">Blog e Diritto di replica</a></li><li><a href="http://www.gaspartorriero.it/2006/04/indizi-consistenti/" rel="bookmark" class="crp_title">Indizi consistenti</a></li><li><a href="http://www.gaspartorriero.it/2010/01/previsioni-per-domani/" rel="bookmark" class="crp_title">Previsioni per domani</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/03/generatore-automatico-di-previsioni-economiche/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino, stai fresco!</title>
		<link>http://www.gaspartorriero.it/2012/03/arduino-stai-fresco/</link>
		<comments>http://www.gaspartorriero.it/2012/03/arduino-stai-fresco/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 11:06:07 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4138</guid>
		<description><![CDATA[Il caldo è ormai dietro l&#8217;angolo e mi troverà pronto: ho collegato all&#8217;Arduino un ventilatore e l&#8217;ho programmato perché si accenda da solo oltre una certa temperatura. Ho aggiunto anche una luce che cambia colore a seconda della temperatura rilevata. Ingedienti: Breadboard Ventilatore Arduino 2009 Sensore temperatura Relè Led RGB tipo anodo comune Connettori assortiti [...] <a href="http://www.gaspartorriero.it/2012/03/arduino-stai-fresco/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.gaspartorriero.it/wp-content/uploads/2012/03/ventiduino.jpg"><img class="alignnone size-full wp-image-4139" title="ventiduino" src="http://www.gaspartorriero.it/wp-content/uploads/2012/03/ventiduino.jpg" alt="" width="500" height="500" /></a></p>
<p>Il caldo è ormai dietro l&#8217;angolo e mi troverà pronto: ho collegato all&#8217;Arduino un ventilatore e l&#8217;ho programmato perché si accenda da solo oltre una certa temperatura. Ho aggiunto anche una luce che cambia colore a seconda della temperatura rilevata. Ingedienti:</p>
<ul>
<li>Breadboard</li>
<li>Ventilatore</li>
<li>Arduino 2009</li>
<li>Sensore temperatura</li>
<li>Relè</li>
<li>Led RGB tipo anodo comune</li>
<li>Connettori assortiti</li>
</ul>
<p>Prossimo passo: impostare la temperatura di accensione da una interfaccia web, e regolare la luce del led a seconda della luce ambiente.</p>
<p>Se è vero che <em>code is poetry</em>, quanto segue dopo il salto si colloca abbastanza sotto a capolavori come &#8220;La Vispa Teresa&#8221;. Sicuramente esistono altri dieci modi più eleganti per gestire le combinazioni di colori da associare alle diverse temperature, ma la mia ignoranza enciclopedica per ora non mi permette altro.</p>
<p>Se puoi e vuoi illuminarmi, ne sarò felice.</p>
<p><span id="more-4138"></span></p>
<pre> <span style="color: #cc6600;">int</span> greenPin = 5;
 <span style="color: #cc6600;">int</span> redPin = 6;
 <span style="color: #cc6600;">int</span> bluePin = 4;
 <span style="color: #cc6600;">int</span> tPin = A2; <span style="color: #7e7e7e;">// Temperature sensor pin</span>
 <span style="color: #cc6600;">int</span> lPin = A1; <span style="color: #7e7e7e;">// Light sensor pin</span>
 <span style="color: #cc6600;">int</span> temp; <span style="color: #7e7e7e;">// Temperature in C°</span>
 <span style="color: #cc6600;">int</span> outPin = 9; <span style="color: #7e7e7e;">// fan relais pin </span>
 <span style="color: #cc6600;">int</span> luce; <span style="color: #7e7e7e;">// light in Lux; not used</span>

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>setup</strong></span>()
{
  <span style="color: #cc6600;">pinMode</span>(redPin, <span style="color: #006699;">OUTPUT</span>);
  <span style="color: #cc6600;">pinMode</span>(greenPin, <span style="color: #006699;">OUTPUT</span>);
  <span style="color: #cc6600;">pinMode</span>(bluePin, <span style="color: #006699;">OUTPUT</span>);
  <span style="color: #cc6600;">pinMode</span>(outPin, <span style="color: #006699;">OUTPUT</span>);

  <span style="color: #cc6600;">analogWrite</span>(redPin, 255);
  <span style="color: #cc6600;">analogWrite</span>(greenPin, 255);
  <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
<span style="color: #7e7e7e;">//  Serial.begin(9600);</span>

}

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>loop</strong></span>()
{
  <span style="color: #7e7e7e;">// from V to °C</span>
  temp = ( 5.0 * <span style="color: #cc6600;">analogRead</span>(tPin) * 100.0) / 1024.0;
  <span style="color: #7e7e7e;">// from V to Lux, not used</span>
  luce = (<span style="color: #cc6600;">analogRead</span>(lPin) * 10000.0) / 1024.0;

  <span style="color: #cc6600;">if</span>(temp &lt;= 18) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 0);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,255);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 19) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 51);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,255);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 20) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 102);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,255);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 21) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 153);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,153);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 22) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 204);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,102);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 23) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,51);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 24) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,0);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 25) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,51);
    <span style="color: #cc6600;">analogWrite</span>(redPin,255);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 26) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,102);
    <span style="color: #cc6600;">analogWrite</span>(redPin,204);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 27) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,153);
    <span style="color: #cc6600;">analogWrite</span>(redPin,153);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 28) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,204);
    <span style="color: #cc6600;">analogWrite</span>(redPin,102);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp == 29) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,255);
    <span style="color: #cc6600;">analogWrite</span>(redPin,51);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(temp &gt;= 30) {
    <span style="color: #cc6600;">analogWrite</span>(bluePin, 255);
    <span style="color: #cc6600;">analogWrite</span>(greenPin,255);
    <span style="color: #cc6600;">analogWrite</span>(redPin,0);
  }
<span style="color: #cc6600;">if</span>(temp &gt; 27) {
  <span style="color: #cc6600;">digitalWrite</span>(outPin, <span style="color: #006699;">HIGH</span>);
  }
  <span style="color: #cc6600;">else</span> {
    <span style="color: #cc6600;">digitalWrite</span>(outPin, <span style="color: #006699;">LOW</span>);
  }

<span style="color: #cc6600;">delay</span>(10000);
<span style="color: #7e7e7e;">//  Serial.println(temp);</span>
<span style="color: #7e7e7e;">//  Serial.println();</span>

}</pre>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2002/06/come-enron-piu-di-enron/" rel="bookmark" class="crp_title">Come Enron, più di Enron&#8230;</a></li><li><a href="http://www.gaspartorriero.it/2012/04/il-mio-arduino-e-wifi/" rel="bookmark" class="crp_title">Il mio Arduino è WiFi</a></li><li><a href="http://www.gaspartorriero.it/2009/08/questa-e-una-notizia-a-pagamento/" rel="bookmark" class="crp_title">Questa è una notizia a pagamento</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/03/arduino-stai-fresco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bob Frankston: perché gli oggetti non sono connessi a internet?</title>
		<link>http://www.gaspartorriero.it/2012/02/bob-frankston-perche-gli-oggetti-non-sono-connessi-a-internet/</link>
		<comments>http://www.gaspartorriero.it/2012/02/bob-frankston-perche-gli-oggetti-non-sono-connessi-a-internet/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 19:57:40 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[La Rete Stupida]]></category>
		<category><![CDATA[Social Web]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Telefonia]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4093</guid>
		<description><![CDATA[L&#8217;illuminante post di ieri di Bob Frankston risuona molto forte con altre idee che mi girano in testa da tempo. La mia rete domestica a 1Gbps include i vicini di pianerottolo, ma potrebbe tranquillamente includere l&#8217;intero palazzo, che a sua volta potrebbe tranquillamente connettersi al palazzo di fianco, che a sua volta&#8230; quote of note: [...] <a href="http://www.gaspartorriero.it/2012/02/bob-frankston-perche-gli-oggetti-non-sono-connessi-a-internet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p>L&#8217;illuminante <a href="http://www.frankston.com/public/?name=DLInternetDIY">post</a> di ieri di Bob Frankston risuona molto forte con <a href="http://www.gaspartorriero.it/2012/01/arduino-a-lugano/">altre idee</a> che mi girano in testa da tempo. La mia rete domestica a 1Gbps include i vicini di pianerottolo, ma potrebbe tranquillamente includere l&#8217;intero palazzo, che a sua volta potrebbe tranquillamente connettersi al palazzo di fianco, che a sua volta&#8230; quote of note:</p>
<blockquote><p>I should be able to ask a simple question – why are we trying to make our ability to communicate a profit center instead of a community resource? We can act locally to own the infrastructure within our buildings and among neighbors. This is all doable using current protocols (despite their limitations) and, in fact, there are buildings where connectivity is funded as a common facility. In my talk I’m going to speak about how neighbors can work together to share connectivity in a building or among buildings.</p></blockquote>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2012/01/arduino-a-lugano/" rel="bookmark" class="crp_title">Arduino a Lugano</a></li><li><a href="http://www.gaspartorriero.it/2003/10/cambiamenti/" rel="bookmark" class="crp_title">Cambiamenti</a></li><li><a href="http://www.gaspartorriero.it/2005/01/content-is-not-king/" rel="bookmark" class="crp_title">Content is Not King</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/02/bob-frankston-perche-gli-oggetti-non-sono-connessi-a-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino, fammi il caffè! V0.1</title>
		<link>http://www.gaspartorriero.it/2012/02/arduino-fammi-il-caffe-v0-1/</link>
		<comments>http://www.gaspartorriero.it/2012/02/arduino-fammi-il-caffe-v0-1/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 13:01:54 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4081</guid>
		<description><![CDATA[Ho raggiunto i primi due obiettivi che mi ero posto con l&#8217;Arduino, ovvero prendere l&#8217;ora da internet tramite il Net Time Protocol accendere la macchina del caffè all&#8217;ora prefissata Ma non è finita: adesso bisogna (bisogna!) che l&#8217;ora di accensione venga impostata via web, non inserita banalmente a mano nel codice. Per fare questo occorre [...] <a href="http://www.gaspartorriero.it/2012/02/arduino-fammi-il-caffe-v0-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p>Ho raggiunto i primi due obiettivi che mi ero posto con l&#8217;Arduino, ovvero</p>
<ol>
<li>prendere l&#8217;ora da internet tramite il Net Time Protocol</li>
<li>accendere la macchina del caffè all&#8217;ora prefissata</li>
</ol>
<p>Ma non è finita: adesso bisogna (<em>bisogna!</em>) che l&#8217;ora di accensione venga impostata via web, non inserita banalmente a mano nel codice. Per fare questo occorre che sia contemporaneamente attivo il cliente NTP e il server web, e grosse nubi si addensano sul mio orizzonte di entusiasta ignorante.</p>
<p>Inoltre non è bello che l&#8217;Arduino debba autisticamente chiedere l&#8217;ora a NTP ogni minuto: meglio sarebbe se chiedesse solo una volta al giorno per sincronizzare con un suo orologio interno.</p>
<p>Come dire che ho le sere impegnate fino a primavera. Il codice fino a questo punto, dopo il salto: come sempre, eventuali commenti, critiche e suggerimenti sono molto bene accetti.</p>
<p><span id="more-4081"></span></p>
<pre><span style="color: #7e7e7e;">/*</span>
<span style="color: #7e7e7e;"> Arduino, fammi il caffè! V.0.1</span>
<span style="color: #7e7e7e;"> </span>
<span style="color: #7e7e7e;"> created 4 Sep 2010 </span>
<span style="color: #7e7e7e;"> by Michael Margolis</span>
<span style="color: #7e7e7e;"> modified 17 Sep 2010</span>
<span style="color: #7e7e7e;"> by Tom Igoe</span>
<span style="color: #7e7e7e;"> modified 18 Feb 2012</span>
<span style="color: #7e7e7e;"> by Gaspar Torriero</span>
<span style="color: #7e7e7e;"> </span>
<span style="color: #7e7e7e;"> This code is in the public domain.</span>

<span style="color: #7e7e7e;"> */</span>

#include &lt;<span style="color: #cc6600;">SPI</span>.h&gt;
#include &lt;<span style="color: #cc6600;">Ethernet</span>.h&gt;
#include &lt;EthernetUdp.h&gt;

<span style="color: #cc6600;">int</span> cHH; <span style="color: #7e7e7e;">// current hour</span>
<span style="color: #cc6600;">int</span> cMM; <span style="color: #7e7e7e;">// current minute</span>
<span style="color: #cc6600;">int</span> cSS; <span style="color: #7e7e7e;">// current second</span>
<span style="color: #cc6600;">int</span> outPin = 8; <span style="color: #7e7e7e;">// connected to coffee machine via relè</span>

<span style="color: #7e7e7e;">// Enter a MAC address for your controller below</span>
<span style="color: #cc6600;">byte</span> mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

<span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">int</span> localPort = 8888;      <span style="color: #7e7e7e;">// local port to listen for UDP packets</span>

<span style="color: #cc6600;">IPAddress</span> timeServer(192, 43, 244, 18); <span style="color: #7e7e7e;">// time.nist.gov NTP server</span>

const <span style="color: #cc6600;">int</span> NTP_PACKET_SIZE= 48; <span style="color: #7e7e7e;">// NTP time stamp is in the first 48 bytes of the message</span>

<span style="color: #cc6600;">byte</span> packetBuffer[ NTP_PACKET_SIZE]; <span style="color: #7e7e7e;">//buffer to hold incoming and outgoing packets </span>

<span style="color: #7e7e7e;">// A UDP instance to let us send and receive packets over UDP</span>
EthernetUDP Udp;

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>setup</strong></span>()
{
  <span style="color: #7e7e7e;">// Serial.begin(9600); // uncomment for testing</span>
  <span style="color: #cc6600;">digitalWrite</span>(outPin, <span style="color: #006699;">LOW</span>);

  <span style="color: #7e7e7e;">// start Ethernet and UDP</span>
  <span style="color: #cc6600;">if</span> (<span style="color: #cc6600;">Ethernet</span>.<span style="color: #cc6600;">begin</span>(mac) == 0) {
    <span style="color: #7e7e7e;">// Serial.println("Failed to configure Ethernet using DHCP"); // uncomment for testing</span>
    <span style="color: #7e7e7e;">// no point in carrying on, so do nothing forevermore:</span>
    <span style="color: #cc6600;">for</span>(;;)
      ;
  }
  Udp.<span style="color: #cc6600;">begin</span>(localPort);
}

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>loop</strong></span>()
{
  sendNTPpacket(timeServer); <span style="color: #7e7e7e;">// send an NTP packet to a time server</span>

    <span style="color: #7e7e7e;">// wait to see if a reply is available</span>
  <span style="color: #cc6600;">delay</span>(1000);
  <span style="color: #cc6600;">if</span> ( Udp.<span style="color: #cc6600;">parsePacket</span>() ) {
    <span style="color: #7e7e7e;">// We've received a packet, read the data from it</span>
    Udp.<span style="color: #cc6600;">read</span>(packetBuffer,NTP_PACKET_SIZE);  <span style="color: #7e7e7e;">// read the packet into the buffer</span>

    <span style="color: #7e7e7e;">//the timestamp starts at byte 40 of the received packet and is four bytes,</span>
    <span style="color: #7e7e7e;">// or two words, long. First, esxtract the two words:</span>

    <span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">long</span> highWord = <span style="color: #cc6600;">word</span>(packetBuffer[40], packetBuffer[41]);
    <span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">long</span> lowWord = <span style="color: #cc6600;">word</span>(packetBuffer[42], packetBuffer[43]);
    <span style="color: #7e7e7e;">// combine the four bytes (two words) into a long integer</span>
    <span style="color: #7e7e7e;">// this is NTP time (seconds since Jan 1 1900):</span>
    <span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">long</span> secsSince1900 = highWord &lt;&lt; 16 | lowWord;  

    <span style="color: #7e7e7e;">// Unix time starts on Jan 1 1970. In seconds, that's 2208988800:</span>
    const <span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">long</span> seventyYears = 2208988800UL;
    <span style="color: #7e7e7e;">// subtract seventy years:</span>
    <span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">long</span> epoch = secsSince1900 - seventyYears;  

    <span style="color: #7e7e7e;">// print the hour, minute and second:</span>
    cHH = (epoch  % 86400L) / 3600 + 1;
    cMM = (epoch  % 3600) / 60;
    cSS = epoch %60;

    <span style="color: #7e7e7e;">/* uncomment for testing</span>
<span style="color: #7e7e7e;">    Serial.print("Local time is ");</span>
<span style="color: #7e7e7e;">    Serial.print(cHH);</span>
<span style="color: #7e7e7e;">    Serial.print(" hours, ");</span>
<span style="color: #7e7e7e;">    Serial.print(cMM);</span>
<span style="color: #7e7e7e;">    Serial.print(" minutes, and ");</span>
<span style="color: #7e7e7e;">    Serial.print(cSS);</span>
<span style="color: #7e7e7e;">    Serial.println(" seconds.");</span>
<span style="color: #7e7e7e;">    */</span>

    <span style="color: #7e7e7e;">// Turns on the coffee machine</span>
    <span style="color: #7e7e7e;">// at a fixed time.</span>
    <span style="color: #7e7e7e;">// Next goal: set time via web.</span>
    <span style="color: #cc6600;">if</span>((cHH == 6) &amp;&amp; (cMM &gt; 44)) {
      <span style="color: #cc6600;">digitalWrite</span>(outPin, <span style="color: #006699;">HIGH</span>);
    }
  }
  <span style="color: #7e7e7e;">// wait 60 seconds before asking for the time again</span>
  <span style="color: #7e7e7e;">// Next goal: let Arduino Keep the time</span>
  <span style="color: #7e7e7e;">// and synchronize daily.</span>

  <span style="color: #cc6600;">delay</span>(60000); 

}

<span style="color: #7e7e7e;">// send an NTP request to the time server at the given address </span>
<span style="color: #cc6600;">unsigned</span> <span style="color: #cc6600;">long</span> sendNTPpacket(<span style="color: #cc6600;">IPAddress</span>&amp; address)
{
  <span style="color: #7e7e7e;">// set all bytes in the buffer to 0</span>
  memset(packetBuffer, 0, NTP_PACKET_SIZE); 
  <span style="color: #7e7e7e;">// Initialize values needed to form NTP request</span>
  <span style="color: #7e7e7e;">// (see URL above for details on the packets)</span>
  packetBuffer[0] = 0b11100011;   <span style="color: #7e7e7e;">// LI, Version, Mode</span>
  packetBuffer[1] = 0;     <span style="color: #7e7e7e;">// Stratum, or type of clock</span>
  packetBuffer[2] = 6;     <span style="color: #7e7e7e;">// Polling Interval</span>
  packetBuffer[3] = 0xEC;  <span style="color: #7e7e7e;">// Peer Clock Precision</span>
  <span style="color: #7e7e7e;">// 8 bytes of zero for Root Delay &amp; Root Dispersion</span>
  packetBuffer[12]  = 49; 
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;

  <span style="color: #7e7e7e;">// all NTP fields have been given values, now</span>
  <span style="color: #7e7e7e;">// you can send a packet requesting a timestamp: </span>
  Udp.<span style="color: #cc6600;">beginPacket</span>(address, 123); <span style="color: #7e7e7e;">//NTP requests are to port 123</span>
  Udp.<span style="color: #cc6600;">write</span>(packetBuffer,NTP_PACKET_SIZE);
  Udp.<span style="color: #cc6600;">endPacket</span>();
}</pre>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2012/03/arduino-stai-fresco/" rel="bookmark" class="crp_title">Arduino, stai fresco!</a></li><li><a href="http://www.gaspartorriero.it/2012/01/la-mia-lampadina-twitta/" rel="bookmark" class="crp_title">La mia lampadina twitta</a></li><li><a href="http://www.gaspartorriero.it/2012/01/domotica-spicciola-con-arduino/" rel="bookmark" class="crp_title">Domotica spicciola con Arduino</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/02/arduino-fammi-il-caffe-v0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino server: sempre meglio</title>
		<link>http://www.gaspartorriero.it/2012/02/arduino-server-sempre-meglio/</link>
		<comments>http://www.gaspartorriero.it/2012/02/arduino-server-sempre-meglio/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 21:13:16 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Thingsourcing]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4066</guid>
		<description><![CDATA[Dal mio nuovo server su Arduino (che lascerò attivo qualche giorno),  non solo puoi vedere lo stato delle mie luci e la temperatura di camera mia, ma puoi anche comandare tre pin che per ora sono collegati a tre led colorati, ma che domani potrei associare tramite relè a qualsiasi apparecchio elettrico. Tutto questo grazie [...] <a href="http://www.gaspartorriero.it/2012/02/arduino-server-sempre-meglio/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p>Dal mio nuovo <a title="Gaspar Torriero gone Arduino" href="http://arduinogaspar.no-ip.org">server su Arduino</a> (che lascerò attivo qualche giorno),  non solo puoi vedere lo stato delle mie luci e la temperatura di camera mia, ma puoi anche comandare tre pin che per ora sono collegati a tre led colorati, ma che domani potrei associare tramite relè a qualsiasi apparecchio elettrico.</p>
<p>Tutto questo grazie alla libreria <a href="http://code.google.com/p/webduino/">WebServer.h</a>, che aggiunge funzionalità molto interessati e facili da programmare anche per un ignorante come me (che si diverte come un bambino).</p>
<p>Come sempre, critiche consigli e suggerimenti sono bene accetti.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.gaspartorriero.it/wp-content/uploads/2012/02/ArduinoWebServer.jpg"><img class="size-full wp-image-4067 aligncenter" title="ArduinoWebServer" src="http://www.gaspartorriero.it/wp-content/uploads/2012/02/ArduinoWebServer.jpg" alt="" width="293" height="653" /></a></p>
<p>&nbsp;</p>
<p>Come sempre, il codice è dopo il salto.<span id="more-4066"></span></p>
<pre><span style="color: #7e7e7e;">/* Web_Demo.pde -- sample code for Webduino server library */</span>

<span style="color: #7e7e7e;">/*</span>
<span style="color: #7e7e7e;"> * To use this demo,  enter one of the following USLs into your browser.</span>
<span style="color: #7e7e7e;"> * Replace "host" with the IP address assigned to the Arduino.</span>
<span style="color: #7e7e7e;"> *</span>
<span style="color: #7e7e7e;"> * http://host/</span>
<span style="color: #7e7e7e;"> * http://host/json</span>
<span style="color: #7e7e7e;"> *</span>
<span style="color: #7e7e7e;"> * This URL brings up a display of the values READ on digital pins 0-9</span>
<span style="color: #7e7e7e;"> * and analog pins 0-5.  This is done with a call to defaultCmd.</span>
<span style="color: #7e7e7e;"> * </span>
<span style="color: #7e7e7e;"> * </span>
<span style="color: #7e7e7e;"> * http://host/form</span>
<span style="color: #7e7e7e;"> *</span>
<span style="color: #7e7e7e;"> * This URL also brings up a display of the values READ on digital pins 0-9</span>
<span style="color: #7e7e7e;"> * and analog pins 0-5.  But it's done as a form,  by the "formCmd" function,</span>
<span style="color: #7e7e7e;"> * and the digital pins are shown as radio buttons you can change.</span>
<span style="color: #7e7e7e;"> * When you click the "Submit" button,  it does a POST that sets the</span>
<span style="color: #7e7e7e;"> * digital pins,  re-reads them,  and re-displays the form.</span>
<span style="color: #7e7e7e;"> * </span>
<span style="color: #7e7e7e;"> */</span>

#include <span style="color: #006699;">"SPI.h"</span>
#include <span style="color: #006699;">"Ethernet.h"</span>
#include <span style="color: #006699;">"WebServer.h"</span>

<span style="color: #cc6600;">int</span> lPin = 1; <span style="color: #7e7e7e;">// Light sensor pin</span>
<span style="color: #cc6600;">int</span> tPin = 3; <span style="color: #7e7e7e;">// Temperature sensor pin</span>
<span style="color: #cc6600;">int</span> luce = 0; <span style="color: #7e7e7e;">// light in Lux</span>
<span style="color: #cc6600;">float</span> temp = 0.0; <span style="color: #7e7e7e;">// Temperature in C°</span>
<span style="color: #cc6600;">String</span> lstatus;

<span style="color: #7e7e7e;">// no-cost stream operator as described at </span>
<span style="color: #7e7e7e;">// http://sundial.org/arduino/?page_id=119</span>
template&lt;<span style="color: #cc6600;">class</span> T&gt;
inline Print &amp;operator &lt;&lt;(Print &amp;obj, T arg)
{ obj.<span style="color: #cc6600;">print</span>(arg); <span style="color: #cc6600;">return</span> obj; }

<span style="color: #7e7e7e;">// CHANGE THIS TO YOUR OWN UNIQUE VALUE</span>
<span style="color: #cc6600;">static</span> uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

<span style="color: #7e7e7e;">// CHANGE THIS TO MATCH YOUR HOST NETWORK</span>
<span style="color: #cc6600;">static</span> uint8_t ip[] = { 192, 168, XXX, XXX };

#define PREFIX <span style="color: #006699;">""</span>

<span style="color: #cc6600;">WebServer</span> webserver(PREFIX, 80);

<span style="color: #7e7e7e;">// commands are functions that get called by the webserver framework</span>
<span style="color: #7e7e7e;">// they can read any posted data from client, and they output to server</span>

<span style="color: #cc6600;">void</span> jsonCmd(<span style="color: #cc6600;">WebServer</span> &amp;server, <span style="color: #cc6600;">WebServer</span>::<span style="color: #cc6600;">ConnectionType</span> type, <span style="color: #cc6600;">char</span> *url_tail, bool tail_complete)
{
  <span style="color: #cc6600;">if</span> (type == <span style="color: #cc6600;">WebServer</span>::<span style="color: #cc6600;">POST</span>)
  {
    server.<span style="color: #cc6600;">httpFail</span>();
    <span style="color: #cc6600;">return</span>;
  }

  <span style="color: #7e7e7e;">//server.httpSuccess(false, "application/json");</span>
  server.<span style="color: #cc6600;">httpSuccess</span>(<span style="color: #006699;">"application/json"</span>);

  <span style="color: #cc6600;">if</span> (type == <span style="color: #cc6600;">WebServer</span>::<span style="color: #cc6600;">HEAD</span>)
    <span style="color: #cc6600;">return</span>;

  <span style="color: #cc6600;">int</span> i;
  server &lt;&lt; <span style="color: #006699;">"{ "</span>;
  <span style="color: #cc6600;">for</span> (i = 0; i &lt;= 9; ++i)
  {
    <span style="color: #7e7e7e;">// ignore the pins we use to talk to the Ethernet chip</span>
    <span style="color: #cc6600;">int</span> val = <span style="color: #cc6600;">digitalRead</span>(i);
    server &lt;&lt; <span style="color: #006699;">"\"d"</span> &lt;&lt; i &lt;&lt; <span style="color: #006699;">"\": "</span> &lt;&lt; val &lt;&lt; <span style="color: #006699;">", "</span>;
  }

  <span style="color: #cc6600;">for</span> (i = 0; i &lt;= 5; ++i)
  {
    <span style="color: #cc6600;">int</span> val = <span style="color: #cc6600;">analogRead</span>(i);
    server &lt;&lt; <span style="color: #006699;">"\"a"</span> &lt;&lt; i &lt;&lt; <span style="color: #006699;">"\": "</span> &lt;&lt; val;
    <span style="color: #cc6600;">if</span> (i != 5)
      server &lt;&lt; <span style="color: #006699;">", "</span>;
  }

  server &lt;&lt; <span style="color: #006699;">" }"</span>;
}

<span style="color: #cc6600;">void</span> outputPins(<span style="color: #cc6600;">WebServer</span> &amp;server, <span style="color: #cc6600;">WebServer</span>::<span style="color: #cc6600;">ConnectionType</span> type, bool addControls = <span style="color: #cc6600;">false</span>)
{
  <span style="color: #cc6600;">P</span>(htmlHead) =
    <span style="color: #006699;">"&lt;html&gt;"</span>
    <span style="color: #006699;">"&lt;head&gt;"</span>
    <span style="color: #006699;">"&lt;title&gt;Arduinogaspar Web Server&lt;/title&gt;"</span>
    <span style="color: #006699;">"&lt;style type=\"text/css\"&gt;"</span>
    <span style="color: #006699;">"BODY { font-family: sans-serif }"</span>
    <span style="color: #006699;">"H1 { font-size: 14pt; text-decoration: underline }"</span>
    <span style="color: #006699;">"P { font-size: 10pt; }"</span>
    <span style="color: #006699;">"&lt;/style&gt;"</span>
    <span style="color: #006699;">"&lt;/head&gt;"</span>
    <span style="color: #006699;">"&lt;body&gt;"</span>
    <span style="color: #006699;">"&lt;p&gt;Digital Pin 5: green light&lt;br&gt;"</span>
    <span style="color: #006699;">"Digital Pin 4: yellow light&lt;br&gt;"</span>
    <span style="color: #006699;">"Digital Pin 3: red light&lt;br&gt;"</span>
    <span style="color: #006699;">"Values can be changed from the /form page&lt;br&gt;"</span>
    <span style="color: #006699;">"and can be exported from the /json page.&lt;br&gt;"</span>
    <span style="color: #006699;">"&lt;/p&gt;"</span>;

  <span style="color: #cc6600;">int</span> i;
  server.<span style="color: #cc6600;">httpSuccess</span>();
  server.<span style="color: #cc6600;">printP</span>(htmlHead);

  <span style="color: #cc6600;">if</span> (addControls)
    server &lt;&lt; <span style="color: #006699;">"&lt;form action='"</span> PREFIX <span style="color: #006699;">"/form' method='post'&gt;"</span>;

  server &lt;&lt; <span style="color: #006699;">"&lt;h1&gt;Digital Pins&lt;/h1&gt;&lt;p&gt;"</span>;

  <span style="color: #cc6600;">for</span> (i = 0; i &lt;= 9; ++i)
  {
    <span style="color: #7e7e7e;">// ignore the pins we use to talk to the Ethernet chip</span>
    <span style="color: #cc6600;">int</span> val = <span style="color: #cc6600;">digitalRead</span>(i);
    server &lt;&lt; <span style="color: #006699;">"Digital "</span> &lt;&lt; i &lt;&lt; <span style="color: #006699;">": "</span>;
    <span style="color: #cc6600;">if</span> (addControls)
    {
      <span style="color: #cc6600;">char</span> pinName[4];
      pinName[0] = <span style="color: #006699;">'d'</span>;
      itoa(i, pinName + 1, 10);
      server.<span style="color: #cc6600;">radioButton</span>(pinName, <span style="color: #006699;">"1"</span>, <span style="color: #006699;">"On"</span>, val);
      server &lt;&lt; <span style="color: #006699;">" "</span>;
      server.<span style="color: #cc6600;">radioButton</span>(pinName, <span style="color: #006699;">"0"</span>, <span style="color: #006699;">"Off"</span>, !val);
    }
    <span style="color: #cc6600;">else</span>
      server &lt;&lt; (val ? <span style="color: #006699;">"HIGH"</span> : <span style="color: #006699;">"LOW"</span>);

    server &lt;&lt; <span style="color: #006699;">"&lt;br/&gt;"</span>;
  }

  server &lt;&lt; <span style="color: #006699;">"&lt;/p&gt;&lt;h1&gt;Analog Pins&lt;/h1&gt;&lt;p&gt;"</span>;
  <span style="color: #cc6600;">for</span> (i = 0; i &lt;= 5; ++i)
  {
    <span style="color: #cc6600;">int</span> val = <span style="color: #cc6600;">analogRead</span>(i);
    server &lt;&lt; <span style="color: #006699;">"Analog "</span> &lt;&lt; i &lt;&lt; <span style="color: #006699;">": "</span> &lt;&lt; val &lt;&lt; <span style="color: #006699;">"&lt;br/&gt;"</span>;
  }

  server &lt;&lt; <span style="color: #006699;">"&lt;/p&gt;"</span>;
  server &lt;&lt; <span style="color: #006699;">"Temperature:"</span> &lt;&lt; temp &lt;&lt; <span style="color: #006699;">"°C&lt;br/&gt;"</span>;
  server &lt;&lt; <span style="color: #006699;">"Light is "</span> &lt;&lt; lstatus &lt;&lt; <span style="color: #006699;">"&lt;/p&gt;"</span>;

  <span style="color: #cc6600;">if</span> (addControls)
    server &lt;&lt; <span style="color: #006699;">"&lt;input type='submit' value='Submit'/&gt;&lt;/form&gt;"</span>;

  server &lt;&lt; <span style="color: #006699;">"&lt;/body&gt;&lt;/html&gt;"</span>;
}

<span style="color: #cc6600;">void</span> formCmd(<span style="color: #cc6600;">WebServer</span> &amp;server, <span style="color: #cc6600;">WebServer</span>::<span style="color: #cc6600;">ConnectionType</span> type, <span style="color: #cc6600;">char</span> *url_tail, bool tail_complete)
{
  <span style="color: #cc6600;">if</span> (type == <span style="color: #cc6600;">WebServer</span>::<span style="color: #cc6600;">POST</span>)
  {
    bool repeat;
    <span style="color: #cc6600;">char</span> name[16], value[16];
    <span style="color: #cc6600;">do</span>
    {
      repeat = server.<span style="color: #cc6600;">readPOSTparam</span>(name, 16, value, 16);
      <span style="color: #cc6600;">if</span> (name[0] == <span style="color: #006699;">'d'</span>)
      {
        <span style="color: #cc6600;">int</span> pin = strtoul(name + 1, NULL, 10);
        <span style="color: #cc6600;">int</span> val = strtoul(value, NULL, 10);
        <span style="color: #cc6600;">digitalWrite</span>(pin, val);
      }
    } <span style="color: #cc6600;">while</span> (repeat);

    server.<span style="color: #cc6600;">httpSeeOther</span>(PREFIX <span style="color: #006699;">"/form"</span>);
  }
  <span style="color: #cc6600;">else</span>
    outputPins(server, type, <span style="color: #cc6600;">true</span>);
}

<span style="color: #cc6600;">void</span> defaultCmd(<span style="color: #cc6600;">WebServer</span> &amp;server, <span style="color: #cc6600;">WebServer</span>::<span style="color: #cc6600;">ConnectionType</span> type, <span style="color: #cc6600;">char</span> *url_tail, bool tail_complete)
{
  outputPins(server, type, <span style="color: #cc6600;">false</span>);
}

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>setup</strong></span>()
{
  <span style="color: #7e7e7e;">// set pins 0-8 for digital input</span>
  <span style="color: #cc6600;">for</span> (<span style="color: #cc6600;">int</span> i = 0; i &lt;= 9; ++i)
    <span style="color: #cc6600;">pinMode</span>(i, <span style="color: #006699;">INPUT</span>);
  <span style="color: #cc6600;">pinMode</span>(9, <span style="color: #006699;">OUTPUT</span>);

  <span style="color: #cc6600;">Ethernet</span>.<span style="color: #cc6600;">begin</span>(mac, ip);
  webserver.<span style="color: #cc6600;">begin</span>();

  webserver.<span style="color: #cc6600;">setDefaultCommand</span>(&amp;defaultCmd);
  webserver.<span style="color: #cc6600;">addCommand</span>(<span style="color: #006699;">"json"</span>, &amp;jsonCmd);
  webserver.<span style="color: #cc6600;">addCommand</span>(<span style="color: #006699;">"form"</span>, &amp;formCmd);
}

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>loop</strong></span>()
{
    temp = ( 5.0 * <span style="color: #cc6600;">analogRead</span>(tPin) * 100.0) / 1024.0; <span style="color: #7e7e7e;">// Conversione voltaggio sensore in temperatura</span>
    luce = (<span style="color: #cc6600;">analogRead</span>(lPin) * 10000.0) / 1024.0; <span style="color: #7e7e7e;">//Conversione voltaggio sensore in Lux</span>
    <span style="color: #cc6600;">if</span> (luce &lt; 201) {
      lstatus = <span style="color: #006699;">"OFF"</span>;
    }
    <span style="color: #cc6600;">else</span> {
      lstatus = <span style="color: #006699;">"ON"</span>;
    }

  <span style="color: #7e7e7e;">// process incoming connections one at a time forever</span>
  webserver.<span style="color: #cc6600;">processConnection</span>();

  <span style="color: #7e7e7e;">// if you wanted to do other work based on a connecton, it would go here</span>
}</pre>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2012/03/arduino-stai-fresco/" rel="bookmark" class="crp_title">Arduino, stai fresco!</a></li><li><a href="http://www.gaspartorriero.it/2012/01/la-mia-lampadina-twitta/" rel="bookmark" class="crp_title">La mia lampadina twitta</a></li><li><a href="http://www.gaspartorriero.it/2012/01/domotica-spicciola-con-arduino/" rel="bookmark" class="crp_title">Domotica spicciola con Arduino</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/02/arduino-server-sempre-meglio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino al pomodoro</title>
		<link>http://www.gaspartorriero.it/2012/02/arduino-al-pomodoro/</link>
		<comments>http://www.gaspartorriero.it/2012/02/arduino-al-pomodoro/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 14:44:31 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Thingsourcing]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4053</guid>
		<description><![CDATA[Per trasformare il mio Arduino in un conta-pomodori ho seguito le facili istruzioni di Mike Stok, grazie al quale ho scoperto l&#8217;esistenza di  Fritzing, un tool di prototipazione dedicato al mondo Arduino che mi permette di disegnare queste cose: Per adesso mi limito ad accendere il led rosso per 25 minuti alla pressione del bottone, [...] <a href="http://www.gaspartorriero.it/2012/02/arduino-al-pomodoro/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><p>Per trasformare il mio Arduino in un conta-pomodori ho seguito le<a href="http://to.pm.org/presentations/2011-05/arduino.pdf"> facili istruzioni</a> di Mike Stok, grazie al quale ho scoperto l&#8217;esistenza di  <a href="http://www.fritzing.org/">Fritzing</a>, un tool di prototipazione dedicato al mondo Arduino che mi permette di disegnare queste cose:</p>
<p><a href="http://www.gaspartorriero.it/wp-content/uploads/2012/02/pomodoro.jpg"><img class="alignnone  wp-image-4054" title="pomodoro timer" src="http://www.gaspartorriero.it/wp-content/uploads/2012/02/pomodoro.jpg" alt="" width="450" height="353" /></a></p>
<p>Per adesso mi limito ad accendere il led rosso per 25 minuti alla pressione del bottone, con lampeggio nel minuto finale e passaggio al giallo per i 5 minuti successivi; quindi il led verde.</p>
<p>Prossimi passi: regolare automaticamente l&#8217;intansità del led in base alla luminosità dell&#8217;ambiente. Il codice l&#8217;ho messo dopo il salto.<span id="more-4053"></span></p>
<pre><span style="color: #7e7e7e;">// #define TEST_INTERVALS</span>

#define HEARTBEAT_LED 13 

#define INITIAL_TCNT1  (65536 - 16000000 / 256)

#define PUSHBUTTON_INT 0

#define WORK_STATE     0
#define REST_STATE     1
#define FREE_STATE     2
#define N_STATES       3
#define INITIAL_STATE  FREE_STATE

<span style="color: #cc6600;">int</span> ledFor[]          = {
  3,         11,          5 };
#ifndef TEST_INTERVALS
<span style="color: #cc6600;">int</span> secsFor[]         = {
  25 * 60,     5 * 60,     0 * 60 };
#else
<span style="color: #cc6600;">int</span> secsFor[]         = {
  15,         10,          0 };
#endif
<span style="color: #cc6600;">int</span> nextStateTimer[]  = {
  REST_STATE, FREE_STATE, FREE_STATE };
<span style="color: #cc6600;">int</span> nextStateButton[] = {
  FREE_STATE, FREE_STATE, WORK_STATE };

volatile <span style="color: #cc6600;">boolean</span> heartbeatOn = <span style="color: #cc6600;">false</span>;

volatile <span style="color: #cc6600;">int</span>     brightnessFor[N_STATES];
volatile <span style="color: #cc6600;">int</span>     state;
volatile <span style="color: #cc6600;">int</span>     secsDuration;
volatile <span style="color: #cc6600;">int</span>     secsLeft;

ISR(TIMER1_OVF_vect) {
  <span style="color: #cc6600;">noInterrupts</span>();

  TCNT1 = INITIAL_TCNT1;

  heartbeatOn = !heartbeatOn;  
  <span style="color: #cc6600;">digitalWrite</span>(HEARTBEAT_LED, heartbeatOn ? <span style="color: #006699;">HIGH</span> : <span style="color: #006699;">LOW</span>);
  updateLeds();

  <span style="color: #cc6600;">if</span> (secsLeft &gt; 0) {
    <span style="color: #cc6600;">if</span> (--secsLeft == 0) {
      enterState(nextStateTimer[state]);
    }
  }

  <span style="color: #cc6600;">interrupts</span>();
}

<span style="color: #cc6600;">void</span> buttonReleased() {
  <span style="color: #cc6600;">noInterrupts</span>();
  enterState(nextStateButton[state]);
  <span style="color: #cc6600;">interrupts</span>();
}

<span style="color: #cc6600;">void</span> updateLeds() {
  <span style="color: #cc6600;">int</span> i;

  <span style="color: #7e7e7e;">// Clear all the "other" state leds</span>
  <span style="color: #cc6600;">for</span> (i = 0; i &lt; N_STATES; i++) {
    <span style="color: #cc6600;">if</span> (i != state) {
      brightnessFor[i] = 0;
    }
  }

  <span style="color: #cc6600;">if</span> (state == FREE_STATE) {
    brightnessFor[FREE_STATE] = 255;
  }
  <span style="color: #cc6600;">else</span> {
    <span style="color: #cc6600;">int</span> rampDownPeriod = 180;
    <span style="color: #cc6600;">if</span> (secsLeft &gt; rampDownPeriod || heartbeatOn) {
      brightnessFor[state] = 255;
    }
    <span style="color: #cc6600;">else</span> {
      brightnessFor[state] = <span style="color: #cc6600;">map</span>(secsLeft, 0, rampDownPeriod, 64, 255);
    }
  }
}

<span style="color: #cc6600;">void</span> enterState (<span style="color: #cc6600;">int</span> newState) {
  state = newState;
  secsDuration = secsLeft = secsFor[newState];
  updateLeds();
}

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>setup</strong></span>() {
  <span style="color: #cc6600;">int</span> i;
  <span style="color: #cc6600;">pinMode</span>(HEARTBEAT_LED, <span style="color: #006699;">OUTPUT</span>);
  enterState(INITIAL_STATE);
  <span style="color: #cc6600;">attachInterrupt</span>(PUSHBUTTON_INT, buttonReleased, <span style="color: #006699;">RISING</span>);
  TIMSK1 = 0x01;
  TCCR1A = 0x00;
  TCNT1  = INITIAL_TCNT1;
  TCCR1B = 0x04;
}

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>loop</strong></span> () {
  <span style="color: #cc6600;">int</span> i;

  <span style="color: #cc6600;">for</span> (i = 0; i &lt; N_STATES; i++) {
    <span style="color: #cc6600;">analogWrite</span>(ledFor[i], brightnessFor[i]);
  }

  <span style="color: #cc6600;">delay</span>(50);
}</pre>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2012/01/la-mia-lampadina-twitta/" rel="bookmark" class="crp_title">La mia lampadina twitta</a></li><li><a href="http://www.gaspartorriero.it/2012/01/domotica-spicciola-con-arduino/" rel="bookmark" class="crp_title">Domotica spicciola con Arduino</a></li><li><a href="http://www.gaspartorriero.it/2012/01/arduino-baby-you-can-light-my-fire/" rel="bookmark" class="crp_title">Arduino: baby you can light my fire</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/02/arduino-al-pomodoro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La mia lampadina twitta</title>
		<link>http://www.gaspartorriero.it/2012/01/la-mia-lampadina-twitta/</link>
		<comments>http://www.gaspartorriero.it/2012/01/la-mia-lampadina-twitta/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 16:17:39 +0000</pubDate>
		<dc:creator>Gaspar Torriero</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Thingsourcing]]></category>

		<guid isPermaLink="false">http://www.gaspartorriero.it/?p=4038</guid>
		<description><![CDATA[&#8220;Tutto ciò che è alimentato elettricamente è anche connesso a internet.&#8221; (Tom Igoe) La lampada del mio comodino twitta automaticamente i suoi cambiamenti di stato, grazie a Arduino 2009 Ethernet Shield Sensore luce Bisognarà che le crei un account dedicato su twitter. Se sei interessato al codice, è qui sotto. Essendo una prova, tengo aperta [...] <a href="http://www.gaspartorriero.it/2012/01/la-mia-lampadina-twitta/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p></p><blockquote><p><em>&#8220;Tutto ciò che è alimentato elettricamente è anche connesso a internet.&#8221;</em></p>
<div style="text-align: -webkit-auto;"><span style="text-align: left;">(Tom Igoe)</span></div>
</blockquote>
<p>La lampada del mio comodino twitta automaticamente i suoi cambiamenti di stato, grazie a</p>
<ul>
<li>Arduino 2009</li>
<li>Ethernet Shield</li>
<li>Sensore luce</li>
</ul>
<p>Bisognarà che le crei un account dedicato su twitter. Se sei interessato al codice, è qui sotto.</p>
<p>Essendo una prova, tengo aperta la porta seriale per controllare dalla consolle quel che succede, ma <em>in produzione</em> i vari Serial.print vengono tolti.</p>
<p>Se trovi errori o difetti e vuoi segnalarmeli, te ne sarò grato.</p>
<pre><span style="color: #7e7e7e;">/* </span>
<span style="color: #7e7e7e;">Twitter Light Client 0.2  </span>
<span style="color: #7e7e7e;">created on jan 28 2012</span>
<span style="color: #7e7e7e;">modified on jan 30 2012</span>
<span style="color: #7e7e7e;">by Gaspar Torriero</span>
<span style="color: #7e7e7e;">with many thanks to the Arduino community</span>
<span style="color: #7e7e7e;">at http://arduino.cc/en/Tutorial/HomePage</span>
<span style="color: #7e7e7e;">*/</span>

#include &lt;<span style="color: #cc6600;">SPI</span>.h&gt;
#include &lt;<span style="color: #cc6600;">Ethernet</span>.h&gt;
#include &lt;<span style="color: #cc6600;">Twitter</span>.h&gt;

<span style="color: #cc6600;">boolean</span> oldStatus = 0;
<span style="color: #cc6600;">boolean</span> newStatus = 0;
<span style="color: #cc6600;">int</span> tPin = 0; <span style="color: #7e7e7e;">// Temperature sensor pin</span>
<span style="color: #cc6600;">int</span> lPin = 5; <span style="color: #7e7e7e;">// Light sensor pin</span>
<span style="color: #cc6600;">float</span> temp = 0.0; <span style="color: #7e7e7e;">// Temperature in C°</span>
<span style="color: #cc6600;">int</span> luce = 0; <span style="color: #7e7e7e;">// light in Lux</span>
<span style="color: #cc6600;">byte</span> mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
<span style="color: #cc6600;">byte</span> ip[] = {
  192, 168, XXX, XXX }; <span style="color: #7e7e7e;">// IP address of your Arduino</span>
<span style="color: #cc6600;">byte</span> gateway[] = {
  192, 168, XXX, XXX }; <span style="color: #7e7e7e;">// IP address of your router</span>
<span style="color: #cc6600;">byte</span> subnet[] = {
  255, 255, 255, 0 };
<span style="color: #cc6600;">Twitter</span> twitter(<span style="color: #006699;">"XXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</span><span style="color: #006699;">"</span>); <span style="color: #7e7e7e;">// Your Twitter API code</span>
<span style="color: #cc6600;">String</span> stringOne=<span style="color: #006699;">"La luce sul comodino è stata spenta"</span>;
<span style="color: #cc6600;">String</span> stringTwo=<span style="color: #006699;">"La luce sul comodino è stata accesa"</span>;
<span style="color: #cc6600;">char</span> msg[140];

<span style="color: #CC6600;">void</span> <span style="color: #CC6600;"><b>setup</b></span>()
{
&nbsp;&nbsp;<span style="color: #CC6600;">Ethernet</span>.<span style="color: #CC6600;">begin</span>(mac, ip, gateway, subnet);
&nbsp;&nbsp;<span style="color: #7E7E7E;">// Serial.begin(9600);</span>
&nbsp;&nbsp;&nbsp;&nbsp;luce&nbsp;=&nbsp;(<span style="color: #CC6600;">analogRead</span>(lPin) * 10000.0) / 1024.0; <span style="color: #7E7E7E;">//Conversione voltaggio sensore in Lux</span>
&nbsp;&nbsp;<span style="color: #CC6600;">if</span>(luce &lt; 201) {
&nbsp;&nbsp;&nbsp;&nbsp;oldStatus=0;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;<span style="color: #CC6600;">else</span> <span style="color: #CC6600;">if</span>(luce &gt; 200) {
&nbsp;&nbsp;&nbsp;&nbsp;oldStatus=1;
&nbsp;&nbsp;}
}
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><strong>loop</strong></span>() {
  <span style="color: #cc6600;">delay</span>(50000);
  <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">print</span>(oldStatus);
  <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">print</span>(newStatus);
  <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>();
  <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>(luce);
  temp = ( 5.0 * <span style="color: #cc6600;">analogRead</span>(tPin) * 100.0) / 1024.0; <span style="color: #7e7e7e;">// Conversione voltaggio sensore in temperatura</span>
  luce = (<span style="color: #cc6600;">analogRead</span>(lPin) * 10000.0) / 1024.0; <span style="color: #7e7e7e;">//Conversione voltaggio sensore in Lux</span>
  <span style="color: #cc6600;">if</span>(luce &lt; 201) {
    newStatus=0;
    stringOne.toCharArray(msg, 140);
  }
  <span style="color: #cc6600;">else</span> <span style="color: #cc6600;">if</span>(luce &gt; 200) {
    newStatus=1;
    stringTwo.toCharArray(msg, 140);
  }
  <span style="color: #cc6600;">if</span>(newStatus != oldStatus) {
      <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>(<span style="color: #006699;">"connecting ..."</span>);
      <span style="color: #cc6600;">if</span> (twitter.<span style="color: #cc6600;">post</span>(msg)) {
        <span style="color: #cc6600;">int</span> <span style="color: #cc6600;">status</span> = twitter.<span style="color: #cc6600;">wait</span>(&amp;<span style="color: #cc6600;"><strong>Serial</strong></span>);
        <span style="color: #cc6600;">if</span> (<span style="color: #cc6600;">status</span> == 200) {
          <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>(<span style="color: #006699;">"OK."</span>);
        } 
        <span style="color: #cc6600;">else</span> {
          <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">print</span>(<span style="color: #006699;">"failed : code "</span>);
          <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>(<span style="color: #cc6600;">status</span>);
        }
      } 
      <span style="color: #cc6600;">else</span> {
        <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>(<span style="color: #006699;">"connection failed."</span>);
      }
    <span style="color: #cc6600;">delay</span>(10000);
    oldStatus = newStatus;
    <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">print</span>(oldStatus);
    <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">print</span>(newStatus);
    <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>();
    <span style="color: #cc6600;"><strong>Serial</strong></span>.<span style="color: #cc6600;">println</span>(luce);
  }
 }</pre>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.gaspartorriero.it/2012/01/domotica-spicciola-con-arduino/" rel="bookmark" class="crp_title">Domotica spicciola con Arduino</a></li><li><a href="http://www.gaspartorriero.it/2012/01/arduino-baby-you-can-light-my-fire/" rel="bookmark" class="crp_title">Arduino: baby you can light my fire</a></li><li><a href="http://www.gaspartorriero.it/2012/02/arduino-al-pomodoro/" rel="bookmark" class="crp_title">Arduino al pomodoro</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.gaspartorriero.it/2012/01/la-mia-lampadina-twitta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fermilab sceglie Veeam Backup &amp; Replication per il Disaster Recovery</title>
		<link>http://blog.sayit.ch/2011/07/fermilab-sceglie-veeam-backup-replication-per-il-disaster-recovery/</link>
		<comments>http://blog.sayit.ch/2011/07/fermilab-sceglie-veeam-backup-replication-per-il-disaster-recovery/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 12:03:04 +0000</pubDate>
		<dc:creator>Laura De Biaggi</dc:creator>
				<category><![CDATA[veeam]]></category>
		<category><![CDATA[disaster recovery]]></category>
		<category><![CDATA[virtualizzazione]]></category>

		<guid isPermaLink="false">http://blog.sayit.ch/?p=422</guid>
		<description><![CDATA[Columbus, Ohio, 22 Giugno 2011 – Il Software Veeam, conosciuto per la sua innovativa protezione di dati e per le soluzioni di gestione dell’infrastruttura virtuale, è stato premiato con un contratto con il Fermi National Accelerator Laboratory (Fermilab) per sostituire &#8230; <a href="http://blog.sayit.ch/2011/07/fermilab-sceglie-veeam-backup-replication-per-il-disaster-recovery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Columbus, Ohio, 22 Giugno 2011</strong> – Il Software Veeam, conosciuto per la sua innovativa protezione di dati e per le soluzioni di gestione dell’infrastruttura virtuale, è stato premiato con un contratto con il Fermi National Accelerator Laboratory (Fermilab) per sostituire le esistenti soluzioni di “virtualization backup” e di replica con il prodotto 2 in 1 : <a href="http://www.veeam.com/vmware-esx-backup-html">Veeam Backup &amp; Replication</a>™. Il Fermilab è un Dipartimento statunitense del laboratorio nazionale sulle energie specializzato in fisica delle particelle ad alte energie. Veeam Backup &amp; Replication offre una facile, conveniente e completa soluzione di protezione dei dati pensato in modo particolare per gli ambienti virtuali.</p>
<p>E’ usato per proteggere più di 1.5 milioni di macchine virtuali (VMs) nel mondo ed è un componente di  <a href="http://www.veeam.com/vmware-management-suite-html">Veeam Management Suite™ Plus</a>, che Fermilab ha acquistato per il suo ambiente server virtualizzato.</p>
<p>“Siamo veramente lieti che Fermilab abbia scelto Veeam per automatizzare i processi nel suo ambiente virtualizzato.“ ha affermato il Direttore vendite di Veeam Software. “Fermilab inizialmente si focalizzerà su Veeam Backup &amp; Replication, permettendo agli amministratori IT di ripristinare un’intera VM o ogni singolo oggetto da ogni applicazione o file system – tutto dallo stesso “image-level backup”. Non ci sono agents da gestire, nessuna necessità di controllare i lavori di backup, e ora possono verificare automaticamente il restore di ogni backup. Presto il Fermilab inizierà a usare le tre componenti della Veeam Management Suite – per pianificazione e documentazione, monitoraggio e allerta, business categorization e gestione dei files – permettendo il totale controllo dell’infrastruttura virtuale”</p>
<p>Fermilab: Situato in Illinois, vicino a Batavia, Fermilab è un laboratorio nazionale del Dipartimento dell’Energia statunitense (DOE) che opera sotto contratto con il Fermi Research Alliance., LLC.</p>
<p>&nbsp;</p>
<p>Il DOE Ufficio della Scienza è l’unico e più grande supporto della ricerca di base in fisica nella nazione e aiuta la leadership mondiale degli Stati Uniti in un ampio range di discipline scientifiche.</p>
<p>Leggi tutto qui: <a href="http://tinyurl.com/3wm3shs"><strong>http://tinyurl.com/3wm3shs</strong></a><strong></strong></p>
<p>Veeam Software, partner tecnologico di VMware con la qualifica di Premier VMware Technology Alliance, aiuta le aziende a proteggere i loro investimenti nell’infrastruttura virtuale offrendo innovative soluzioni software di gestione dei sistemi pensate per ridurre i costi, aumentare la produttività e limitare i rischi. Veeam è una società multinazionale statunitense con sede centrale a Columbus, Ohio, una sede europea a Reading, Regno Unito, e un team operativo per l&#8217;area APAC in Australia. Veeam ha oltre 30.000 clienti nel mondo che crescono al ritmo di 700 nuovi clienti al mese.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.sayit.ch%2F2011%2F07%2Ffermilab-sceglie-veeam-backup-replication-per-il-disaster-recovery%2F&amp;title=Fermilab%20sceglie%20Veeam%20Backup%20%26%20Replication%20per%20il%20Disaster%20Recovery" id="wpa2a_2"><img src="http://blog.sayit.ch/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.sayit.ch/2011/07/fermilab-sceglie-veeam-backup-replication-per-il-disaster-recovery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Database Caching 23/29 queries in 0.008 seconds using disk: basic
Object Caching 1085/1087 objects using disk: basic

Served from: blog.sayit.ch @ 2012-05-19 16:15:36 -->
