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!
Tags:
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.
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!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por