<?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>Base64 Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/base64/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/base64/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 13 Feb 2017 17:31:13 +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>Base64 Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/base64/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Webduino Based Authentication. Accedere ad una pagina privata</title>
		<link>https://logicaprogrammabile.it/based-authentication-webduino-accedere-pagina-protetta/</link>
					<comments>https://logicaprogrammabile.it/based-authentication-webduino-accedere-pagina-protetta/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 25 Mar 2013 10:13:11 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[autenticazione]]></category>
		<category><![CDATA[Base64]]></category>
		<category><![CDATA[webduino]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=3417</guid>

					<description><![CDATA[<p>Come utilizzare la Based Authentication per accedere a una pagina protetta La libreria Webduino implementa una semplice autenticazione basata sul protocollo http. Certamente non offre un livello di sicurezza impenetrabile ma può comunque essere utile utilizzare questa funzione per le nostre applicazioni. Nell&#8217;esempio, viene caricata...</p>
<p>The post <a href="https://logicaprogrammabile.it/based-authentication-webduino-accedere-pagina-protetta/">Webduino Based Authentication. Accedere ad una pagina privata</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Come utilizzare la Based Authentication per accedere a una pagina protetta</h3>
<p>La libreria <strong>Webduino</strong> implementa una semplice autenticazione basata sul protocollo http. Certamente non offre un livello di sicurezza impenetrabile ma può comunque essere utile utilizzare questa funzione per le nostre applicazioni.</p>
<p>Nell&#8217;esempio, viene caricata la pagina index.htm dove è presente un link che punta a una pagina protetta. per poter visualizzarne il contenuto è necessario inserire nome utente e password.</p>
<p>La <strong>based authentication</strong> si basa sulla codifica <strong>Base64</strong>. Il nume utente e la password, nella forma <strong>numeutente:password</strong>, vengono convertiti in un unica stringa  di caratteri.  Per la conversione<strong></strong>, potete utilizzare diversi servizi online oppure scaricare la mia app <a href="https://logicaprogrammabile.it/wp-content/uploads/2011/11/ConvertBase64.zip">ConvertBase64</a>.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/03/Base64Conv.png"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-3430" alt="based authentication" src="https://logicaprogrammabile.it/wp-content/uploads/2013/03/Base64Conv.png" width="330" height="237" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/03/Base64Conv.png 330w, https://logicaprogrammabile.it/wp-content/uploads/2013/03/Base64Conv-300x215.png 300w" sizes="(max-width: 330px) 100vw, 330px" /></a></p>
<p><span id="more-3417"></span></p>
<p>Il codice seguente è pronto all&#8217;uso, dovete cambiare solamente l&#8217;indirizzo ip, adattando lo alla vostra rete locale.</p>
<p>[c]<br />
#include &quot;SPI.h&quot;<br />
#include &quot;Ethernet.h&quot;<br />
#include &quot;WebServer.h&quot;</p>
<p>//definisco mac address e indirizzo ip<br />
static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };<br />
static uint8_t ip[] = { 192, 168, 1, 10};</p>
<p>//creo un oggetto webduino<br />
WebServer webserver(&quot;&quot;, 80);</p>
<p>//funzione che crea la pagina principale del sito<br />
void defaultCmd(WebServer &amp;server, WebServer::ConnectionType type, char *, bool)<br />
{<br />
  server.httpSuccess();<br />
  if (type != WebServer::HEAD)<br />
  {<br />
    //invio al browser la pagina principale<br />
    P(helloMsg) = &quot;&lt;h4&gt;Accedi:&lt;/h4&gt;&lt;a href=\&quot;private.html\&quot;&gt;Pagina Privata&lt;/a&gt;&quot;;<br />
    server.printP(helloMsg);<br />
  }<br />
}</p>
<p>//questa funzione permette di verificare il nome utente e la password<br />
//e in caso di successo di visualizzare la pagina privata<br />
void privateCmd(WebServer &amp;server, WebServer::ConnectionType type, char *, bool)<br />
{<br />
  //user= admin<br />
  //password= admin</p>
<p>  //verifico nome utente e password<br />
  if (server.checkCredentials(&quot;YWRtaW46YWRtaW4=&quot;))<br />
  {<br />
    //in caso affermativo&#8230;<br />
    server.httpSuccess();<br />
    if (type != WebServer::HEAD)<br />
    {<br />
      //invio al browser la pagina privata<br />
      P(helloMsg) = &quot;&lt;h3&gt;Buongiorno Admin!&lt;/h3&gt;&quot;;<br />
      server.printP(helloMsg);<br />
    }<br />
  }<br />
  else<br />
  {<br />
    //creo una risposta http<br />
    //nel caso in cui si tenta un accesso<br />
    //no autorizzato<br />
    server.httpUnauthorized();<br />
  }<br />
}</p>
<p>void setup()<br />
{<br />
  //inizializzo la ethernet shield<br />
  Ethernet.begin(mac, ip);<br />
  //definisco funzione che gestisce<br />
  //la pagina principale del sito<br />
  webserver.setDefaultCommand(&amp;defaultCmd);<br />
  webserver.addCommand(&quot;index.html&quot;, &amp;defaultCmd);<br />
  //definisco la funzione che gestisce la pagina privata<br />
  webserver.addCommand(&quot;private.html&quot;, &amp;privateCmd);</p>
<p>  //inizializzo la libreria webduino<br />
  webserver.begin();<br />
}</p>
<p>void loop()<br />
{<br />
  char buff[64];<br />
  int len = 64;</p>
<p>  webserver.processConnection(buff, &amp;len);<br />
}<br />
[/c]</p>
<p>La libreria Webduino è molto flessibile e permette di realizzare applicazioni interessanti in modo molto veloce.</p>
<p>The post <a href="https://logicaprogrammabile.it/based-authentication-webduino-accedere-pagina-protetta/">Webduino Based Authentication. Accedere ad una pagina privata</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/based-authentication-webduino-accedere-pagina-protetta/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Visualizzare immagini con un Webserver Arduino</title>
		<link>https://logicaprogrammabile.it/visualizzare-immagini-con-arduino-webserver/</link>
					<comments>https://logicaprogrammabile.it/visualizzare-immagini-con-arduino-webserver/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Wed, 25 Jan 2012 07:00:49 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Arduino Webserver]]></category>
		<category><![CDATA[Base64]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=2472</guid>

					<description><![CDATA[<p>Visualizzare immagini in una pagina web gestita da Arduino Quando utilizziamo Arduino Ethernet (o EthernetShield) in modalità webserver, non è disponibile una funzione nativa che permetta di visualizzare una immagine nella pagina web generata da Arduino. Esiste però un metodo molto semplice che permette di...</p>
<p>The post <a href="https://logicaprogrammabile.it/visualizzare-immagini-con-arduino-webserver/">Visualizzare immagini con un Webserver Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Visualizzare immagini in una pagina web gestita da Arduino</h3>
<p>Quando utilizziamo <a title="Scheda Arduino Ethernet all in one" href="https://logicaprogrammabile.it/scheda-arduino-ethernet-all-in-one/" target="_blank"><strong>Arduino Ethernet</strong></a> (o EthernetShield) in modalità webserver, non è disponibile una funzione nativa che permetta di visualizzare una immagine nella pagina web generata da Arduino. Esiste però un metodo molto semplice che permette di visualizzare delle immagini, di piccole dimensioni, utilizzando la codifica<strong> <a href="http://it.wikipedia.org/wiki/Base64" target="_blank">Base64</a></strong>.</p>
<p>L&#8217;idea è quella di utilizzare una stringa che codifica un file immagine, da inserire nello sketch. Diversi siti web offrono un convertitore online che codifica un file immagine (jpg, gif o png) in una stringa equivalente in standard Base64.<br />
Per questo tutorial ho utilizzato il servizio di <strong>webcodertools.com</strong> disponibile a <a href="http://webcodertools.com/imagetobase64converter" target="_blank">questo indirizzo.</a> Basta caricare un file immagine per ottenere direttamente una stringa Base64 con in aggiunta il tag html img.</p>
<p><span id="more-2472"></span></p>
<p>Ad esempi questo file immagine png :</p>
<p><img decoding="async" class="aligncenter size-full wp-image-2476" title="logo2" src="https://logicaprogrammabile.it/wp-content/uploads/2012/01/logo2.png" alt="" width="16" height="16" /></p>
<p>viene convertito nella seguente stringa</p>
<pre>&lt;img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABWklEQVQ4ja1TMUvDQBT+7iztWsSlHZLJZigFC12FiINzx26SKVtnHcxlcXcyixEnR107FPIDChXEoTpoMrRLkYIuLdjnYO+4tA1Y8YPj4H3v+97du3eMiKBj69SrzA2zBUAgDcGT+Pbr3H/Wg0w3YEHorREuQ5Dr+CsGLAgpU7IG5DoMALhWeSNIDeMnZ5W5YQ4AYG9nG8V8AZPZFA/j95RgHceT2MotGobrg30cW7tKEA1HaHa6AIC7o0PY5ZLi7l9jNDtdzA2zxXB5RaJRh9eogwWhfkdEwxEAwC6XVji/14fo9X960K5VUwmLO8Iul1Jich3FtWtVqCYWC3mVINcyZEzuUpMDgLePT+WcBRaEINdROZPpTJ1A3AxeVqrKHkTDUerokrt4fAIAoZ7xL6/Ak9hiRKRGeMM5EOQ6/v+MshYQv9AKKU4ZLEx8nsRWhpHgSWzpPxEAvgHST7pu8mrutQAAAABJRU5ErkJggg==" /&gt;</pre>
<p>mentre il codice seguente è uno sketch webserver che crea una pagina html con l&#8217;immagine codificata:</p>
<p>[c]<br />
/*<br />
  Semplice Controllo remoto<br />
  Gennaio 2012<br />
  Marco Lai<br />
*/</p>
<p>//Librerie impiegate per il progetto<br />
#include &lt;SPI.h&gt;<br />
#include &lt;Ethernet.h&gt;</p>
<p>//Creao un array di byte per specificare il mac address<br />
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };<br />
//creo un array di byte per specificare l&#8217;indirizzo ip<br />
byte ip[] = {xxx, xxx, xxx, xxx}; //modificate questo valore in base alla vostra rete</p>
<p>char Data_RX;</p>
<p>//creao un oggetto server che rimane in ascolto sulla porta<br />
//specificata<br />
EthernetServer ArduinoServer(80);</p>
<p>void setup()<br />
{<br />
    //inizializza lo shield con il mac e l&#8217;ip<br />
    Ethernet.begin(mac, ip);<br />
    //inizializza l&#8217;oggetto server<br />
    ArduinoServer.begin();<br />
}</p>
<p>void loop()<br />
{<br />
    EthernetClient pc_client = ArduinoServer.available();</p>
<p>    //controllo se pc_client è true<br />
    if (pc_client != false)<br />
    {<br />
        //controllo continuamente che il client sia connesso<br />
        while (pc_client.connected())<br />
        {<br />
            //Controllo se ci sono byte disponibili per la lettura<br />
            if (pc_client.available())<br />
            {<br />
                //leggo i byte disponibili<br />
                //provenienti dal client<br />
                Data_RX = pc_client.read();</p>
<p>                //Attendo che tutti i byte siano letti<br />
                //quando Data_RX contiene il carattere<br />
                //di nuova line capisco tutti i byte sono<br />
                //stati letti<br />
                if (Data_RX == &#8216;\n&#8217;)<br />
                {<br />
                    //Invio la risposta al client<br />
                    //invio lo status code<br />
                    pc_client.println(&quot;HTTP/1.1 200 OK&quot;);<br />
                    //imposto il data type<br />
                    pc_client.println(&quot;Content-Type: text/html&quot;);<br />
                    pc_client.println();<br />
                    //invio codice html<br />
                    pc_client.print(&quot;&lt;html&gt;&lt;body&gt;&quot;);<br />
                    pc_client.print(&quot;&lt;head&gt;&quot;);<br />
                    //questo codice html permette di eseguireil refresh automatico<br />
                    //della pagina html<br />
                    pc_client.print(&quot;&lt;META HTTP-EQUIV=&#8217;refresh&#8217; CONTENT=&#8217;5; /&#8217;&gt;&quot;);<br />
                    pc_client.print(&quot;&lt;/head&gt;&quot;);</p>
<p>                    pc_client.print(&quot;Arduino visualizza l&#8217;immagine &quot;);<br />
                    pc_client.print(&quot;&lt;img alt=\&quot;\&quot; src=\&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABWklEQVQ4ja1TMUvDQBT+7iztWsSlHZLJZigFC12FiINzx26SKVtnHcxlcXcyixEnR107FPIDChXEoTpoMrRLkYIuLdjnYO+4tA1Y8YPj4H3v+97du3eMiKBj69SrzA2zBUAgDcGT+Pbr3H/Wg0w3YEHorREuQ5Dr+CsGLAgpU7IG5DoMALhWeSNIDeMnZ5W5YQ4AYG9nG8V8AZPZFA/j95RgHceT2MotGobrg30cW7tKEA1HaHa6AIC7o0PY5ZLi7l9jNDtdzA2zxXB5RaJRh9eogwWhfkdEwxEAwC6XVji/14fo9X960K5VUwmLO8Iul1Jich3FtWtVqCYWC3mVINcyZEzuUpMDgLePT+WcBRaEINdROZPpTJ1A3AxeVqrKHkTDUerokrt4fAIAoZ7xL6/Ak9hiRKRGeMM5EOQ6/v+MshYQv9AKKU4ZLEx8nsRWhpHgSWzpPxEAvgHST7pu8mrutQAAAABJRU5ErkJggg==\&quot; /&gt;&quot;);</p>
<p>                    pc_client.print(&quot;&lt;/body&gt;&lt;/html&gt;&quot;);</p>
<p>                    //aspetto 1 ms affinche la risposta giunga al browser del client<br />
                    delay(1);<br />
                    //esco dal ciclo while una volta completato l&#8217;invio della risposta<br />
                    break;<br />
                }<br />
            }<br />
        }<br />
        //chiudo la connessione<br />
        pc_client.stop();<br />
    }<br />
}</p>
<p>[/c]</p>
<p>Con questo metodo sarà più semplice creare pagine html più accattivanti utilizzando codice html e immagini codificate in Base64.<br />
L&#8217;unica limitazione sta nella dimensione dell&#8217;immagine, infatti con un file grande otterremo una stringa enorme, saturando cosi la memoria dell&#8217;Arduino, in questo caso però potremmo utilizzare la memoria microSD.</p>
<p>The post <a href="https://logicaprogrammabile.it/visualizzare-immagini-con-arduino-webserver/">Visualizzare immagini con un Webserver Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/visualizzare-immagini-con-arduino-webserver/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Come aggiornare l&#8217; host no-ip tramite Arduino ethernet</title>
		<link>https://logicaprogrammabile.it/aggiornare-no-ip-arduino-ethernet/</link>
					<comments>https://logicaprogrammabile.it/aggiornare-no-ip-arduino-ethernet/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Wed, 09 Nov 2011 10:37:02 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Arduino ethernet]]></category>
		<category><![CDATA[Base64]]></category>
		<category><![CDATA[Controllo remoto]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=2191</guid>

					<description><![CDATA[<p>Creare un update client per sincronizzare l&#8217; host no-ip.com con l&#8217;indirizzo del router L&#8217;articolo precedente illustrava come creare un account no-ip.com con relativo host che tenesse traccia dell&#8217;ip del router &#8220;domestico&#8221;. Questa procedura richiede l&#8217;installazione di un update client sul pc, nella rete domestica, capace...</p>
<p>The post <a href="https://logicaprogrammabile.it/aggiornare-no-ip-arduino-ethernet/">Come aggiornare l&#8217; host no-ip tramite Arduino ethernet</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Creare un update client per sincronizzare l&#8217; host no-ip.com con l&#8217;indirizzo del router</h1>
<p>L&#8217;articolo precedente illustrava come creare un account <strong>no-ip.com</strong> con relativo host che tenesse traccia dell&#8217;ip del router &#8220;domestico&#8221;. Questa procedura richiede l&#8217;installazione di un update client sul pc, nella rete domestica, capace di aggiornare periodicamente l&#8217;host remoto.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/11/update.jpg"><img decoding="async" class="aligncenter wp-image-2202 size-full" title="update" src="https://logicaprogrammabile.it/wp-content/uploads/2011/11/update.jpg" alt="host no ip tutorial Arduino" width="298" height="246" /></a></p>
<p>L&#8217;operazione risulta scomoda poiché il PC deve rimanere acceso per effettuare l&#8217;aggiornamento. Fortunatamente esiste un metodo basato su richiesta <strong>http</strong> che permette di utilizzare direttamente <strong>Arduino</strong> per sincronizzare l&#8217;host con l&#8217;ip del router.</p>
<p><span id="more-2191"></span>La richiesta di aggiornamento va indirizzata a uno di questi URL</p>
<p style="text-align: center;"><strong>http://dynupdate.no-ip.com/nic/update</strong></p>
<p style="text-align: center;"><strong>https://dynupdate.no-ip.com/nic/update</strong></p>
<p>mentre la struttura della richiesta deve seguire questo formato</p>
<pre class="lang:xhtml decode:true ">GET /nic/update?hostname=Nomehost&amp;myip=IndirizzoIP HTTP/1.0
Host: dynupdate.no-ip.com
Authorization: Basic NomeUtentePasswordBase64
User-Agent: NomeClient/Versione IndirizzoMail</pre>
<p>&nbsp;</p>
<p>dove</p>
<p><strong>NomeHost</strong> = Il nome dell&#8217;host come registrato nella procedura <strong>Create Host</strong> del sito <strong>no-ip.com</strong><br />
<strong>IndirizzoIP</strong> = Qui va messo l&#8217;indirizzo ip che vogliamo associare all&#8217;host remoto<br />
<strong>NomeUtentePasswordBase64</strong> = Qui dobbiamo inserire il nome utente e la password del nostro account no-ip in formato <a href="http://it.wikipedia.org/wiki/Base64" target="_blank">Base64</a>. Il nome utente e la password vanno separati da un segno di due punti (<strong>Nomeutente:Password</strong>)<br />
<strong>NomeClient</strong> = Il nome del client che esegue l&#8217;aggiornamento (Nome di libera scelta)<br />
<strong>Versione</strong> = La versione del client che esegue l&#8217;aggiornamento (Nome di libera scelta)<br />
<strong>IndirizzoMail</strong> = il nostro indirizzo mail (Mail di libera scelta)</p>
<p>quindi la richiesta assumerà questa struttura</p>
<pre class="lang:xhtml decode:true ">GET /nic/update?hostname=host.no-ip.com&amp;myip=192.168.1.1 HTTP/1.0
Host: dynupdate.no-ip.com
Authorization: Basic aW86YW1vIGlsIHRhZWt3b25kbw==
User-Agent: arduino_ethernet/1.0 info@gmail.com</pre>
<p>&nbsp;</p>
<p>Il problema principale è che <strong>Arduino</strong> non si riesce a ottenere, direttamente e in modo semplice,  l&#8217;ip dinamico del router per poterlo inserire nella richiesta http. Fortunatamente omettendo totalmente questo parametro, il servizio  <strong>dynupdate.no-ip.com</strong> utilizza l&#8217;ip della connessione che corrisponde proprio all&#8217;indirizzo dinamico del nostro router. La richiesta, per funzionare, va riscritta in questo modo:</p>
<pre class="lang:xhtml decode:true ">GET /nic/update?hostname=host.no-ip.com HTTP/1.0
Host: dynupdate.no-ip.com
Authorization: Basic aW86YW1vIGlsIHRhZWt3b25kbw==
User-Agent: arduino_ethernet/1.0 info@gmail.com</pre>
<p>&nbsp;</p>
<p>Utilizziamo per questo test direttamnete lo scketch di esempio proposto dall&#8217;IDE (File-&gt;Examples-&gt;Ethernet-&gt;WebClient) e modifichiamolo secondo le nostre esigenze.</p>
<p>Per creare la connessione, nello skecth non è possibile immettere direttamente l&#8217;url del servizio (<strong>dynupdate.no-ip.com</strong>) ma il suo relativo indirizzo ip ottenibile tramite il sito<a href="http://www.mostraip.it/LocalizzaSito.aspx" target="_blank"> mostraip.it.</a></p>
<p>Modifichiamo il codice:</p>
<pre class="lang:arduino decode:true ">#include &lt;Dhcp.h&gt;
#include &lt;Dns.h&gt;
#include &lt;Ethernet.h&gt;
#include &lt;EthernetClient.h&gt;
#include &lt;EthernetServer.h&gt;
#include &lt;EthernetUdp.h&gt;
#include &lt;SPI.h&gt;


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //mac ethernet
byte ip[] = { 192, 168, 1, 190 }; //indirizzo locale dell’Arduino
byte server[] = {8, 23, 224, 120}; //dynupdate.no-ip.com

//creo un client che punta al
//servizio dynupdate.no-ip.com sulla porta 80
EthernetClient client;

void setup() {
  //Avvio la connessione
  Ethernet.begin(mac, ip);
  //inizializzo la seriale
  Serial.begin(9600);
  //aspetto che il chip wiznet sia inizializzato
  delay(1000);

  Serial.println("Connessione in corso…");

  //se la connessione avviene con successo
  //invio la richiesta http
  if (client.connect(server, 80)) {
    Serial.println("Connesso");

    client.println("GET / nic / update ? hostname = host.no - ip.com HTTP / 1.0");
    client.println("Host: dynupdate.no - ip.com");
    client.println("Authorization: Basic aW86YW1vIGlsIHRhZWt3b25kbw == ");
    client.println("User - Agent: arduino_ethernet / 1.0 info@gmail.com");

    client.println();
  }
  else
  {
    //Problemi nella connessione
    Serial.println("connessione fallita!");
  }
}

void loop()
{
  //restituisco il messaggio inviato dal servizio
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  //Quando il server si disconnette fermo il client
  if (!client.connected()) {
    Serial.println();
    Serial.println("Disconessione");
    client.stop();

    //ciclo infinito
    for (;;)
      ;
  }
}</pre>
<p>&nbsp;</p>
<p>Questo procedimento, secondo me, risolve il fastidioso problema di tenere il pc accesso per eseguire la sincronizzazione tra l&#8217;ip del router e l&#8217;host remoto, permettendo quindi di creare soluzioni web-based impiegando Arduino.</p>
<p>In allegato trovate un semplice programma che vi permette di convertire il vostro nome utente e la password in una stringaBase64, per far girare il programma dovete avere installato il .net framework 2.0</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/11/ConvertBase64.zip">ConvertBase64</a></p>
<p>The post <a href="https://logicaprogrammabile.it/aggiornare-no-ip-arduino-ethernet/">Come aggiornare l&#8217; host no-ip tramite Arduino ethernet</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/aggiornare-no-ip-arduino-ethernet/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
	</channel>
</rss>
