<?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>WebRequest Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/webrequest/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/webrequest/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sun, 15 Jan 2017 17:10:22 +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>WebRequest Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/webrequest/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Netduino Plus interazione Pachube</title>
		<link>https://logicaprogrammabile.it/netduino-plus-interazione-pachube/</link>
					<comments>https://logicaprogrammabile.it/netduino-plus-interazione-pachube/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Wed, 13 Jul 2011 09:25:00 +0000</pubDate>
				<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[Micro Framework]]></category>
		<category><![CDATA[Netduino Plus]]></category>
		<category><![CDATA[Servizio web]]></category>
		<category><![CDATA[WebRequest]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=1731</guid>

					<description><![CDATA[<p>Collegare Netduino Plus al servizio web Pachube Ora che sapiamo creare un Pachube feed aggiornabile non ci resta che sviluppare una piccola app, da far girare sul Netduino Plus, che acquisisce dei dati tramite le sue porte in ingresso e li invia al servizio web....</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-plus-interazione-pachube/">Netduino Plus interazione Pachube</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Collegare Netduino Plus al servizio web Pachube</h1>
<p>Ora che sapiamo <a title="Pachube, utilizzo con Netduino o Arduino (Introduzione)" href="https://logicaprogrammabile.it/pachube-utilizzo-netduino-arduino/">creare un Pachube feed aggiornabile</a> non ci resta che sviluppare una piccola app, da far girare sul Netduino Plus, che acquisisce dei dati tramite le sue porte in ingresso e li invia al servizio web.<br />
Sul sito Pachube sono presenti diversi esempi che illustrano come scrivere delle applicazioni basate sul .Net framework. Tra queste è presente un listato di codice che mostra come aggiornare un feed tramite codice C#.<br />
Per utilizzare questo esempio è necessario aggiungere alla soluzione la libreria <strong>System.Http</strong> (Progetto-&gt;Aggiungi riferimento-&gt;System.Http.dll) e, tramite la clausola <strong>using</strong> , aggiungere i <strong>namespace</strong> <strong>System.Text</strong> e <strong>System.IO</strong>.</p>
<p>Il codice seguente mostra come aggiornare il nostro feed con un valore statico.</p>
<p><span id="more-1731"></span></p>
<pre class="lang:c# decode:true ">WebRequest rq;
HttpWebResponse hwr;

//eventuale proxy aziendale
//WebProxy wp = new WebProxy("nome server proxy", 8080);

//creo un buffer contenente la chiave e il valore per il feed
byte[] buffer = Encoding.UTF8.GetBytes("CpuLoad,10");

//riferimento al feed in formato csv
rq = WebRequest.Create("http://api.pachube.com/v2/feeds/28933.csv");

//assegnazione eventuale server proxy
//rq.Proxy = wp;
rq.Timeout = 5000;
rq.Method = "PUT";

//request headers
rq.ContentLength = buffer.Length;
rq.ContentType = "text/csv";
rq.Headers.Add("X-PachubeApiKey", "API KEY PACHUBE");

try
{
Stream stm = rq.GetRequestStream();
stm.Write(buffer, 0, buffer.Length);
stm.Close();
hwr = (HttpWebResponse)rq.GetResponse();
Debug.Print("response " + hwr.StatusCode);
}
catch (Exception ex)
{
Debug.Print("ERRORE: " + ex.Message);
}</pre>
<p>&nbsp;</p>
<p>Il listato è molto sintetico e mostra come eseguire l&#8217;aggiornamento del feed. Nell&#8217;<a title="Pachube, utilizzo con Netduino o Arduino (Introduzione)" href="https://logicaprogrammabile.it/pachube-utilizzo-netduino-arduino/">articolo precedente</a> ho utilizzato XML per eseguire le operazioni di lettura e scrittura del feed. In questo caso, invece, è stato utilizzato il metodo che impiega un semplice file di testo csv (comma-separated values).</p>
<p>Le prime istruzioni istanziano un oggetto <strong>WebRequest</strong> e uno <strong>HttpWebResponse</strong> (fornisce un&#8217;implementazione specifica di HTTP della classe WebResponse). Tutto il lavoro viene eseguito dall&#8217;oggetto WebRequest che, dopo aver settato le varie proprietà relative al feed csv, crea uno stream IO per aggiornare il file csv remoto.</p>
<p>Impieghiamo le porte del Netduino per creare qualcosa di utile e dinamico. Tramite gli ingressi analogici acquisiamo delle grandezze, provenienti da diversi sensori, che possono essere graficate tramite feed Pachube.</p>
<p>Faccio riferimento all&#8217;articolo che illustrava l&#8217;<a title="MCP9700A Netduino e sensore di temperatura analogico" href="https://logicaprogrammabile.it/mcp9700a-netduino-sensore-temperatura-analogico/">utilizzo del sensore di temperatura analogico MCP9700a</a> per monitorare l&#8217;ambiente e memorizzare i dati su Pachube.<br />
Il codice viene così modificato:</p>
<pre class="lang:c# decode:true ">WebRequest rq;
HttpWebResponse hwr;

//Impostop il pin A0 come ingresso analogico
AnalogInput AN0 = new AnalogInput(Pins.GPIO_PIN_A0);
Int16 Analog0 = 0;

while (true)
{
//acquisisci il valore analogico
Analog0 = (Int16)AN0.Read();

//creo una webrequest passando come argomento l'indirizzo del file csv
rq = WebRequest.Create("http://api.pachube.com/v2/feeds/XXXXX.csv");

//setto i parametri per l'oggetto webrequest
rq.Timeout = 3000;
byte[] buffer = Encoding.UTF8.GetBytes("Temp," + Analog0.ToString());
rq.ContentLength = buffer.Length;
rq.Method = "PUT";
rq.ContentType = "text/csv";
rq.Headers.Add("X-PachubeApiKey", "LA TUA API KEY");

//creo uno stream e scrivo i nuovi valori acquisiti
try
{
Stream stm = rq.GetRequestStream();
stm.Write(buffer, 0, buffer.Length);
stm.Close();
hwr = (HttpWebResponse)rq.GetResponse();
hwr.Close();
Debug.Print("response " + hwr.StatusCode);
}
catch (Exception ex)
{
Debug.Print("ERRORE: " + ex.Message);
}

//distruggo l'oggetto
rq.Dispose();

//attendi 30 secondi
Thread.Sleep(30000);
}</pre>
<p>&nbsp;</p>
<p>Il listato è autodescrittivo e permette con poco studio di capire come avviene il meccanismo di aggiornamento.</p>
<p>Prima di caricare il codice sul Netduino è necessario impostare il suo indirizzo ip attraverso l&#8217;uso di MFDeploy (C:\Programmi\Microsoft .NET Micro Framework\v4.1\Tools\MFDeploy.exe).</p>
<p>Una volta selezionato il dispositivo tramite la porta usb clicchiamo sul menu Target-&gt;Configuration-&gt;Network.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter wp-image-1746 size-full" title="mfdeploy" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/mfdeploy.jpg" alt="Seleziona configurazione di rete" width="482" height="242" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/mfdeploy.jpg 482w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/mfdeploy-300x150.jpg 300w" sizes="(max-width: 482px) 100vw, 482px" /></p>
<p>Nella finestra seguente possiamo configurare l&#8217;indirizzo ip del Netduino Plus, la subnet mask e il gateway. Questi dati dobbiamo recuperarli dal router.</p>
<p><img decoding="async" class="aligncenter wp-image-1747 size-full" title="Network_Config" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Network_Config.jpg" alt="Configurazione Netduino Plus Network" width="396" height="255" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Network_Config.jpg 396w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/Network_Config-300x193.jpg 300w" sizes="(max-width: 396px) 100vw, 396px" /><br />
E&#8217; possibile abilitare il flag DHCP per recuperare automaticamente questi valori ma con alcuni router questa procedura non funziona correttamente e quindi vi consiglio di utilizzare, almeno per le prove, un indirizzo statico.</p>
<p>Tutto molto semplice e veloce. Con le restanti porte possiamo sperimentare con l&#8217;aggiunta di altri sensori per creare applicazioni più evolute ed interessanti.</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-plus-interazione-pachube/">Netduino Plus interazione Pachube</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/netduino-plus-interazione-pachube/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
