Ricevere dati via bluetooth

Ciao Piero,
in linea di principio, sì dovrebbe funzionare.
Stai solo attento che se il tuo Android è >= 12 devi avere i permessi di BT e di Localizzazione attivi (!).
L'Arduino UNO lo connetti ad un HC05 per farlo trasmettere su BT ?
Se cerchi sul forum trovi che ci sono moltissimi esempi di connessione BT tra AI2 e Arduino con HC05, così puoi verificare passo-passo la connessione.
Oltre ai permessi di Android ci sono parecchie altre "variabili" :grinning: la connessione tra Arduino e shield (ad es. HC05) devi incrociare Tx e Rx, sull'Rx dello shield è meglio mettere un partitore resistivo per proteggerlo, dato che lavora a 3.3. V. (anche se sopravvive senza).
Il baudrate tra CPU e Shiled deve essere ovviamente lo stesso (ad es. 9600).
Attento che se usi la libreria SoftwareSerial, non funziona bene con baudrate > 38400.
nei blocchi sulla app ti consiglio di usare quelli di ricezione di text, con terminatore di stringa da parte di Arduino col carattere ASCII 0x0A (ovvero 10, o LINEFEED). Proprio ieri ho dato più o meno le stesse risposte e le trovi dettagliate qui:

[Cant receive data and count is automatic in arduino and bluetooth]

Quando ti arriva la scheda, puoi sempre provare a spedire "Hello world" con l'Arduino e vedere con un'app come Serial Bluetooth Terminal se il tuo telefono lo riceve, così verifichi che almeno la parte Arduino funziona, poi sviluppi l'app.

Ciao!

EDIT: as @Chris has said, the best way to get all the incoming characters from the BT is to wait until the last is received. This is obtained putting a -1 in the number of bytes to receive, and by sending the last character (or message) from your Arduino with a BTSerial.println("message").
The println sends a Linefeed chracater (0x0A Hex, 10 Dec) that is interpreted by AI2 as string terminator.
To show you how, I've annexed a supersimple .aia
BT_basic.aia (2.6 KB)

1 Like