<?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>Pachue Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/pachue/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/pachue/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sun, 15 Jan 2017 17:08:44 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>Pachue Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/pachue/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Pachube, utilizzo con Netduino o Arduino (Introduzione)</title>
		<link>https://logicaprogrammabile.it/pachube-utilizzo-netduino-arduino/</link>
					<comments>https://logicaprogrammabile.it/pachube-utilizzo-netduino-arduino/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Tue, 28 Jun 2011 14:16:19 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Internet delle cose]]></category>
		<category><![CDATA[Netduino]]></category>
		<category><![CDATA[Pachue]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=1681</guid>

					<description><![CDATA[<p>Pachube, come creare un feeds aggiornabile con Netduino o Arduino Pachube è uno dei tanti servizi online che offrono un&#8217;applicazione web aggiornabile tramite dispositivi elettronici come Netduino, Arduino, smartphone, PC o altri sistemi capaci di interagire con Internet. Banalmente possiamo definirlo un &#8220;datalogger on line&#8221;...</p>
<p>The post <a href="https://logicaprogrammabile.it/pachube-utilizzo-netduino-arduino/">Pachube, utilizzo con Netduino o Arduino (Introduzione)</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Pachube, come creare un feeds aggiornabile con Netduino o Arduino</h1>
<p>Pachube è uno dei tanti servizi online che offrono un&#8217;applicazione web aggiornabile tramite dispositivi elettronici come Netduino, Arduino, smartphone, PC o altri sistemi capaci di interagire con Internet.<br />
Banalmente possiamo definirlo un &#8220;<a href="http://en.wikipedia.org/wiki/Data_logger" target="_blank">datalogger</a> on line&#8221; capace di registrare dati provenienti dai dispositivi e di creare grafici che ne mostrano l&#8217;andamento nel tempo.<br />
<strong> Pachube</strong> certamente è un buon servizio che dimostra lo sviluppo di applicazioni dell&#8217;<a href="http://it.wikipedia.org/wiki/Internet_delle_cose" target="_blank">Internet delle cose</a>.</p>
<p><img decoding="async" class="aligncenter wp-image-1700 size-full" title="logo Pachube" src="https://logicaprogrammabile.it/wp-content/uploads/2011/06/logo.gif" alt="Logo Pachube" width="303" height="94" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/06/logo.gif 303w, https://logicaprogrammabile.it/wp-content/uploads/2011/06/logo-300x93.gif 300w" sizes="(max-width: 303px) 100vw, 303px" /></p>
<p>Anche io ho voluto realizzare la mia applicazione per semplice curiosità e per condividere la mia esperienza.</p>
<p>Iniziamo registrandoci al servizio Pachube. Al momento in cui scrivo sono disponibili tre tipi di piani tariffari, tra cui uno gratuito. La differenza sostanziale tra essi, è il numero di dati che possiamo caricare sul sito e il tempo di memorizzazione degli stessi.<br />
Per una piccola applicazione fortunatamente è sufficiente creare un account gratuito. La registrazione richiede solo pochi dati come il Nome Utente e una casella e-mail valida. Una volta compilati tutti i campi clicchiamo sul pulsante Sign Up, verrà spedita automaticamente una mail contenente il link di attivazione del vostro account. Successivamente l&#8217;attivazione Pachube fornisce una <strong>API Key</strong> che viene utilizzata per autorizzare le nostre applicazioni.</p>
<p><span id="more-1681"></span>Il passo seguente è quello di creare un <strong>feed</strong> per memorizzare i dati inviati da un dispositivo remoto.<br />
Clicchiamo sul link <strong>Create a Feed</strong> dal menu <strong>My Account</strong>. Le informazioni da inserire sono diverse, molto intuitive, che identificano una precisa locazione geografica e il tipo di dispositivo utilizzato.<br />
Prima di salvare <span style="text-decoration: underline;">dobbiamo aggiungere</span> almeno un <strong>datastream</strong>, fondamentale per memorizzare e rappresentare i dati provenienti dal nostro dispositivo.<br />
Clicchiamo su <strong>Add a datastream</strong> per crearne uno. Il campo <strong>ID</strong> serve ad identificare il datastream all&#8217;interno del Feed, può essere un valore numerico o testuale, <strong>Tags</strong> specifica alcune parole chiave descrittive per il datastream, <strong>Units</strong> rappresenta l&#8217;unita di misura per i dati del datastream e <strong>Symbol</strong> rappresenta la dicitura dell&#8217;unità di misura.</p>
<p>I valori realmente necessari per la creazione di un feed sono il suo nome e l&#8217;ID del datastream, gli altri campi possono essere lasciati in bianco ma è comunque <span style="text-decoration: underline;">consigliabile</span> compilarli per dare tutte le informazioni per interpretare i dati e capirne la provenienza.</p>
<p>Salviamo il Feed cliccando sul pulsante <strong>Save</strong>.</p>
<blockquote><p>In questo esempio reale ho creato un Feed che monitorizza il carico della cpu del mio pc, potete osservare i dati recandovi a questo indirizzo http://pachube.com/feeds/28933</p></blockquote>
<p>Pachube aggiorna la finestra mostrando le impostazioni del Feed appena creato. In questa finestra troviamo tre link, JSON, XML e CSV, sotto la voce <strong>Feed Format</strong>. Questi tre formati sono quelli accettati da Pachube per interagire da remoto con il Feed. Quello che preferisco è il formato XML, cliccando sul link viene caricata una nuova finestra che mostra la struttura del file XML. Nella barra degli indirizzi viene mostrato il percorso del file XML.</p>
<p>La documentazione presente sul sito è molto chiara. In questa sezione troviamo il codice XML necessario per aggiornare il Feed (possiamo anche apprendere come leggere, creare e cancellare i Feed da remoto).<br />
Ho modificato il codice XML della guida in base alle impostazioni del Feed e del datastream che ho precedentemente creato:</p>
<pre class="lang:xhtml decode:true ">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;eeml xmlns="http://www.eeml.org/xsd/0.5.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="0.5.1" xsi:schemaLocation="http://www.eeml.org/xsd/0.5.1
http://www.eeml.org/xsd/0.5.1/0.5.1.xsd"&gt;
&lt;environment&gt;

&lt;title&gt;Cpu_Usage&lt;/title&gt;

&lt;status&gt;live&lt;/status&gt;

&lt;description&gt;Monitoraggio Carico CPU&lt;/description&gt;

&lt;tag&gt;Carico Cpu&lt;/tag&gt;
&lt;tag&gt;Monitor&lt;/tag&gt;

&lt;data id="CpuLoad"&gt;
&lt;current_value&gt;10&lt;/current_value&gt;
&lt;max_value&gt;100&lt;/max_value&gt;
&lt;min_value&gt;0&lt;/min_value&gt;
&lt;/data&gt;

&lt;/environment&gt;
&lt;/eeml&gt;
&lt;pre&gt;</pre>
<p>&nbsp;</p>
<p>Prima di creare un applicazione basata su un dispositivo hardware ne ho sviluppato una in C# che permette di testare tutta la procedura per interagire con il Feed.</p>
<p>Il codice si basa sulla classe <strong>WebClient</strong> e permette con alcune righe di codice di eseguire l&#8217;aggiornamento</p>
<pre class="lang:c# decode:true ">String UpdateData1 = "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;" +
"&lt;eeml xmlns=\"http://www.eeml.org/xsd/0.5.1\" " +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
"version=\"0.5.1\" " +
"xsi:schemaLocation=\"http://www.eeml.org/xsd/0.5.1 " +
"http://www.eeml.org/xsd/0.5.1/0.5.1.xsd\"&gt;&lt;environment&gt;" +
"&lt;status&gt;live&lt;/status&gt;&lt;data id=\"CpuLoad\"&gt;&lt;current_value&gt;";

String UpdateData2 = "&lt;/current_value&gt;&lt;/data&gt;&lt;/environment&gt;&lt;/eeml&gt;";

try
{
String Value = "";
WebClient pachube = new WebClient();

//WebProxy mio_proxy = new WebProxy("Inserire nome proxy", 8080);
//pachube.Proxy = mio_proxy;

pachube.Headers.Add("X-PachubeApiKey", "Inserisci la tua API Key");

//questo codice recupera la percentuale di carico della CPU (testato su win XP)
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2",
 "SELECT * FROM Win32_Processor");

foreach (ManagementObject queryObj in searcher.Get())
{
Value = queryObj["LoadPercentage"].ToString();
}

Byte[] Data = Encoding.UTF8.GetBytes(UpdateData1 + Value + UpdateData2);

pachube.UploadData("Inserisci indirizzo file XML", "PUT", Data);

Console.WriteLine("Aggiornamento eseguito con successo");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}</pre>
<p>&nbsp;</p>
<p>Le prime variabili contengono il codice <strong>XML</strong> che permette di aggiornare il datastream. Ho diviso il listato XML in due parti in modo da inserire, via codice, il dato della variabile <strong>Value</strong> all&#8217;interno dei tag XML <strong>&lt;current_value&gt;&lt;/current_value&gt;</strong>.</p>
<p>Creiamo un&#8217;istanza di oggetto dalla classe <strong>WebClient</strong>, specifichiamo la nostra API key tramite il metodo <strong>Add</strong> della collection <strong>Headers</strong>.<br />
Recuperiamo il valore della percentuale di carico della CPU ed assegnamolo alla variabile <strong>Value</strong>.<br />
Creiamo la stringa XML completa e convertiamola in un array di Byte (necessario per l&#8217;invio tramite WebClient). In fine aggiorniamo il Feed tramite il metodo <strong>UploadData</strong>.<br />
Nel metodo UploadData dobbiamo specificare, come primo parametro, il nome del file .xml relativo al Feed ( recuperabile dai link presenti sotto la voce <strong>Feed Formats</strong>).</p>
<p>Eseguendo questo codice in modo ciclico, ad esempio utilizzando un timer, Pachube realizzerà, con i dati inviati, un grafico sull&#8217;andamento del carico della CPU:</p>
<p><img decoding="async" class="aligncenter wp-image-1718 size-medium" title="pachubeGraph" src="https://logicaprogrammabile.it/wp-content/uploads/2011/06/pachubeGraph-300x102.gif" alt="Grafico Pachube" width="300" height="102" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/06/pachubeGraph-300x102.gif 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/06/pachubeGraph.gif 756w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>Questi dati vengono memorizzati, nel caso dell&#8217;account free per un mese.</p>
<p>I campi di applicazione di questo servizio sono numerosi, possiamo collegare al pc dei sensori ed inviare i dati ai Feed Pachube e condividerli con la comunità.<br />
Il passo successivo che mi interessa realizzare è il porting di questa applicazione desktop su Netduino o Arduino.</p>
<p>The post <a href="https://logicaprogrammabile.it/pachube-utilizzo-netduino-arduino/">Pachube, utilizzo con Netduino o Arduino (Introduzione)</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/pachube-utilizzo-netduino-arduino/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
