Generare i QR Code con Arduino e con programmi online

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.

QR Code - Codice QR - Arduino - blog sciamannalucio - codice QR pochi dati
Testo: QR Code

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

QR Code - Codice QR - Arduino - blog sciamannalucio - codice micro QR
esempio micro QR Code

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.

QR Code - Codice QR - Arduino - blog sciamannalucio - esempio libreria arduino

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:

QR Code - Codice QR - Arduino - blog sciamannalucio - esempio libreria arduino

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:

QR Code - Codice QR - Arduino - blog sciamannalucio - esempio 3 libreria arduino

Con il formato digitale e la libreria grafica Adafruit ecco quello che appare sul display Nokia 5110:

QR Code - Codice QR - Arduino - blog sciamannalucio - prova libreria QRCode generator

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

QR Code - Codice QR - Arduino - blog sciamannalucio - codice QR Code

Questo è in alternativa e genera un file di 647 byte per memorizzare la stessa informazione, e cioè il testo “QR Code”.

Generatore Online gratis

QR Code - Codice QR - Arduino - blog sciamannalucio - codice QR pochi dati

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:

BMP (Windows) Header Format

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”

Free Online generator

da Wikipedia

encoder C library

VIDEO come creare un immagine BitMap con Text Editor NotePad++

VIDEO Come creare un immagine BitMap con C++

A beginner guide to BitMap

Com’è fatto un file BitMap

Autore dell'articolo: Lucio Sciamanna