«

»

set 23

Stampa Articolo

Tutorial Arduino Ethernet e SD Card

Partecipando all’Arduino Camp 2011 ho approfitatto per acquistare del materiale tra cui la Ethernet Shield:

Arduino Ethernet Shield

Arduino Ethernet Shield

La shield ha anche una slot per micro SD fino a 2Gb utilizzabile per scrivere e leggere i propri file.
In questi giorni ho provato questa magnifica shield e tutte le possibilità offerte, come sempre sono partito dalla guida ufficiale presente sul sito arduino.cc e dal loro esempio per realizzare un WebServer.

Ho quindi fatto i miei primi esperimenti con lo sketch di esempio proposto anche nell’IDE, per poi sperimentare come mi piace fare, cose nuove.

L’idea

Ho immaginato di voler realizzare un server che possa avere più pagine, come se ospitasse un sito, in particolare la mia fantasia è andata oltre pensando di visualizzare questa pagina non solo su un computer ma anche su un dispositivo mobile, a mia didposzione houn iPhone 3 (vecchio, si ma fa ancora il suo dovere).

Per consentire al sito di avere più pagine e non dovermi preoccupare delle dimensioni dei file HTML ho deciso di utilizzare una micro-SD card da 2Gb su cui memorizzare i miei file HTML e da cui Arduino potesse prenderli ed utilizzarli come un comune webserver.

Vantaggi

Il primo vantaggio offerto è la possibilità di creare quante pagine desidero senza dover sottostare alle dimensioni della Flash Memory che nel mio Arduino Uno è 32 KB (ATmega328) of which 0.5 KB used by bootloader come recita la scheda tecnica del sito.

Il secondo vantaggio è che posso costruire e testare le pagine sul pc, senza dover continuamente uplodare lo sketch arduino, risparmiando:

  1. il tempo di attesa per ogni variazione
  2. il numero di riscritture dell’Arduino
  3. dover avere l’Arduino sempre collegato al computer

Terminate le prove in locale sulla SD Card, puoi inserire semplicemente la micro SD Card nello slot della Ethernet Shield e provare il tutto.

Realizzazione

Per fare questo ho prima preparato uno sketch che sfrutti le librerie: SPI.h e Ethernet.h per laparte di rete e SD.h per la lettura/scrittura sulla micro SD card.

#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,2, 130 };
File htmlFile;
Server server(80);

void setup()
{
  Ethernet.begin(mac, ip);
  server.begin();
  if (!SD.begin(4)) { return; }
}

void loop()
{
  Client client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          htmlFile = SD.open("index.htm");
          if (htmlFile) {
            while (htmlFile.available()) {
                client.print(htmlFile.read(), BYTE);
            }
            // close the file:
            htmlFile.close();
          }
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}

Passiamo allo sbroglio del programma per capirci qualcosa di più:

linee 1-3: includono le librerie appena viste;
linee: 5-8: impostano le variabili perchè lo sketch funzioni, 5 e 6 definiscono rispettivamente il MAC e L’IP della scheda Ethernet, io ho lasciato invariato il primo, in quanto deve essere un numero univoco formato da 12 cifre esadecimali dove le prime 6 individuano il vendor o costruttore della scheda e i successivi un un numero univoco sequenziale, o seriale della scheda, maggiori informazioni puoi trovarle su Wikipedia; mentre ho modificato l’IP per consentire alla scheda di essere vista nella mia rete. la linea 7 imposta la variabile di tipo File contenenete il nome del file html e la linea 8 imposta il server per rispondere sulla pora 80 (la porta HTTP);
linee 10-15: impostano la funzione di setup, in cui inizializzo la libreria Ethernet passando Mac e IP (12) impostati, inizializzo il server (13) e imposto il pin 4 come designato alla comunicazione con la micro SD card (14);
linee 17-51: definiscono la funzione loop, in particolare analizzo linea per linea quello che accade ad ogni ciclo di processo.
linee 19-20: verifico che esista una connesione da parte di un client, in assenza di tale connessione evito di eseguire alcun passaggio;
linea 21: imposto una variabile di tipo booleana a true che mi servirà in seguito;
linea 22: inizio un ciclo di tipo while all’interno del quale eseguirò delle operazioni solo fino a che la connessione del client è attiva;
linea 23: verifico per ogni ciclo del while che il client comunichi con il mio server, in caso contrario non eseguirò alcuna operazione e chiuderò la comunicazione, vedreai come alle linee 48 e 49.
linea 24: leggo dal client la richiesta della pagina;
linea 25: se la richiesta è un carattere di linea nuova (\n) e la variabile currentLineIsBlank è true inizio la mia comunicazione con il client;
linee 26-28: con il metodo println della classe client, similmente a quanto visto per l’analogo metodo della classe Serial, invio al mio client gli Header della mia pagina, questi sono standard HTML;
linea 30: finalmente leggo il mio file index.htm dalla SD card, è importante sottolineare che il nume dei file non può essere maggiore del valore 8.3 ossia 8 caratteri per il nome e 3 per l’estensione, per mia abitudine uso chiamare i miei file .html ma in questo caso non funzionerebbero in quanto la SD Library non supporta file con una estensione maggiore di 3 caratteri.
linea 31: verifico che sia riuscito a leggere il file;
linea 32: scorro lungo tutto il file, riga per riga fina alla sua conclusione;
linea 33: con il metodo print della classe client incio al mio browser (IE,Firefox,Safari,Chrome, ecc) il contenuto di tutte le linee, per ottimizzare il flusso ho utilizzato la funzione print e non println che invierebbe al termine di ogni linea un ritorno a capo;
linea 36: terminata la lettura e l’invio del file chiudo il file, questa operazione è molto imporatnte per non lasciare il file aperto ed impedire ad un successivo collegamento la possibilità di aprirlo nuovamente, causando un errore nella fase di lettura;
linee 40-45: verificano la comunicazione con il client e ricevendo una linea vuota (\n) reimpostano la currentLineIsBlank a true, in caso di ricezione di un carriege return (\r) impostano a false la stessa, impedendo al ciclo successivo di reinviare nuovamente gli header e il file già inviato (vedi linea 25);
linea 48: imposta un tempo di attesa di 1 millisecondo per ciascuna eseguzione della unzione loop.
linea 49: chiude la comunicazione con il client, avendo ultimato l’invio di informazioni e consentendo al server di rispondere alle richieste successive.

In queto esempio ho trattato la sola lettura di un file HTML, prossimamente eseguirò degli esperimenti in cui il file da leggere nonsia sempre lo stesso ma più di uno potendo inserire dei veri e propri link all’interno delle pagine.

Buon lavoro.

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/tutorial-arduino-ethernet-sdcard.html

95 comments

6 pings

Vai al modulo dei commenti

  1. armando

    quindi ricapitolando ,…

    se la sd e sola ( nel senso solo scheda) bisogna abbassare la tensione dei vari segnali .
    __________________________

    se la sd e’ gia corredata di circuito e componentistica varia ( vedi quelle in vendita gia pronte)
    non bisogna collegare circuiti intermedi ma basta collegarla direttamente al pinout di arduino (digitale)

    cosi mi pare di aver capito .

    1. Mauro Alfieri

      Ciao Armando,
      non ho mai provato a collegare una SD senza un suo circuito/shield per cui ciò che scrivi é interessante ma non posso confermartelo.

      Mauro

  2. Davide

    Ciao Mauro! Ho acquistato da poco l’ethernet shield per arduino e sto cercando di capirne il suo funzionamento. Il programma di questo articolo mi è abbastanza chiaro, eccetto un punto. Alla riga 38 non riesco a capire la funzione dell’istruzione break . Mi potresti dare delucidazioni? grazie mille!

    1. Mauro Alfieri

      Ciao Davide,
      l’istruzione break serve a interrompere il ciclo while che inizia alla linea 22.
      In pratica quando entri nella condizione di if della linea 25, esegui tutto quello che segue e arrivando alla linea 38 esci dal while.

      Mauro

      1. Davide

        Grazie mille, sei stato chiaro! Buona Pasqua!

  3. Macca96

    ciao Mauro

    un’ altra cosa se io utilizzo una micro sd da 4 gb per scrvere 2 paginette in html
    me lo legge lo stesso??
    non ho disponibile immediatamente una sd da 2 gb ovviamente dei 4gb ne userò una piccolissima
    parte.

    cosa ne pensi??

    grazie

    1. Mauro Alfieri

      Ciao Macca,
      dipende dalla Shield, alcune ignorano la dimensione accedendo solo ai 2Gb altre non leggono nulla.

      Mauro

  4. Luca

    Salve,

    Ho un dubbio.. Acquistando una Ethernet Shield, per la scrittura di un piccolo web server occorre una SD da 2GB. La SD è una qualsiasi o ne esiste una specifica per Arduino Uno Rv3?

    Inoltre, una volta comprata la SD, come si collega alla Ethernet? Esiste uno slot predisposto oppure devo acquistare un’altra specie di Shield dedicata alla SD e collegarla alla Ethernet? Nell’ultimo caso, come?

    Grazie infinite, buona sera.

    1. Mauro Alfieri

      Ciao Luca,
      la ethernet shield che utilizzo io è quella ufficiale Arduino che trovi sul loro sito.
      Ha già uno slot x microSD ed è già tutta cablata.

      Per la scrittura di un Web Server puoi cercare nel bog o in internet ci sono dei progetti interessanti.

      Mauro

  5. Matteo

    Ciao sono nei casini. Ho acquistato questa http://www.futurashop.it/images_la/8190-ETHSHIELDKIT.jpg shield ma non riesco a farla andare. Mi dai qualche consiglio?

    1. Mauro Alfieri

      Ciao Matteo,
      non conosco a shield, che chioserà monta?
      Futura di solito fornisce degli esempi, hai provato ad utilizzarli?

      Mauro

      1. Matteo

        Si ho scaricato una liberia che dovrebbe essere adatta a questa scheda, monta il chip ENC28J60, i led della lan sono accesi ma non riesco a fare il ping. Ho provato sia collegando la scheda direttamente al pc sia collegandola attraverso un router. Tu come hai collegato la scheda con il pc? Ci vuole un cavo cross? Non vorrei sia un problema di collegamento, però ho provato ma non riesco.
        Consigli??? :(

        1. Mauro Alfieri

          Ciao Matteo,
          se colleghi la scheda al Pc/Mac dovrai usare un cavo cross.
          Prova a verificare con dei debug via serial monitor che l’IP sia correttamente assegnato.
          Dopo il test precedente verifica con degli strumenti di rete (arp, arping, …) che il Mac Address dichiarato nello sketch sia associato a quell’Ip

          Mauro

          1. Matteo

            Ci sono riuscito finalmente!!!!
            Grazie.

          2. Mauro Alfieri

            Ciao Matteo,
            eccellente sono contento è questa una delle finalità del mio Blog: fornire gli strumenti conoscitivi per aiutarti nei tuoi progetti.

            Mauro

  6. Riccardo

    Ciao Mauro.

    Che formato deve avere il file “index.htm” all’interno della SD? e con quale programma compili il file index?

    grazie

    1. Mauro Alfieri

      Ciao Riccardo,
      il file è un comune file html e non devi compilarlo in nessun modo.

      Mauro

  7. Franco

    Ciao Mauro,
    ti segnalo che ho risolto il problema di lettura del sito caricato sulla SD e nello specifico:

    le righe da modificare nel tuo listato inizio pagina sono le seguenti

    modificare riga 11 in EthernetServer server(80);
    modificare riga 19 in EthernetClient client = server.available();
    modificare riga 33 in client.write(htmlFile.read());

    In particolare l’ ultima riga è stata risolutiva.
    La soluzione l’ho trovata sul listato presente a questo link (è corretto citarlo)
    http://linuxmx.it/elettronica/arduino/427-arduino-web-server.html#es1
    Ti ringrazio comunque per l’interessamento.
    Ciao

    1. Mauro Alfieri

      Grande Franco,
      sono sicuro che la tua soluzione sarà di aiuto a tanti, grazie per averla condivisa.

      Mauro

  8. Riccardo Matta

    Qualcuno di voi ha provato ad usare nel modulo Ethernet una sd più grande di 2Gb? E’ possibile usarle?
    Anche perché non sono più di facile reperibilità e lo sarà sempre di meno!!

    1. Mauro Alfieri

      Ciao Riccardo,
      le specifiche del produttore: Arduino, della SD Card utilizzabile sulla Ethernet Shield è al max di 2Gb.
      Potresti provare ad utilizzarne una di dimensione superiore creando delle partizioni a 1,9Gb.

      Mauro

  9. Mattia Dei

    Io ho riscontrato un problema sulla compilazione…
    nel pezzo di codice
    while(htmlFile.available()) {
    client.print(htmlFile.read(),BYTE);
    }
    il compilatore dell’IDE mi ha dato come errore questo messaggio: “Da Arduino IDE 1.0 la parola chiave ‘BYTE’ non è più supportata. Usa Serial.write() al suo posto”
    ho la versione 1.5.6 dell’IDE solo che non capisco come procedere, nel tuo codice hai inserito BYTE(che non so a cosa possa servire (mi serve anche la spiegazione di questo)) e invece dovrei ometterla…

    1. Mauro Alfieri

      Ciao Mattia, alcuni sketch non sono adatti a tutte le versioni dell’IDE arduino. Prova a é rificcare sulla documentazione ufficiale arduino come é cambiata la sintassi dell’IDE relativa all’oggetto client della Ethernet lib. probabilmente basta solo togliere BYTE, tuttavia devi verificare che il comando si comporti allo stesso modo.

      1. Mattia Dei

        Ciao Mauro…
        Ascolta ho riscontrato un ulteriore problema. Se carico la mia pagina “index.htm” da SD si carica bene, il problema è che la pagina index.htm è fornita di strutture CSS in un file esterno, sempre all’interno della SD, come posso fare per caricare la mia pagina con le istruzioni CSS?

        1. Mauro Alfieri

          Ciao Mattia,
          considera che, come ho scritto, devi scriverti tutta la parte di web server.
          Per capirci ogni volta che il browser incontra un tag HTML verifica se interpretarlo o se chiedere al server di servirgli la risorsa web, puoi leggere in internet uno dei tanti articoli su come funziona un webserver tipo apache.
          In arduino ogni volta che arriva una richiesta devi scrivere nello sketch come interpretarla e rispondere, al pari di come ho fatto per la pagina index.htm

          Il modo più semplice per non dover scrivere sketch complessi per le risorse css e js è inserirle nella pagina htm come testo e non come risorsa esterna.

  10. Mattia Dei

    In più mi serve una mano nel capire come aprire le pagine create in HTML (con arduino) da browser oppure direttamente faccio avviare il programma da arduino e mi si apre la pagina?

    1. Mauro Alfieri

      Ciao Mattia, non ho capito la tua richiesta, perdonami.

      1. Mattia Dei

        Praticamente quando avvio il programma con Arduino, come faccio a visualizzare a schermo il risultato della mia pagina HTML creata?

        1. Mauro Alfieri

          Ciao Mattia,
          devi collegarti con un browser all’indirizzo Ip assegnato nello sketch arduino.
          Come avrai letto l’arduino deve essere collegato alla stessa rete a cui hai collegato il Pc con il browser.

          1. Mattia Dei

            Ti spiego, Arduino è collegato direttamente al modem, mentre io sono collegato con la wifi (sempre della stessa rete)…
            Come dici tu, ho digitato l’indirizzo ip nel browser, il problema che mi dice: Impossibile collegarsi a….(il mio indirizzo ip).

          2. Mauro Alfieri

            Ciao Mattia, controlla che arduino abbia ricevuto l’IP a cui stai puntando, magari ne hai configurato uno già occupato e arduino non può averlo.

          3. Mattia Dei

            ho gia provato e un altro programma mi da proprio quell’indirizzo…

          4. Mauro Alfieri

            Ciao Mattia,
            il passo successivo è mettere nello sketch dei Serial.print e verificare che il client si connetta e fino a che punto arrivi.

            Mauro

  11. Daniele

    buon giorno,
    io ho creato un paio di pulsanti web per comandare delle luci di casa, ora vorrei per sfizio creare la pagina web e salvarla su sd . la cosa che non capisco è come richiamare i pulsanti da arduino se sono nella sd.
    grazie

    1. Mauro Alfieri

      Ciao Daniele,
      la pagina HTML la carichi direttamente sulla SD e se i pulsanti sono immegini devi scriverti tutto l’interprete, lato arduino, che comprenda la tua richiesta e ti esponga i file che chiedi.
      Non è una cosa semplice e prevede che tu conosca molto bene come funziona un web server a basso livello.
      In alternativa puoi disegnare i pulsanti con gli stili css e la visualizzazione sarà molto più semplice.

  12. Alessandro

    Salve! Io carico nella scheda microSd un file index.htm e vi scrivo una semplice stringa tipo ‘PROVA’.
    Quando vado a tentare di connettermi sul browser mi appare scritto ‘POA’ e, avendo aggiunto il serial print sul monitor seriale mi appare ‘828613495352-1828613495352-1828613-1828613-1828613-1828613-1′ . Ho modificato come suggerito nei commenti le varie righe!Saprebbe aiutarmi? Grazie mille!

    1. Mauro Alfieri

      Ciao Alessandro,
      capitava anche a me.
      Devi mettere una pagina html con tanto di tag di apertura e chiusura perchè funzioni.

  13. Karim

    Ciao Mauro

    Vorrei poter memorizzare dei dati provenienti da una shield Host USB (esattamente dei dati provenienti da una tastiera USB) e salvarli all’interno della SD (e non nella memoria di Arduino), successivamente vorrei poter caricare questi dati attraverso su rete ethernet (esattamente come fatto da te ma con il file index.htm)….pensi sia possibile farlo? o potrebbero esserci dei problemi?

    1. Mauro Alfieri

      Ciao Karim,
      penso sia possibile farlo.
      Purtroppo non ho mai provato la shield usb host e non saprei dirti come.
      Un suggerimento a mio avviso potrebbe essere l’Arduino Yùn che è dotata di un linux, di una porta host e di due interfacce di rete ( ethernet e wifi ) per cui con poco più di 50€ hai tutto e sicuramente molta più potenza e semplicità.

  14. angelo

    salve
    ho letto molte spiegazioni su arduino ma non riesco a farlo funzionare.ho incollato la libreria webduino nella cartella library del programmino java ma poi quando inserisco lo sketch mi da più errori nella compilazione.vorrei sapere gentilmente come devo fare per pilotare 2 o 3 relè con arduino e la ethernet shield?
    grazie

    1. Mauro Alfieri

      Ciao Angelo,
      ti consiglio di leggere gli articoli sulla ethernet ed i led poi sostituisci i led con dei relé.
      Ogni relé che aggiungi devi scriverti tutto il codice arduino che ti serve per interpretare le comunicazioni tra ethernet e relé.

  15. Davide

    c’è una cosa che non mi è chiara, tu scrivi: ” in caso di ricezione di un carriege return (\r) impostano a false la stessa”. Invece nel sorgente c’è scritto:

     else if (c != ‘\r’) {
              currentLineIsBlank = false;

    Quindi, è in caso di mancata ricezione di un \r che imposta a false.

    In ogni caso, visto che questo sorgente non fa altro che inviare un file html ad ogni richiesta del client, una volta ricevuto il file, il client non dovrebbe fare più richieste, quindi non capisco a cosa serva la currentLineIsBlank.

    Potresti spiegarmelo?
    Grazie

    1. Mauro Alfieri

      Ciao Davide, hai ragione é espresso male. Nella realtà potrai verificare che quel codice e la variabile currentLineIsBlank servono ad evitare al server di reinviartela gli headers della risposta http e del file HTML fino a quando non arriva dal cliente un carriege return.

      1. Davide

        questo perchè la richiesta http si conclude in pratica con un doppio \r\n. Quindi se ho capito bene leggo un byte alla volta, i primi saranno caratteri, quindi currentLineIsBlank va a false, ad un certo punto trovo \r e salta il ciclo, poi riceve \n e va a true, ma subito dopo troverà un’altro carattere diverso e quindi torna a false. Finchè la richiesta non arriva alla fine, dove troverà \n e va a true, poi troverà \r e ignorerà il ciclo e finalmente con l’ultimo \n risponderà alla richiesta.

        Credo di aver capito. Grazie :)

        1. Mauro Alfieri

          Ciao Davide, non avrei saputo spiegarlo meglio.

  16. Eliseo

    Ciao, ho un problema che non riesco proprio a capire.
    Ho scritto un programma per la gestione caldaia, con display lcd, pulsanti, e relè di controllo. Ora, funziona tutto bene, tranne quando inserisco le librerie per la SD.
    #include
    Se la inserisco, il programma lo compila correttamente, ma una volta messo sul micro, non riesce può a gestirmi il display…mi scrive solo la prima riga, come mai??
    Ho pensato che forse è troppo pieno di variabili??
    Programma senza gestione SD = 53% di sketch e 37% di variabili
    Programma CON gestione SD = 88% di sketch e 78% di variabili

    Magari mi va a sovrascrivere delle variabili??
    BOH

    Ho provato anche solo la gestione sd e funziona tutto bene, come volevo io, ma se metto assieme anche il resto del programma niente….cosa può essere?
    Forse usare contemporaneamente spi, i2c, eeprom, uart va in confusione?

    GRAZIE

    1. Mauro Alfieri

      Ciao Eliseo,
      apparentemente potrebbe essere un conflitto tra le variabili ed il loro utilizzo se il circuito montato e provato solo con lo sketch per la SD Card funziona.
      Quando incontro questo tipo di conflitti di solito preferisco cambiare una o più librerie in modo che siano compatibili tra loro.
      Uso di solito una libreria che si chiama “SdFat”, puoi scaricarla da internet, con la quale non ho mai avuto conflitti.

  17. Angelo

    Ciao, complimenti innanzitutto per la competenza che ho visto leggendo le tue risposte ai vari quesiti fatti.
    Anche io avrei un quesito da porti.
    Come potrei fare a mandare una mail utilizzando arduino e la scheda ethernet ?
    Vorrei utilizzare il server di posta del gestore di casa per inviare una mail al succedere di un processo che gestisce arduino.
    Grazie anticipatamente

    Angelo

    1. Mauro Alfieri

      Ciao Angelo, puoi provare con i comandi che solitamente si usano per inviare email tramite telnet. Non ho mai provato con arduino ma di certo é in grado di inviare comandi ad un server. In alternativa potresti cercare una libreria per l’invio email o usare la Yún sfruttando linino.

  18. georges

    bonjour , j´ai trouver des informacions de comment metre une page en javascrit , si sa peux vous etre utli:

    cet en anglais

    http://www.hackshed.co.uk/lets-build-a-functional-arduino-webserver-sdcard-ethernet/

    1. Mauro Alfieri

      Merci Georges.

  1. Mauro Alfieri » Blog Archive » Tutorial Arduino Ethernet e SD Card | Arduino - Ethernet | Scoop.it

    […] Mauro Alfieri » Blog Archive » Tutorial Arduino Ethernet e SD Card Source: http://www.mauroalfieri.it […]

  2. Mauro Alfieri » Blog Archive » Arduino, OSC e iPhone

    […] Ci sono alcune linee che si riferiscono solo alla comunicazione Ethernet, sono linee che avrai già incontrato in altri tutorial di questo sito: Tutorial Arduino Ethernet e SD Card. […]

  3. Mauro Alfieri » Blog Archive » Tutorial: Arduino, Ethernet e pagine multipre su SD Card

    […] sei tra gli appassionati che hanno già letto il mio articolo su Arduino Ethernet e SD Card, e probabilmente come altri che mi hanno scritto ti sei chiesto se è possibile realizzare un […]

  4. Tutorial: Arduino, Ethernet e pagine multiple su SD Card » Mauro Alfieri

    […] sei tra gli appassionati che hanno già letto il mio articolo su Arduino Ethernet e SD Card, e probabilmente come altri che mi hanno scritto ti sei chiesto se è possibile realizzare un […]

  5. Arduino Wifi Shield finalmente sullo store ufficiale » Mauro Alfieri

    […] livello HIGH i pin 4 e 10 rispettivamente per la SD Card e la WiFi ( leggi l’articolo sulla Ethernet Shield […]

  6. GPRS shield: arduino si connette a internet - Mauro Alfieri

    […] Vuoi connettere il tuo progetto con arduino a internet? Usa la GPRS shield. Per connettere il tuo progetto alla grande rete hai già letto come utilizzare la WiFi shield o Ethernet Shield […]

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>