Webbino - Server web "dinamico" per Arduino

Puoi metterci quel che ti pare. Normali file HTML, immagini gif, png e jpg (mi pare), ecc...

EDIT: Qui, con un po' di fantasia, vedi i tipi di file supporati. Quelli non compresi vengono inviati come configurato qui.

Ogni esempio ha una cartella webroot con qualche semplice roba di esempio.

Grazie Sukko, ho trovato il file... Ora ho un'altro problema: carico il tuo esempio SDOnly, arduino mega, shield ethernet, viene vista, in seriale vedo i dati DHCP etc.
Se inserisco la shield SD, in seriale mi da come risposta che non è possibile configurare DHCP, in pratica non viene vista la shield ethernet, come se andassero in conflitto, l'ethernet è collegata al pin 10 e infatti funziona, e la SD al pin 4.
Ho provato miei vecchi sketck con solo la shield SD e tutto funziona, quindi escludo problemi alla shield...
Ci sto impazzendo

Grazie

Prova il metodo di cui abbiamo discusso vivacemente qua sul forum tempo fa:

pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);

Aggiungi queste righe come prima cosa nel setup().

SukkoPera:
Prova il metodo di cui abbiamo discusso vivacemente qua sul forum tempo fa:

pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);

Aggiungi queste righe come prima cosa nel setup().

Provato, fa uguale...

Ma se monti lo shield SD, un qualunque esempio della libreria Ethernet funziona?

SukkoPera:
Ma se monti lo shield SD, un qualunque esempio della libreria Ethernet funziona?

No, pare non funzioni proprio la shield, sto indagando a livello hardware.
Grazie

Ho fatto alcuni test, sembra che le 2 shield non siano compatibili, a qualcuno è capitato? Sia che carico uno sketch per SD, se sta la sola shield SD, funziona, se collego anche la shield ethernet, non va più; e uguale il contrario, se carico uno sketch ethernet, se è da sola la shield ethernet, funziona, se collego anche la shield SD, non funziona più.
Naturalmente in entrambe le prove ho portato alto il pin SS della shield non utilizzata.
Magari ci sono interfacce non compatibili fra di loro? O pensate sia un problema software?
devo cercare altre shield?
Grazie mille, scusate la rottura di scatole :smiley:

Guarda, ormai non mi meraviglio più di nulla ...
... abbiamo già dimostrato in QUESTA discussione che la "USB Host Shield di Arduino" è "bacata" e NON funziona con altre schede che usano il bus SPI, quindi ... non mi stupisce se hai trovato un'altra scheda progettata con i piedi come quella ... ::slight_smile:

Bisognerebbe avere gli schemi esatti e fare le opportune verifiche ...

Guglielmo

gpb01:
Guarda, ormai non mi meraviglio più di nulla ...
... abbiamo già dimostrato in QUESTA discussione che la "USB Host Shield di Arduino" è "bacata" e NON funziona con altre schede che usano il bus SPI, quindi ... non mi stupisce se hai trovato un'altra scheda progettata con i piedi come quella ... ::slight_smile:

Bisognerebbe avere gli schemi esatti e fare le opportune verifiche ...

Guglielmo

Ah, andiamo bene, allora è possibile un problema di shield... Uff, proverò a comprare altro :wink:

thedrifter:
Ah, andiamo bene, allora è possibile un problema di shield... Uff, proverò a comprare altro :wink:

... si ma cerca di comprare qualche cosa di "documentato" !!!

Guglielmo

Ciao,
Guglielmo vedo di seguire il tuo consiglio :wink:
Una domanda a Sukko, per ora se carico la pagina nel codice, usando una mega, la memoria mi dovrebbe bastare, ma ho letto che ci vuole un programma per convertire la pagina html nelle stringhe da inserire nello sketch? Ce la posso fare? Puoi indicarmi qualcosa?
Grazie

... se guardi bene dentro la cartella di webbino, trovi una cartella tools dove trovi l'apposito programmino python (html2h.py) da usare per convertire pagine html nei files .h che cerca la libreria :slight_smile:

Guglielmo

gpb01:
... se guardi bene dentro la cartella di webbino, trovi una cartella tools dove trovi l'apposito programmino python (html2h.py) da usare per convertire pagine html nei files .h che cerca la libreria :slight_smile:

Guglielmo

Grazie, non avevo visto :slight_smile:

Rieccomi,
ho comprato la shield ufficiale, con lan e sd insieme, ora funziona tutto, riesco a vedere correttamente la pagina...
Una domanda, sicuro banale per voi, ma per accedere alla pagina dall'esterno bisogna appoggiarsi ad un server con ip fisso? Non ci sono altri metodi?
Grazie :slight_smile:

O ip fisso o metti su un server VPN e ti colleghi a questo, risultanto di fatto all'interno della tua rete anche quando sei fuori.

Il VPN è un servizio online che fornisce un ip fisso registrandosi giusto? Quindi si accede tramite hostname...
E' l'unico modo? Anche se imposto da arduino l'ip fisso e non dinamico, è uguale, bisogna sempre appoggiarsi a un servizio online?
grazie

Immagino ci siano servizi VPN online, ma personalmente non li conosco. Io uso OpenVPN su un NAS Synology o su un Rasberry Pi, gestisco la cosa da solo, insomma. Quel che uso di online è un servizio IP dinamico che mi permette di raggiungere sempre il mio IP che cambia con lo stesso hostname (ma presto gestirò da solo pure questo).

Già che siamo in tema ricordo che, come già detto in passato, un webserver su Arduino è un mezzo aborto concettuale, io sconsiglio vivamente di esporlo su Internet, la soluzione tramite VPN è l'unica accettabile per me.

SukkoPera:
Immagino ci siano servizi VPN online, ma personalmente non li conosco. Io uso OpenVPN su un NAS Synology o su un Rasberry Pi, gestisco la cosa da solo, insomma. Quel che uso di online è un servizio IP dinamico che mi permette di raggiungere sempre il mio IP che cambia con lo stesso hostname (ma presto gestirò da solo pure questo).

Già che siamo in tema ricordo che, come già detto in passato, un webserver su Arduino è un mezzo aborto concettuale, io sconsiglio vivamente di esporlo su Internet, la soluzione tramite VPN è l'unica accettabile per me.

Ciao,
premetto che non so nulla di queste cose di rete, anni fa avevo collegato arduino in rete per vedere lo stato antifurto da fuori, e ci entravo tramite un servizio di ip dinamico come dici tu.
Detto questo, non capisco perchè utilizzi un servizio VPN (gestito da te) se comunque ti devi appoggiare a qualcuno online che ci rende il nostro IP raggiungibile (per caso è per sicurezza? per gestire password etc?)
Sconsigli sempre per motivi di sicurezza? Quindi utilizzando un vpn si risolve la sicurezza?
Se non possiamo parlarne sul forum ci sentiamo in privato?
Comunque devo registrarmi su un servizio che mi indirizzi sempre? Per ora non ho alternative mi pare...
Grazie

Il tuo IP pubblico è raggiungibile comunque. C'è un sacco di gente che non ha di meglio da fare che scansionare intere classi di IP alla ricerca di porte aperte e servizi vulnerabili. Il fatto che il tuo IP diventi raggiungibile tramite ziopippo.antani.net non cambia niente. Chi proverà ad accedervi lo farà perché lo troverà scansionando l'intero range di IP Wind, ad esempio, non certo perché "azzeccherà" l'hostname che gli fai puntare.

Ora, se tu esponi un server HTTP basato su Arduino su quell'indirizzo, capisci che mandarlo in palla è questione di un attimo (bastano 5 connessioni contemporanee...), ma soprattutto se non metti nemmeno una password (cosa comunque difficile da fare BENE su Arduino) a proteggere il tuo antifurto, chiunque lo potrà disattivare.

Usare una VPN è molto più sicuro, perché diventa l'UNICO servizio esposto su Internet, e la cui affidabilità è comprovata. Inoltre, con OpenVPN ad esempio serve una chiave di 2048 byte (o anche più) per collegarsi, oltre che - volendo - nome utente e password, quindi capisci che di fatto ci potrai entrare solo tu, e a quel punto potrai collegarti all'Arduino come se fossi direttamente in LAN con lui. Inoltre tutte le comunicazioni sono cifrate in maniera più che sicura.

SukkoPera:
Il tuo IP pubblico è raggiungibile comunque. C'è un sacco di gente che non ha di meglio da fare che scansionare intere classi di IP alla ricerca di porte aperte e servizi vulnerabili. Il fatto che il tuo IP diventi raggiungibile tramite ziopippo.antani.net non cambia niente. Chi proverà ad accedervi lo farà perché lo troverà scansionando l'intero range di IP Wind, ad esempio (151.0.0.0/8 o qualcosa di simile), non certo perché "azzeccherà" l'hostname che gli fai puntare.

Ora, se tu esponi un server HTTP basato su Arduino su quell'indirizzo, capisci che mandarlo in palla è questione di un attimo (bastano 5 connessioni contemporanee...), ma soprattutto se non metti nemmeno una password (cosa comunque difficile da fare BENE su Arduino) a proteggere il tuo antifurto, chiunque lo potrà disattivare.

Usare una VPN è molto più sicuro, perché diventa l'UNICO servizio esposto su Internet, e la cui affidabilità è comprovata. Inoltre, con OpenSSL ad esempio serve una chiave di 2048 byte (o anche più) per collegarsi, oltre che - volendo - nome utente e password, quindi capisci che di fatto ci potrai entrare solo tu, e a quel punto potrai collegarti all'Arduino come se fossi direttamente in LAN con lui. Inoltre tutte le comunicazioni sono cifrate in maniera più che sicura.

Grazie, sei stato chiaro, non conoscevo queste cose, sorry, pensavo di poter fare una password nel codice di arduino, ma mi hai già risposto... vedrò di utilizzare un servizio VPN, non credo di essere in grado di farmelo come hai fatto tu, almeno per ora...
Nel frattempo vedo se riesco almeno a fare il codice per leggere dei dati e per comandare qualcosa :slight_smile:
Grazie ancora