Cos’è, a cosa serve un QR Code, e come integrarlo in una applicazione basata su Arduino?
Cos’è un QR Code o Codice QR ?
E’ un disegno composto da tanti puntini quadrati (bit) che tutti insieme memorizzano una informazione digitale. Il puntino nero è equivalente ad 1 bit di informazione digitale. Il puntino bianco, o l’assenza del puntino nero, è ancora una informazione digitale, in questo caso, di valore opposto al puntino nero.
Il primo esempio è un Codice che contiene il testo “QR Code”. Occupa 100 x 100 pixel.

L’esempio sotto è un micro QR Code. Si riconosce perchè ha un solo quadrato di centratura.

Un QR Code può memorizzare fino a 4296 caratteri alfanumerici. Il micro QR Code memorizza massimo 25 caratteri alfanumerici. Per fare un esempio il link del sito “http://www.sciamannalucio.it/” necessita di 29 caratteri alfanumerici.
A cosa serve ?
A memorizzare informazioni in forma grafica. Per leggere l’informazione si carica una specifica APP sul proprio telefonino smartphone. Si inquadra tutto il QR Code e la APP, o programma, restituisce il testo memorizzato.
Inventato dalla Giapponese Denso Wave è diventato molto utile e per questo è attualmente normato dalla ISO/IEC 18004:2006. La Denso Wave ha lasciato il brevetto libero con licenza gratuita.
Come integrarlo in una applicazione basata su Arduino ?
Bisogna scaricare una libreria adatta per Arduino. Per esempio questa sembra ben quotata anche sul forum ufficiale di Arduino:
Libreria Arduino per generare QR Code – RICMOO
Compilando la libreria per Arduino UNO il risultato è:
“Lo sketch usa 6458 byte (20%) dello spazio disponibile per i programmi. Il massimo è 32256 byte.
Le variabili globali usano 270 byte (13%) di memoria dinamica, lasciando altri 1778 byte liberi per le variabili locali. Il massimo è 2048 byte.”
Il file di esempio stampa sul monitor seriale un codice QR Code che descrive il testo “HELLO WORLD”. Il risultato appare come nella immagine che riporto sotto.
Provando a decrittare il contenuto con la app del mio smartphone il risultato è “03373101”, che non corrisponde al dato inserito nel generatore.
Riprovo con un altro testo da confrontare con i generatori online
Il testo è “QR Code”. Vediamo cosa esce dal monitor seriale di Arduino IDE:
Una cosa salta all’occhio: i quadrati di allineamento sono scorretti. Cambio la riga di codice che stampa i caratteri speciali e gli faccio stampare 1 e 0, come se fossero il contenuto digitale. Il risultato è di seguito:
Con il formato digitale e la libreria grafica Adafruit ecco quello che appare sul display Nokia 5110:
Se provi a scansionarlo con lo smartphone ti apparirà la scritta “QR Code”.
Programmi gratuiti online per generare un QR Code
Ce ne sono tanti ma quello che mi sembra molto completo, e gratuito, è questo:
Generatore Online gratis – NAYUKI
il file utilizza 302 byte
Questo è in alternativa e genera un file di 647 byte per memorizzare la stessa informazione, e cioè il testo “QR Code”.
Come creare con text editor un file immagine formato BitMap BMP
Questo è la struttura e come comporla per creare dal nulla un file immagine in formato BitMap BMP:
Vi servirà un programma per editare il file con formato “HEX”, come NotePad++ programma open source e gratuito (si deve aggiungere il plugin HEX Editor).
VIDEO come creare un immagine BitMap con Text Editor NotePad++
How much this post worth ? 8 hours
Link utili e Credits per “QR Code – Codice QR – Arduino”
VIDEO come creare un immagine BitMap con Text Editor NotePad++