Ir para conteúdo
JhoniWillian

Comunicação Veícular

Recommended Posts

Boa Noite galera

 

Estou em fase de desenvolvimento de TCC do meu Superior.

 

A ideia foi desenvolver um aplicativo ''simples'' porém, ''funcional'' onde seria um software de manutenção preventiva de veículos.

 

Para isso eu preciso pegar informações da centralina do carro utilizando o arduino ELM327 através da conexão OBD2.

 

Consegui fazer a conexão com o bluetooth, onde estará pareado com o arduino ELM, alguém poderia me instruir de como seguir em frente agora? como conseguir comunicar com a centralina para obter informações dela, como por exemplo. KM Atual do veículo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Bruno S. Ferreira
      Boa noite.
      Estou com uma dúvida e já vi vídeos no youtube que só enrolam e o que encontrei no google não fui capaz de captar corretamente.
      Eu sei fazer app para android (básico e tal)
      Mas seu eu quero publicar para iphone eu tenho estas dúvidas:
      ---Eu preciso ter obrigatoriamente um macbook?
      ---Eu preciso criar todo o app do zero ou poderia uma o app do android?(sei que tem o lance da chave de lá tb mas basicamente a estrutura)
      O iphone teria a opção de instalar diretamente o app sem a necessidade de estar publicado na apple store, como da pra fazer no android (onde desabilita uma opção de segurança)

      pq das duvidas... eu não tenho mac, não posso comprar um agora,
      Eu uso o celular para rodar os app android e testá-los pq se eu usar o próprio pc ele trava por falta de memória e como não tenho um iphone e não compraria só pra verificar se o app fuinciona estaria fora de cogitação tb
       
      obrigado quem puder responder
    • Por PeeWee
      Boa noite pessoal, estou iniciando em Android e Java e ja começou os problema.... como sempre. 
      Estou tentando desenvolver uma aplicação que obtenha o número do celular ou IMEI (se for o numero do celular melhor) automaticamente, de modo que o usuário nao precise preencher o campo. Bom como nao sei nada, saii pesquisando fóruns e tentando entender alguns código, e a principio o que consegui foi isso:
       
      public class Main extends Activity{
              
              private EditText edTotal;          
               @Override
                  protected void onCreate(Bundle savedInstanceState) {
                      super.onCreate(savedInstanceState);
                      setContentView(R.layout.main);              
                      
                      edTotal = (EditText)findViewById(R.id.edTotal);                
                                      
              }
               
               public void mostranum(View n){
                  
                   Activity mAppContext = null;
                  TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
                   String mPhoneNumber = tMgr.getLine1Number();
                      
                      System.out.print(tMgr);
                      edTotal.setText(String.valueOf(tMgr));
               }        
          }
      Bom acho que quem manja ja percebeu que quero mostrar na edTotal o numero do telefone, ja adicionei no android manifest a linha necessária para isso, porém ao rodar nao aparece nada no campo correspondente. Espero que algum colega possa me ajudar.
       
    • Por Dominciano
      Olá a todos.
      Pessoal, trabalho em uma empresa focada em desenvolvimento Desktop utilizando a linguagem DataFlex(sim, provavelmente você nunca ouviu falar. Rs). Meu chefe quer entrar no ramo de desenvolvimento web/mobile para o setor comercial.
      Porém, ninguém da empresa tem grande conhecimento nessa área e como grande parte dos integrantes desse grupo já estão familiarizados com 
      essa área, gostaria de pedir uma sugestão de quais seriam os melhores conjuntos de ferramentas(Linguagem, IDE, BD etc..) poderiamos usar para atender aos seguintes requisitos:
      A arquitetura seria a seguinte:
      -Pode ser pra web(e obrigatoriamente portar pra mobile, pois o foco será esse) ou um aplicativo pra smartphone.
      -Obrigatoriamente precisa sincronizar os dados com a aplicação Desktop(que utiliza o banco de dados DataFlex).
      -Obrigatoriamente ser barato(no sentido de licenciar/distribuir o sistema para os clientes)
      -A(s) ferramenta(s) de desenvolvimento podem ser pagas, desde que a distribuição seja gratuita.
      -Objetivo é baratear o preço no momento da venda do software para o cliente.
      -Os sistemas serão focados em aplicativos comerciais(padarias, bares, lojas de roupas, até mesmo para colégios etc...)
      -Futuramente, gostaríamos de não depender de internet o tempo todo para o cliente utilizar o sistema.
      -O banco de dados não deve passar dos 15kk de registros.
      Desde já, agradeço.
    • Por Luis Felipe Rebecca
      Olá,
       
      Estou fazendo um aplicativo em android e me deparei com uma duvida na hora de salvar e exibir em uma lista, os usuários de um sistema.
       
      Basicamente o app por enquanto adiciona qualquer um que voce coloque o email correto e click para executar a ação de adicionar a contato, até ai ok! tudo funcionando.
       
      Agora estou precisando fazer com quem alguns usuários sejam adicionados a contatos logo que o usuário abre o app, fiz isso colocando esse método abaixo dentro do onCreate da activity principal, novamente tudo ok!
       
      Por algum motivo ele não cadastra os 3 usuários que pre-defini na variável, imagino que seja algo relacionado ao EventListener ou o while não esta rodando e executando todos os trechos.
       
      Obrigado desde já, fico no aguardo de uma solução!
       
      *Se o processor for feito manualmente, trocando o valor do contador manualmente para 1 ou 2 ou 3 e o while for trocado para "contador == 1 ou 2 ou 3 " o código executa com perfeição e cadastra os 3 contatos.
       
      private void abrirCadastroContato() { String emailContato; emailContato = "email"; int contador = 1; while (contador <=3) { if (contador == 1) { emailContato = "email1@email1.com.br"; } if (contador == 2) { emailContato = "email1@email1.com.br"; } if (contador == 3) { emailContato = "email1@email1.com.br"; } identificadorContato = Base64Custom.codificarBase64(emailContato); firebase = ConfiguracaoFirebase.getFirebase().child("usuarios").child(identificadorContato); firebase.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.getValue() != null) { //Recuperar dados do contato a ser adicionado Usuario usuarioContato = dataSnapshot.getValue(Usuario.class); //Recuperar identificador usuario logado (base64) Preferencias preferencias = new Preferencias(MainActivity.this); String identificadorUsuarioLogado = preferencias.getIdentificador(); firebase = ConfiguracaoFirebase.getFirebase(); firebase = firebase.child("contatos") .child(identificadorUsuarioLogado) .child(identificadorContato); Contato contato = new Contato(); contato.setIdentificadorUsuario(identificadorContato); contato.setEmail(usuarioContato.getEmail()); contato.setNome(usuarioContato.getNome()); firebase.setValue(contato); } else { Toast.makeText(MainActivity.this, "Usuário não possui cadastro.", Toast.LENGTH_LONG).show(); } } @Override public void onCancelled(DatabaseError databaseError) { } }); contador ++; } }  
       
    • Por Luis Felipe Rebecca
      Olá, estou fazendo um projeto em Android e estou com algumas dificuldades em ralação a fazer uma listagem de imagens(Feed), onde as imagens são retiradas do firebase e são apresentadas em um fragment. Um esquema praticamente igual ao Instagram;
       
      Por enquanto estou tentando fazer a listagem somente das imagens, porem as imagens não aparecem já fiz diversos testes e queria saber aonde posso estar errando. A variável 'listaFeed' localizada no FeedFragment não apresenta valor nenhum, o que pode estar causando a não impressão dessas imagens;
       
      Segue abaixo os códigos usados para fazer a listagem.
       
      MainActivity.java(Trecho que publica a imagem no Firebase Storage):
      @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.item_sair: deslogarUsuario(); return true; case R.id.item_adicionar: abrirCadastroContato(); return true; case R.id.item_configuracoes: return true; case R.id.item_pesquisar: return true; case R.id.item_camera: compartilharFoto(); return true; default: return super.onOptionsItemSelected(item); } } private void compartilharFoto() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, 1); } //GRAVAR IMAGEM @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); final Postagem postagem = new Postagem(); postagem.setIdUsuario(idUsuarioLogado); caminhoArquivo = data.getData(); if (requestCode == 1 && resultCode == RESULT_OK && data != null) { Bitmap imagem = null; try { imagem = MediaStore.Images.Media.getBitmap(getContentResolver(), caminhoArquivo); ByteArrayOutputStream stream = new ByteArrayOutputStream(); imagem.compress(Bitmap.CompressFormat.PNG, 75, stream); byte[] dadosImagem = stream.toByteArray(); SimpleDateFormat dateFormat = new SimpleDateFormat("ddmmaaaahhmmss"); String nomeImagem = dateFormat.format(new Date()); final StorageReference imagemRef = firebaseStorage .child("imagens") .child("postagens") .child(postagem.getId() + ".jpeg"); UploadTask uploadTask = imagemRef.putFile(caminhoArquivo); Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() { @Override public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception { if (!task.isSuccessful()) { throw task.getException(); } // Continue with the task to get the download URL return imagemRef.getDownloadUrl(); } }).addOnCompleteListener(new OnCompleteListener<Uri>() { @Override public void onComplete(@NonNull Task<Uri> task) { if (task.isSuccessful()) { Uri downloadUri = task.getResult(); postagem.setCaminhoFoto(downloadUri.toString()); if (postagem.salvar()) { Toast.makeText(MainActivity.this, "Sucesso ao salvar postagem!", Toast.LENGTH_SHORT).show(); } } } }); } catch (IOException e) { e.printStackTrace(); } } } FeedFragment.java(onde a listagem é exibida):
      public class FeedFragment extends Fragment { private RecyclerView recyclerFeed; private FeedAdapter feedAdapter; private List<Feed> listaFeed = new ArrayList<>(); private ValueEventListener valueEventListenerFeed; private DatabaseReference feedRef; private String idUsuarioLogado; public FeedFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_feed, container, false); Preferencias preferencias = new Preferencias(getActivity()); idUsuarioLogado = preferencias.getIdentificador(); feedRef = ConfiguracaoFirebase.getFirebase() .child("feed") .child(idUsuarioLogado); recyclerFeed = view.findViewById(R.id.recyclerFeed); feedAdapter = new FeedAdapter(listaFeed, getActivity()); recyclerFeed.setHasFixedSize(true); recyclerFeed.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerFeed.setAdapter(feedAdapter); return view; } private void listarFeed(){ valueEventListenerFeed = feedRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot ds: dataSnapshot.getChildren()){ listaFeed.add(ds.getValue(Feed.class)); } feedAdapter.notifyDataSetChanged(); } @Override public void onCancelled(DatabaseError databaseError) { } }); } @Override public void onStart() { super.onStart(); listarFeed(); Log.i("teste","teste"); } @Override public void onStop() { super.onStop(); feedRef.removeEventListener(valueEventListenerFeed); } } fragment_feed.xml(layout do fragment):
      <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="android" xmlns:tools="tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".fragment.FeedFragment"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerFeed" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_purple"> </android.support.v7.widget.RecyclerView> </LinearLayout> FeedAdapter.java(Adapter para fazer a listagem):
      public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.MyViewHolder>{ private List<Feed> listaFeed; private Context context; public FeedAdapter(List<Feed> listaFeed, Context context) { this.listaFeed = listaFeed; this.context = context; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View itemLista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_postagem, parent, false); return new FeedAdapter.MyViewHolder(itemLista); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { Feed feed = listaFeed.get(position); // Log.i("listaFeedPosition","listaFeed: " + listaFeed.get(position)); Uri uriFotoPostagem = Uri.parse(feed.getFotoPostagem()); Glide.with(context).load(uriFotoPostagem).into(holder.fotoPostagem); } @Override public int getItemCount() { return listaFeed.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { ImageView fotoPostagem; public MyViewHolder(View itemView) { super(itemView); fotoPostagem = itemView.findViewById(R.id.image_lista_postagem); } } } Feed(model com os getter and setter):
      public class Feed { private String id; private String fotoPostagem; public Feed() { } public String getFotoPostagem() { return fotoPostagem; } public void setFotoPostagem(String fotoPostagem) { this.fotoPostagem = fotoPostagem; } public String getId() { return id; } public void setId(String id) { this.id = id; } } lista_conversa(layout da lista):
      <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image_lista_postagem" android:layout_width="match_parent" android:layout_height="300dp" android:scaleType="fitCenter" android:padding="8dp"/> </LinearLayout> </RelativeLayout>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.