User manual

tramite un LED. La costruzione di questo esperimento non differisce da quella del
precedente: un LED sul pin D9, che può essere controllato dal modulo. Ma il
codice sorgente contiene alcune novità.
Il programma
Dopo il caricamento del programma è possibile richiamare la pagina web del
controller da un browser. Per questo è necessario digitare solo l'IP del modulo,
che viene visualizzato all'avvio sul monitor seriale. In questo progetto, la pagina
stessa viene memorizzata in modo un po' diverso rispetto al precedente.
La pagina del server web
Mentre in precedenza la pagina web era stata semplicemente inclusa nel codice
sorgente, questa volta è stata memorizzata in una cosiddetta variabile Progmem
(Program Memory). L'uso di questo tipo di memoria scarica la SRAM della
scheda, che altrimenti dovrebbe memorizzare le variabili. La SRAM è di soli 2 KB
ed è già gravata dell'uso delle stringhe. Tramite la funzione Progmem il contenuto
del sito web sarà ora trasferito nella memoria del programma, che è di circa 32
KB, quindi significativamente più grande. L'accesso ai dati è tuttavia ancora più
complesso.
001
const char site[] PROGMEM = {
002
"<HTML><HEAD>\n<meta name=\"viewport\" content=\"width=device-width, initial-
scale=2.0,
003
(…)
004
};
In questo estratto si può vedere come la pagina web venga memorizzata nella
variabile Progmem. Si tratta di un lungo documento HTML in un formato C-
friendly. Il formato è caratterizzato tra l'altro dal fatto che le virgolette vengono
rappresentate nella forma \" e le nuove righe nella forma \n. Queste forme