problema antenna gps bluetooth con arduino

Salve a tutti, rovistando nei cassetti ho trovato un antennina gps bluetooth per palmari funzionante, l'ho subito connessa al pc e ho visto tutti i dati in arrivo via seriale virtuale ]:D ! Ora vorrei sapere: io ho dei modulini bluetooth per arduino tra cui uno master (HC-05) e vorrei sapere se lo posso collegare all' antennina, la mia preoccupazione è circa l'avvio della comunicazione visto che sarebbe il modulino hc-05 a dover attivare per primo la connessione. Spero di essermi spiegato bene. Grazie Cesare

pitussoooooo ho bisogno di teeeeee :stuck_out_tongue_closed_eyes:

Ciao :stuck_out_tongue_closed_eyes:

io ho dei modulini bluetooth per arduino tra cui uno master (HC-05) e vorrei sapere se lo posso collegare all' antennina, la mia preoccupazione è circa l'avvio della comunicazione visto che sarebbe il modulino hc-05 a dover attivare per primo la connessione.

forte, pure io ho una antenna GPS BT (che però era pessima :cold_sweat:), me ne ero scordato! In teoria (dico in teoria, perchè devo provare pure io), dopo aver fatto il pairing (AT+PAIR), effettui una connessione (AT+LINK)

scusa ma non ho ben capito :roll_eyes: inoltre non sono mai riuscito ad usare i comandi at sul mio hc-05 su breakout board

Ciao, innanzitutto, che breakout usi (non ricordo)?

ah, ho preso il modulino su una breakout già fatta che mi porta fuori gnd, vcc, tx,rx e mode

cece99,
se non puoi usare i comandi AT è molto limitante - di fatto del modulo master non te ne fai nulla.
Puoi linkare qui il modulo che hai preso?
L’alternativa è che saldi al PIO11 (pin 34)un cavetto, e lo usi per metterlo in HIGH (a 3v3) e portalo alla modalità programmazione.

La buona notizia è che la mia antenna GPS bluetooth funziona allo stesso modo, e penso di fatto sia uno standard.

Effettuando qualche test con pc (ho letto che li hai già fatti, ma queste cose mi dan gioia :D):

$ hcitool scan
Scanning ...
	00:08:1B:00:80:C5	cpit-GPS

query sui servizi:

$ sdptool records 00:08:1B:00:80:C5
Service Name: SPP slave
Service RecHandle: 0x10000
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1

:grin:

Prima ho testato il funzionamento da pc, creando la relativa voce su /etc/bluetooth/rfcomm.conf e poi lanciando un semplice cat sul device (i passaggi si trovano ben spiegati sulla guidina bt relativa alla connessione seriale), mi son trovato di fronte il flusso di dati dell’antenna!

Poi son passato al modulo BT (in questo caso HC05).

Passaggi:

  • impostazione modulo a ruolo MASTER
AT+ROLE=1
  • settaggio codice pairing (impostato quello dell’antenna)
AT+PSWD=0000

attenzione che se non impostato al pin dell’antenna GPS, il pairing fallisce - d’altronde non ho trovato modo di passare eventuali pin

  • pairing con l’antenna
AT+PAIR=0008,1B,0080C5,20

l’address dell’antenna (ma in genere di un dispositivo) va passato nel formato XXXX,XX,XXXXXX
Il ,20 finale rappresenta un timeout per il pairing

  • link all’antenna
AT+LINK=0008,1B,0080C5

l’address dell’antenna viene passato nello stesso formato già citato
(sarebbe lo stesso fare:
AT+LINK=8,1b,80c5
)

A questo punto inizia il flusso dei dati dall’antenna GPS.

Un esempio (considera che son all’interno e non piglia nessun segnale :P):

$GPGGA,000000.000,0000.0000,S,00000.0000,W,0,00,00.0,0.0,M,0.0,M,,*52
$GPGLL,0000.0000,S,00000.0000,W,000000.000,V,A*41
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPRMC,000000.000,V,0000.0000,S,00000.0000,W,0.00,0.00,220899,,,A*7E
$GPZDA,000000.000,22,08,1999,01,00*57
$GPVTG,0.00,T,,,0.00,N,0.00,K,A*70
$GPGGA,000000.000,0000.0000,S,00000.0000,W,0,00,00.0,0.0,M,0.0,M,,*52
$GPGLL,0000.0000,S,00000.0000,W,000000.000,V,A*41
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPRMC,000000.000,V,0000.0000,S,00000.0000,W,0.00,0.00,220899,,,A*7E
$GPZDA,000000.000,22,08,1999,01,00*57
$GPVTG,0.00,T,,,0.00,N,0.00,K,A*70
$GPGGA,000000.000,0000.0000,S,00000.0000,W,0,00,00.0,0.0,M,0.0,M,,*52
$GPGLL,0000.0000,S,00000.0000,W,000000.000,V,A*41
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPRMC,000000.000,V,0000.0000,S,00000.0000,W,0.00,0.00,220899,,,A*7E
$GPZDA,000000.000,22,08,1999,01,00*57
$GPVTG,0.00,T,,,0.00,N,0.00,K,A*70
$GPGGA,000000.000,0000.0000,S,00000.0000,W,0,00,00.0,0.0,M,0.0,M,,*52
$GPGLL,0000.0000,S,00000.0000,W,000000.000,V,A*41
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPRMC,000000.000,V,0000.0000,S,00000.0000,W,0.00,0.00,220899,,,A*7E
$GPZDA,000000.000,22,08,1999,01,00*57
$GPVTG,0.00,T,,,0.00,N,0.00,K,A*70
$GPGGA,000000.000,0000.0000,S,00000.0000,W,0,00,00.0,0.0,M,0.0,M,,*52
$GPGLL,0000.0000,S,00000.0000,W,000000.000,V,A*41

Se usiamo la query MRAD (Most Recently Used Authenticated Device), ci mostra l’address della nostra antennina.

AT+MRAD
+MRAD:8:1b:80c5
OK

D’ora in poi, a meno che non si resetti il modulo o non si eliminino i device autenticati dalla pairing list, si dovrà solo effettuare il link.
Quindi, alla prossima occasione, è sufficiente:

AT+LINK=8,1b,80c5

per poter ricevere i dati.

Ovviamente qui ci scappa l’integrazione alla guidina ]:slight_smile: … è la volta buona che la aggiorno!

UPDATE
qui:
http://aprs.gids.nl/nmea/
la tabella delle sentences NMEA.

Nel mio caso (con antenna all’esterno, funziona tutto a dovere - non pubblico coordinate per ovvie ragioni :roll_eyes:), i dati che mi interessano direttamente sono:
$GPGLL (Geographic Position, Latitude / Longitude and time)
$GPZDA (Date & Time - UTC, day, month, year, and local time zone)
oppure $GPRMC, dove si trovano sia la posizione che data/ora campionamento

Certo poi si possono recuperare info relativamente al numero satelliti agganciati, e altro ancora…

ok, grazio vedo di combinare qualcosa, ma tanto per capire, ogni volta che mi voglio connettere devo dare il comando at?

Ciao

ogni volta che mi voglio connettere devo dare il comando at

ad ora non ho trovato modo di effetture il link automaticamente (mi son limitato a ripassarmi i comandi AT, in rete si potrebbe avere più fortuna). In ogni caso, se il modulo è connesso ad Arduino, non ci vedo grossi problemi.

...attualmente in uso con la libreria tinyGPS, che segnalo: http://arduiniana.org/libraries/tinygps/

Scusate se riapro questo topic ma ho notato una cosa strana:
Io ho due moduli hc-05 che ho collegato a due arduino duemilanove come convertitori seriali.
Il mio intento era quello di configurare i due moduli affinché comunicassero fra di loro allora ho fatto cosi:

Al Modulo hc-05 che ho configurato come master ho passato i segunti comandi:

AT+ROLE=1
< OK

AT+BIND=0013,01,050400 (che é l’indirizzo del modulo slave)
< OK

Le password dei due moduli sono le stesse (1234) e quindi non le ho dovute modificare.
A questo punto ho staccato i cavi usb dei due arduino e ho riportato il pin KEY di entrambi i moduli a GND.
Ho riattaccato i due cavi usb e ho aperto 2 monitor seriali e magicamente i due moduli comunicavano.
La cosa strana é che ogni volta che scollego e ricollego i i due arduino al pc, i due moduli continuano a comunicare senza la necessitá di ripassare il comando AT Per effettuare il link… É normale tutto ciò?

Si, è normale ;)

una delle funzioni di questi moduli e' proprio di ricollegarsi all'ultimo device usato. se cambi device, ad esempio ti agganci ad un telefono, poi dovrai ridare i comandi.