Creare un update client per sincronizzare l’ host no-ip.com con l’indirizzo del router

L’articolo precedente illustrava come creare un account no-ip.com con relativo host che tenesse traccia dell’ip del router “domestico”. Questa procedura richiede l’installazione di un update client sul pc, nella rete domestica, capace di aggiornare periodicamente l’host remoto.

host no ip tutorial Arduino

L’operazione risulta scomoda poiché il PC deve rimanere acceso per effettuare l’aggiornamento. Fortunatamente esiste un metodo basato su richiesta http che permette di utilizzare direttamente Arduino per sincronizzare l’host con l’ip del router.

La richiesta di aggiornamento va indirizzata a uno di questi URL

http://dynupdate.no-ip.com/nic/update

https://dynupdate.no-ip.com/nic/update

mentre la struttura della richiesta deve seguire questo formato

 

dove

NomeHost = Il nome dell’host come registrato nella procedura Create Host del sito no-ip.com
IndirizzoIP = Qui va messo l’indirizzo ip che vogliamo associare all’host remoto
NomeUtentePasswordBase64 = Qui dobbiamo inserire il nome utente e la password del nostro account no-ip in formato Base64. Il nome utente e la password vanno separati da un segno di due punti (Nomeutente:Password)
NomeClient = Il nome del client che esegue l’aggiornamento (Nome di libera scelta)
Versione = La versione del client che esegue l’aggiornamento (Nome di libera scelta)
IndirizzoMail = il nostro indirizzo mail (Mail di libera scelta)

quindi la richiesta assumerà questa struttura

 

Il problema principale è che Arduino non si riesce a ottenere, direttamente e in modo semplice,  l’ip dinamico del router per poterlo inserire nella richiesta http. Fortunatamente omettendo totalmente questo parametro, il servizio  dynupdate.no-ip.com utilizza l’ip della connessione che corrisponde proprio all’indirizzo dinamico del nostro router. La richiesta, per funzionare, va riscritta in questo modo:

 

Utilizziamo per questo test direttamnete lo scketch di esempio proposto dall’IDE (File->Examples->Ethernet->WebClient) e modifichiamolo secondo le nostre esigenze.

Per creare la connessione, nello skecth non è possibile immettere direttamente l’url del servizio (dynupdate.no-ip.com) ma il suo relativo indirizzo ip ottenibile tramite il sito mostraip.it.

Modifichiamo il codice:

 

Questo procedimento, secondo me, risolve il fastidioso problema di tenere il pc accesso per eseguire la sincronizzazione tra l’ip del router e l’host remoto, permettendo quindi di creare soluzioni web-based impiegando Arduino.

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

ConvertBase64