Eu fui obrigado a montar um desses para mim por causa do GPS lixo do Samsung Galaxy E5.
A coisa é espantosamente simples quando você tem as peças. Você precisa basicamente de:
- Um módulo GPS com interface serial TTL;
- Um módulo bluetooth com interface serial TTL;
Outra forma de especificar é que os dois sejam “compatíveis com Arduino”, já que muito vendedor não sabe o que é “serial TTL”.
Como eletricamente os dois são compatíveis e geralmente essas duas classes de módulo vem programadas de fábrica com os parâmetros 9600,8N1, basta ligar a saída do GPS à entrada do módulo bluetooth para ter um módulo bluetooth GPS. Na foto abaixo, a gambiarra que fiz para colocar no porta objetos do meu UNO:

Parece ter muito fio aí mas na verdade não. O módulo GPS tem dois fios que não são necessários e você não precisa realmente usar o RX do GPS, que só é usado para reconfigurar o módulo. A coisa então se resume a alimentar os dois módulos com 5V e conectar o fio TX do GPS ao RX do BT. Mais nada além disso.
No meu carro eu já tenho vários jacks de 5V padrão USB prontos para esse tipo de coisa. Somente o módulo GPS precisa ficar visível pois precisa “ver” o céu. Esse da v.kel não precisa sempre disso pois consigo o fix mesmo antes de sair da garagem (como todo bom GPS ele consegue captar “reflexões”), mas é melhor não complicar sem necessidade. Eu gosto de ter o módulo bluetooth visível porque o LED azul dele me mostra quando a conexão com o celular está funcionando (fica aceso, sem piscar), mas não é realmente necessário.
Isso é compatível com qualquer aparelho Android que tenha bluetooth. Você recebe as coordenadas GPS habilitando “Mock Locations” e instalando uma app qualquer que repasse as coordenadas recebidas via bluetooth para o formato esperado pelo Android.
O módulo GPS
O utilizado na foto é um V.KEL VK16U6
Mas pode ser outro, como o Skylab SKM53 (eu tenho ambos).
O módulo bluetooth
Sobre esse eu já falei aqui um outro dia. O usado no meu projeto é uma versão mais simples que só tem 4 pinos, mas funcionalmente dá no mesmo. Você vai usar o modelo slave, que por sorte também é o mais comum e barato.

Como um módulo bluetooth slave só pode se conectar com um master de cada vez, se você quiser que as coordenadas GPS fiquem disponíveis para mais de um aparelho ao mesmo tempo precisa adicionar mais módulos bluetooth. Todos eles com o RX ligado ao mesmo TX do GPS. Eu não testei essa configuração, mas não deve dar problema algum.
Nessa situação você vai querer mudar o nome com que os módulos se apresentam para poder diferenciá-los. O procedimento exato para isso depende do módulo mas é sempre programado via interface serial TTL com comandos AT.
Este post está em rascunho. Se tiverem alguma dúvida razoável (se esforcem antes), falem, que esclarecerei melhor. Mas o tema “como isso funciona no Android” já foi explicado em outro post.


Excelente dica! Eu tenho um modulo bluetooth/serial desses pegando poeira, brinquei um pouco com o Arduino mas deixei de lado, mais por culpa do terrivel stack bluetotth no Windows. Essa sugestao de aplicacao e’ excelente, e permite usar apps de navegacao com um iPad WiFi, que nao tenm GPS proprio
Eu gostaria de fazer o mesmo usando dois componentes de arduino:
GPS: https://www.adafruit.com/products/746
Bluetooth: http://www.filipeflop.com/pd-b4742-modulo-bluetooth-rs232-hc-05.html
Pelo que entendi, daria pra eu ligar os dois diretos sem usar uma motherboard Arduino. Correto?
Mas não entendi como seria a ligação dos fios, principalmente como alimentar com uma bateria de 9V. Tem como você passar mais instruções sobre isso?
Obrigado!
É exatamente o que explico no texto.
Que parte de “A coisa então se resume a alimentar os dois módulos com 5V e conectar o fio TX do GPS ao RX do BT. Mais nada além disso.” você não entendeu?
Alimentar dispositivos que operam com uma tensão específica X com uma tensão arbitrária Y foge ao escopo do meu texto e da minha intenção ao escrevê-lo.
Jefferson, tirando a parte da alimentação, minha dúvida maior está sendo a seguinte: não sei seu módulo bluetooth, mas o meu trabalha com nível de sinal (RX e TX) de 3,3V. Pra ligar o TX e RX no Arduino (5V), é preciso usar um divisor de tensão (dois resistores) ou um conversor lógico 3,3-5V.
Ao eliminar o Arduino, eu teria que usar esse divisor do mesmo jeito?
Ou o GPS vai emitir pelo TX um sinal de 3,3V? Não encontrei esse tipo de informação e estou com medo de queimar o bluetooth ligando diretamente.
A tensão de TX no módulo GPS depende inteiramente do projeto do fabricante. Pode ser 5V ou 3.3V. Mesmo que seja 5V, se o RX do seu módulo bluetooth for tolerante a 5V (muitos são ou porque o chip é ou porque o fabricante colocou um zener de 3.3V limitando a tensão na entrada) não haverá qualquer problema.
Mas para saber qual a tensão de I/O do seu módulo GPS você vai ter que medir.
Acabei de pesquisar e entender melhor o que é TX e RX, e sim, os dois módulos são compatíveis pois achei essa informação no datasheet do GPS:
TX – the pin that transmits data from the GPS module to your microcontroller or computer. It is
3.3V logic level. Data comes out at 9600 baud by default
Essa era minha dúvida. Não tinha entendido bem essa comunicação entre TX e RX e o bluetooth aceita apenas 3,3V no RX, mas sem problemas nesse caso.
Obrigado!
A minha dúvida é em relação a leitura. Como o meu android receberá essas coordenadas encaminhadas pelo Gps. Se será via sms, ou como!
Você leu mesmo o meu texto? Sua dúvida está escrita da mesma forma que alguém que só leu o título escreveria.
Sim eu li, mas em relação a como o android recebe as coordenadas não ficou muito claro para mim. Eu entendi que o android recebe as coordenadas pelo “Mock Locations”, porém quero saber como essas coordenadas são encaminhadas. Simplesmente pelo Gps esta acoplado a um bluetooth, e a comunicação do bluetooth no smartphone e com “Mock Locations” ativado, já faz leitura das coordenadas? Se der para tirar essas dúvida, sem ignorância, fico muito agradecida! Se não tiver como me ajudar, também não tem problema, procuro outro alguém que saiba me responder!
Não, você certamente não leu, ou tem um grande problema para resolver (espero que seja no seu navegador) que a impede de ver o que está escrito. No mesmo parágrafo onde falo sobre mock locations eu menciono “app”. E no final do texto há um gigantesco link, de quase meia linha, apontando para outro texto com a explicação detalhada.
Eu acho extremamente rude uma pessoa vir ocupar meu tempo com algo que está tão absolutamente claro no texto. Mas parece que é pedir demais que as pessoas tenham a cortesia de ler o que tive trabalho para elaborar e testar e que ainda por cima não me achem “ignorante” por reagir ofendido com o desrespeito.
Seus próximos comentários neste blog serão ignorados.
Boa tarde,
Eu fiz toda conexão e estou alimentando o circuito pelo arduino. Porém o programa BLUETOOTH GPS, não está conseguindo fazer a leitura das coordenadas enviadas pelo gps.
Será que com o GPS6MV2, ele funciona melhor. Estou usando o SKM53 igual indicado pelo post.