1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

dara para fazer?

Discussão em 'Programação' iniciada por brunoferraz, 4 de Agosto de 2009. (Respostas: 12; Visualizações: 1659)

  1. dara para passar dados de um MCU para uma base de dados?
    Se sim como poderei fazer isso?
    Desde ja agradeço qualquer ajuda.
    Cumprimentos Bruno Ferraz.
     
  2. Granadafeup

    Granadafeup Power Member

    Que micro e que base de dados?
     
  3. Disseram-me que o pic 18f4550 daria para fazer tudo, por isso vou utilizar esse.
    Quanto a base de dados nao sei exactamente utilizar, talvez a MYSQL ou o ACCESS.

    O que me aconse-lham?
     
  4. Granadafeup

    Granadafeup Power Member

    Digo-te já que so o micro independente, não vai conseguir fazer isso. Vais ter de ter ou outro controlador para fornecer uma ligação de rede, ou ligar o micro ao PC que recebe os dados e fica responsavel por os guardar na BD.

    Na primeira solução é capaz de ser um bocado complexa, visto teres de implementar o protocolo de comunicação.

    A segunda simplifica um bocado, pois ja existem bibliotecas e linguagens preparadas para guardar os dados na base de dados, mas obriga-te a ter um PC atras do micro.
     
  5. Estava a pensar nessa soluçao.Sei que atraves da comunicaçao serie rs 232 e atraves do hyper terminal consigo ver os dados recolhidos pelo micro no PC.A minha duvida é como os conseguir guardar numa bd.Talvez terei que fazer uma programa em linguagem c, pois é aquela que conheço ainda um pouquinho, mas nao tenho ideia nenhuma:005: como pegar nesses dados visualizados no hyper e po-los numa bd.

    Desde ja agradeço o interesse em me ajudar Granadafeup.:wavey:
    Cumprimentos Bruno.
     
  6. abgma

    abgma Power Member

    N precisas de os buscar do hiperterminal

    Crias em C (já que é a linguagem em que te sentes mais à vontade), uma comunicação porta paralela e depois ligas o programa a uma BD.

    Peço desculpa mas a linguagem mais parecida com C que conheço é C# e já varia bastante. Mas em C# n é assim tão dificil qto isso
     
  7. Granadafeup

    Granadafeup Power Member

    Tal como o abgma disse, basta fazeres um programa que receba os dados atraves da porta paralela, os guarde, e depois ( ou durante dependendo do objectivo) envia para a base de dados.

    Existem algumas bibliotecas que já auxiliam a ligação a base de dados. Por exemplo o PostgreSQL tem um bilbioteca em C porreirita.

    Para o controlo de porta Paralela tens aqui um sitio para começar LINK. Um conselho, se tiveres vários tipos de dados a guardar (String , int, etc) organiza o teu codigo de recepção de dados em forma de maquina de estados.
     
    Última edição: 6 de Agosto de 2009
  8. Epa, vamos la trocar isto por pedaços mais pequenos.
    Como faço para receber automaticamente os dados?Se fosse manualmente atraves das funçoes argc e argv consiguia os introduzir, agora assim automaticamente nao estou a ver como se faz.

    Guardar? Guardar num ficheiro por exemplo, ou me aconselham outra coisa?

    Enviar? neste aspecto, estava a pensar em estar a receber os dados e estar a guarda-los directamente na base de dados ou no fim do de cada dia passar os dados guardados e passa-los para a bd.

    O que é isso em forma de maquina de estados?

    Sera isto:
    https://dspace.ist.utl.pt/bitstream/2295/165496/1/SS_Teorica_6_2007_8_sem_2.pdf
     
  9. abgma

    abgma Power Member

    Mais uma vez, em C# (C só sei mesmo o basico dos basicos), podes criar um evento e a respectiva eventhandler. Quando chega alguma informação á porta paralela, o evento é disparado o que, por sua vez, irá chamar um método na qual podes pedir para ler a porta e guardar os dados na base de dados.

    para isso, terias de primeiro criar o objecto de comunicação com a porta paralela (há muitos exemplos no google já feitos e assim de cabeça, não sei o procedimento exacto). Vamos imaginar que esse objecto chama-se PortaParalela.

    podes depois defenir o evento relacionado com a recepçao de dados da seguinte forma (ou semelhante. não me lembro a 100% de cor).

    PortaParalela.DataRecieved += new Eventhandler(PortaParalela.DataRecieved);

    dentro do método DataRecieved() basta fazeres um PortaParalela.Read(); e ficas com os dados em memoria.


    Para guardares directamente na BD. Se tiveres uma ligação ODBC à base de dados, basta o seguinte.

    Usas o System.Data e o System.Data.OleDB

    e terás criar um objecto do tipo OleDbConnection. (e depois configurar-lo. Isto dependerá do tipo de base de dados, mas é facil. Google também ajuda).

    Vamos imaginar que chamaste connect ao objecto OleDbConnection.

    depois usas um objecto do tipo OleDbCommand para inserir os dados da seguinte forma.

    OleDbCommand Command = new OledbCommand("Insert into Tabela (Coluna1, Coluna2, etc) Values (@param1, @param2, etc);", connect);

    depois tens de defenir os parametros da seguinte forma.

    Command.Parameters.add("@param1", OleDbType.[Tipo de dado (integer, Char, double, etc)], [tamanho do dado. nem sempre se usa. geralmente só em integeres ou Varchars]).value=[dado recebido da Porta paralela];

    Depois corres os seguintes commandos:

    Connect.open();
    Connect.executenonquery(Command);
    Connect.close();

    e os dados ficaram guardados na BD.

    Penso que é tudo. Secalhar à melhores maneiras de fazer isto.

    E como disse, isto é em C#. Em C não faço ideia, mas com o que já tens ai, secalhar já consegues traduzir partes do código.

    Cumps
    Abgma
     
  10. Desculpem la esta ausencia, mas tive ocupado com uns problemas.

    Caro abgma, muito obrigado pela informaçao dispendida.
    Ninguem sabe onde poderei arranjar tutorias na net acerca deste assunto?
    Mais uma vez, obrigado.
    Abraço Bruno Ferraz.
     
  11. Henry4

    Henry4 Power Member


    Boas,

    Eu tenho feito vários programas em Visual basic para fazer interfaces user-friendly com microcontroladores, pic16, pi18.
    Como tás a usar o picf18fx550 podes usar a interface rs232 ou a própria interface USB. Qual é a que estás a pensar a usar? Se for a rs232 e quiseres usar o visual basic posso dar-te uma ajuda.

    Cmps,
     
  12. Caro Henry, para programar o pic irei faze-lo atraves do usb.
    Quanto à passagem dos dados mcu para bd estava a pensar em utilizar o interface rs232
    Em relaçao a linguagem de programaçao iria utilizar a linguagem C pois é a que estou mais avontade, contudo ja ouvi dizer que o visual basic é muito acessivel e de facil aprendizagem.Vou dar uma vista de olhos na linguagem visual basic e assim aprendo uma outra forma de programar tambem.
    Depois se me poder ajudar em alguma coisa, toda a ajude é bem vinda.
    Cumprimentos Bruno.
     
  13. Henry4

    Henry4 Power Member


    Eu tb tive k aprender sozinho para fazer um trabalho para uma cadeira e digo-te que se aprende relativamente fácil, uma vez que, no meu ponto de vista, é muito intuitivo.
    Como vais fazer a comunicação por rs232 é um tanto mais simples que por usb. Em usb nunca fiz. Em rs232 não é muito complicado.
     

Partilhar esta Página