Fala galera!

Estou num projeto pessoal já faz algum tempo, mas durante esses últimos 2 meses venho me dedicando mais a ele e esta quase pronto. Consiste em um computador de bordo para um fiat pálio 1998. Com um notebook(dois em um) rodando um programa em java comunico com dois arduinos unos que fazem a interacao homem e maquina. Quero partir para um aplicativo Android que tenha a mesma estrutura do programa java no pc, e que ao realizar comandos a partir do Android atualize o programa em java no PC e vice-versa. Fiz algumas pesquisas na web mas realmente não achei o que eu preciso. Alguem já teve sucesso com esse tipo de estrutura e possa me ajudar indicando ferramentas, tutoriais, etc?

Como alternativa pensei em um modulo bluetooth ou wifi no Arduino que recebe os comandos do aplicativo Android, com isso o próprio código do Arduíno, através das comunicações serias informa ao programa que houve mudanças.  Do mesmo modo, quando o programa java sofrer alterações enviar essas alterações para o Arduíno, e do Arduíno para o aplicativo Android. Me parece ate uma solução simples, porem não sei ao certo se e eficaz e melhor que outras solucoes.

Para explicar melhor. No aplicativo java no PC, um botão liga o carro, o arduino recebeu o comando através de um carácter na conexão serial e aciona um rele, nisso a GUI java atualiza. Gostaria de implementar aqui, uma função para que o aplicativo Android rodando em segundo plano(por exemplo) atualizasse na sua intetface que o carro ligou.

Fico no aguardo da ajuda de vocês, que alias nunca me deixa não mao!

Exibições: 643

Responder esta

Respostas a este tópico

Apenas uma consideração, não conheço o seu sistema, mas considere que o um automóvel é um ambiente hostil para a eletrônica, o alternador e as velas geram ruído eletromagnético. A rede de comunicação cabeada deve ser diferencial, exemplo, CAN ou RS485, considere também o tratamento de erro das mensagens.
Bom dia Flavio. Obrigado pela dicas!

O sistema mecânica do carro e hostil mesmo, interferencias do motor, dos componentes eletricos "pesados", a escassez de energia. Porem, tenho equipamento sonoro no carro e foi um custo deixar toda a infrestrutura correta para o bom funcionamento sem interferências. Todo o cabeamento foi trocado para cabos anti ruido, usado conectores banhados a niguel, processador de audio,tem alimentação em duas baterias, etc. Aproveitando desses materiais consegui uma infra estrutura adequada para a eletrônica do Arduíno. Tem funções básicas, apenas liga o carro, modulo, som e farois de milha. O alarme também esta ligado ao arduino, assim como sensores de temperatura, rmp, marcha, freio de mao, portas e presença. Tambem estou implementando um sistema basico para navegacao sem uso de gps, apenas para informar rotas, tempo de percurso, coisa simples apenas consultando sites na web. Coloquei dois Arduíno, um ligado em cada bateria para ter melhor aproveitamento energetico. Alem de que um e responsável pelos acionamentos e o outro recebe valores dos sensores. Ao todo são 6 conexões seriais. Nao fiz nenhuma alteracao nos sistemas do carro, apenas implementei, por exemplo, ele nao tinha sensor de temperatura dagua, apenas valvula espia, aproveitei e coloquei um sensor no radiador do carro. No programa em java ha sim tratamentos para as excessos, nos testes enquanto densevolvia o aplicativo era a desconexão do cabo usb e a abertura de conexões simulataneas que sempre geravam excessoes, mas abri um topico aqui no ldg e a galera me ajudou a sanar este problema, e que já esta resolvido. Agora e um aplicativo Android para que eu possa ligar o carro remotamente, poderia usar por exemplo, um programa como o Team Viewer para isso, porem não fica legal e prefiro um aplicativo criado por mim, aguardo ajuda dos membros nessa empreitada!

Boa tarde, então existem diversas formas de resolver o seu "problema", vou citar duas.

1) Use uma shield bluetooth no arduino e comunique com o app (relativamente simples de ser feito, em vista que o Arduino vai enxergar a shield como um comando via serial)

2) Crie uma rede wireless local no seu notebook, faça um webapp ou um esquema de socket no programa Java onde o aplicativo se conecte no mesmo para enviar os comandos.

Se puder subir o codigo do programa Java no Github eu te ajudo.

Boa tarde João, obrigado pelo contato, e a ajuda, vou querer sim porque nas pesquisas da web perdese muito tempo com pesquisas, as vezes quando pesquisamos, não sabemos 'como pesquisar' acabo perdendo 2 a 3 dias num problema que quando resolve era relativamente muito simples. Pensei na alternativa bluetooth e acho que consiguo implementar sozinho, porem, como aprendizado e querendo começar a programar em javascript ou qualquer linguagem web estou e querendo fazer o webapp, vi sobre sockets e quero começar logo, se tiver matéria relativo já me ajudaria! Fico no aguardo e obrigado!

Segue esse código de um servidor e o código de um cliente Socket em Java.

Servidor:

https://drive.google.com/open?id=0BxSb73PnLFq4Tnh1eThQck5oRW8

Cliente:

https://drive.google.com/open?id=0BxSb73PnLFq4M1VSRlMtcXR2MHM

Talvez ajude.

Quanto a webApp, eu tenho um no modelo REST implementado em PHP e Node. Ambos se comunicam com um banco de dados MySQL (se for fazer algo mais elaborado, como log eventos ou login e senha personalizados)

https://github.com/joaopandolfi/LES_2017

Aqui o mesmo projeto de servidor, mais simples:

https://github.com/joaopandolfi/health-dome/tree/master/server-dome

Boa Noite João.

Os codigos que me enviou funcionou bem e ja adaptei ao meu app java. A conexao socket Funciona bem, ja consiguo por exemplo, ligar o carro via socket usando um app de comunicacao socket no android(Logo quando terminar de criar a conexao socket recebendo e transmitindo dados comeco a aplicacao android propria).  Porem dentro dela estou precisando criar um metodo "escrever" para enviar a resposta pela conexao socket na mesma porta da comunicacao(Que alias ja esta aberta quando a thread foi iniciada). Me da umas dicas de como posso construir este medodo. Li sobre as sinalizações e sleep em thread mas acho que nao serviram para criar este metodo. Fico no aguardo!

Vou escrever um exemplo simples e te mando p vc desenvolver a partir dele.

Abraço.

Opa, fico agradecido, estou no aguardo pois nao consegui ainda!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço