Autore Topic: Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa  (Letto 915 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« il: 28 Gennaio 2016, 08:44:54 CET »
0
Salve a tutti!

Con la mia prossima app mi andrò a scontrare con tutto ciò che riguarda il mondo bluetooth, specialmente con il BLE.

Quello che vorrei chiedere a voi è se ci sono problemi particolari con questo bluetooth.... siccome i modelli di device che montano Android sono diversissimi devo prendere qualche precauzione ? Ci sono problemi legati più all'hardware che al software?
Ovviamente mi sto già studiando la documentazione google per quanto riguarda il bluetooth ma farebbe molto piacere anche avere dei resoconti di persone che hanno avuto esperienza pratica ^^

Grazie mille in anticipo!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #1 il: 28 Gennaio 2016, 08:56:53 CET »
0
Non ne ho idea. Però forse hai bisogno di 2 dispositivi con bluetooth 4.0?

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #2 il: 28 Gennaio 2016, 09:35:00 CET »
0
Cosa intenti con bluetooth 4.0?

Cioè.... teoricamente (da come ho le idee ora) la mia app deve comunicare con una chiavetta (che sia Arduino o altro ancora non ho deciso), ed il mio obbiettivo (dal lato app) è utilizzare il BLE.

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #3 il: 08 Marzo 2016, 09:35:20 CET »
0
Il Bluetooth Low Energy è il 4.0.

Ti posso dire che il Bluetooth è un ginepraio ... considera che ci sono tutta una serie di Smartphone che anche se sulla carta sono compatibili con il BT 4.0 poi con la tua App si comporteranno in modo diverso ... :(

Lato App considera che già dalla discover hai due modalità, una deprecata (API18) ed una nuova (API21); i filters funzionano solo sulla API21, sulla API18 non vanno! :(
Lato smartphone ti server un dispositivo che abbia perlomeno la 4.3. Ci sono poi dei modelli, vedi ASUS  Zenfone 5 T00P, "problematici"; non fidarti ciecamente nemmeno del fw del modulo bluetooth a cui ti connetterai, io ho trovato un sacco di problematiche, sono riuscito a metterlo pesantemente in crisi ...
Dipende cosa ci vuoi fare con li BT LE. :(

Io suggerirei, se puoi, di utilizzare il bluetooth classic.

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #4 il: 08 Marzo 2016, 11:22:30 CET »
0
Ho capito, avevo sentito delle voci sul fatto che il BLE è un casino da configurare sui vari dispositivi.
Purtroppo non posso usare il bluetooth classic perché il dispositivo a cui mi vado a collegare usa il BLE (se non mi sbaglio) e deve comunicare un sacco di dati , quindi devo puntare sulla massima efficienza per quanto riguarda il risparmio della batteria...

Comunque grazie mille!

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #5 il: 08 Marzo 2016, 11:57:45 CET »
0
Casino da configurare? Non mi risulta che ci sia da configurare, basta solamente:
- Effettuare una discover.
- Connettersi.
- Farsi inviare l'elenco dei services.
- Effettuare write e read della/e caratteristiche che ti interessano.

Posso chiederti che tipo di dispositivo devi utilizzare? In particolare conosci il chipset del bluetooth montato?
Cosa intendi per inviare un sacco di dati? Tante richieste e risposte oppure una mole di dati corposa?
In entrambe i dati di scontrerai con dei problemi; sia tanti botta-risposta che stringhe di dati maggiori di 20bytes ti potranno evidenziare delle criticità, sia dell'App, sia dello smartphone che andrai ad utilizzare, sia del fw del bluetooth del device a cui ti colleghi se non è realizzato adeguatamente.
Il BT LE andrebbe bene per pochi e limitati dati inviati saltuariamente; non è fatto per le grosse quantità anche perché va contro le sue logiche di "low energy" ... ;)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #6 il: 08 Marzo 2016, 16:21:21 CET »
0
Teoricamente dovrebbe collegarsi ad una chiavetta bluetooth di cui ancora non conosco bene le specifiche tecniche.... e dovrebbe inviare dati abbastanza spesso nel senso piccole cose ma in un lasso di tempo molto ravvicinato

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #7 il: 08 Marzo 2016, 23:55:19 CET »
0
La chiavetta bluetooth a che tipo di dispositivo è collegata? Ad un PC?
Per spedizione di dati cosa intendi di preciso? Invio di file o solo delle stringhe con dei valori numerici e/o stringhe alfanumeriche?
Già potresti interrogare qualche dispositivo BT Low Energy provando l'App "BLE SensorTag"di cui trovi anche i sorgenti, ma utilizza una libreria e non permette di inviare notifiche. :(

Da questa vedi i services e le caratteristiche; tappando potrai leggere sia il nome del bluetooth che anche il vendor e la sw rev ed altri parametri (se presenti).
Già scrivendo un'App di test potrai tu stesso leggere delle caratteristiche ... eventualmente potrai rimanere in ascolto su una particolare caratteristica se ti viene notificato qualcosa.
Hai la necessità anche di scrivere, inviare dati, o solo riceverne?

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #8 il: 09 Marzo 2016, 09:37:33 CET »
0
Guarda
Teoricamente la chiavetta si dovrebbe attaccare alla centralina della moto, ma non ne sono ancora sicuro....
Non sapendo come funziona una centralina quindi non saprei come invia i dati se in formato json o sono dei file che devo riceve e poi leggere all'interno del'app.

Per quanto riguarda i dati probabilmente dovrei inviarne anche al bluetooth (anche questo non è sicuro), sicuramente dovrei ricevere una mole di dati piccola ma ad una velocità costante.

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #9 il: 09 Marzo 2016, 10:53:17 CET »
0
Ok, presumo quindi avrai una connessione simile a quella che avviene per le centraline delle auto con l'OBDII.
A suo tempo quando avevo testato le interfacce OBDII bluetooth su centralina dell'auto erano tutte con bluetooth standard, non con LE. Dovevi perciò interrogare ogni parametro mandando delle stringhe ed ottenevi risposta. Se per caso volevi monitorare qualche aspetto dovevi continuare ad effettuare un poll, non avevi un push da parte della centralina che ti avvertiva quando un valore cambiava ... :(

Per l'OBDII il formato non era JSON! :(


A mio avviso dovrai sempre interrogare la centralina, e lei ti darà risposta, immagino che non avrà un comportamento push; se tale chiavetta si interfaccia su una presa della centralina della moto suppongo avrai lo stesso comportamento della OBDII con un protocollo di comandi, un po' come avveniva per i comandi Hayes AT dei modem.

Il fatto che utilizzi il bluetooth Low Energy è "accidentale" in questo caso ... utilizzandolo in questo modo vengono snaturati alcuni principi base e i consumi non saranno così bassi come uno potrebbe attendersi. Solamente utilizzandolo in push si ottengono degli ottimi risultati sui consumi; utilizzandolo con dei poll continui i consumi saranno simili a quelli di un bluetooth classico. ;)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #10 il: 09 Marzo 2016, 11:04:06 CET »
0
OK ho capito ^^

Speriamo che il protocollo di comunicazione sia migliore altrimenti la vedo moooolto dura xD

Grazie mille per tutte le info!

Offline wlf

  • Utente normale
  • ***
  • Post: 315
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #11 il: 09 Marzo 2016, 11:57:38 CET »
0
A mio avviso il protocollo è abbastanza semplice e robusto. Unico "limite" è che non è pensato/progettato per il Low Energy, quindi l'unico beneficio sui consumi è dato dalla radio del bluetooth che casomai consuma qualcosina meno di quella del classic, teoricamente circa la metà, ma questo dipende molto da produttore del chipset del bluetooth!



Post unito: 10 Marzo 2016, 11:20:03 CET
Se hai un sample della chiavetta bluetooth potresti interrogarla e guardare quali caratteristiche ti da il GAP Service, in particolare mi interesserebbe la caratteristica "00002a29-0000-1000-8000-00805f9b34fb", Manufacturer Name String.
Sarebbe interessante un elenco di tutti i servizi, oltre ai classici GATT Service (00001800-0000-1000-8000-00805f9b34fb) e GAP Service (00001801-0000-1000-8000-00805f9b34fb) e magari le relative caratteristiche ... ;)
« Ultima modifica: 10 Marzo 2016, 11:20:03 CET da wlf, Reason: Merged DoublePost »

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Comunicazione App-> BLE (Bluetooth Low Energy) e viceversa
« Risposta #12 il: 10 Marzo 2016, 16:34:16 CET »
0
Appena ho in mano la chiavetta provo a farti sapere ^^