Interação arduino planilha LibreOffice Calc -- Dúvida. [RESOLVIDO]

1. Interação arduino planilha LibreOffice Calc -- Dúvida. [RESOLVIDO]

Luiz
lacastelos

(usa KUbuntu)

Enviado em 24/09/2016 - 11:37h

Saudações a todos.

Pessoal estou com um problema, quem sabe podem me dar uma dica.

Estou usando uma série de sensores no arduino (mega2560), conectado a um Linux Kubuntu 14.04 LTS. Estes sensores me dão uma saída 100% numérica no "serial monitor" do arduino.

Depois de muito apanha consegui, utilizando o "picocom" gerar e alimentar automaticamente um arquivo ".txt" a medida que o arduino+sensor fornecem os dados. Ou seja, estou criando um arquivo ".txt" em tempo real.

Agora que vem a dúvida. Tem alguma maneira de eu, também em tempo real, exportar esses dados para a planilha do Calc? Para ficar mais claro, desejo que a cada número que seja gerado no ".txt", automaticamente já seja exportado para tabela do Calc.

O intuito disso é gerar gráficos em tempo real das medições efetuadas.

Se tiverem uma solução melhor do que esta que estou usando também será super bem vinda.

Desde já agradeço a todos.

Att,
Luiz


  


2. Comunicação com Arduino e armazenamento em uma Planilha

Antonio Thomacelli
tonnytg

(usa Outra)

Enviado em 24/09/2016 - 13:19h

Boa tarde, tudo bom ?
Espero que sim, bom, espero que você tenha conectado o Arduino em seu GNU/Linux,
neste caso você pode usar o Python para comunicar com ele,
neste caso use a biblioteca chamada 'PySerial'

Conteúdo do PySerial:
http://pyserial.readthedocs.io/en/latest/shortintro.html

Depois que você estiver conseguindo coletar os dados,
e armazenar em váriaveis, existe outro módulo para comunicação com Planilhas,
neste caso você poderá abrir elas e armazenar seus dados.

Você pode dar uma lida nestes tutoriais que ensinam como manipular um .xlsx com python:
http://xlsxwriter.readthedocs.io/tutorial01.html

Com o valor anterior obtido pelo PySerial,
e o Python para Sheet, você vai conseguir o que quer.


CASO, você não queira implantar o python no seu projeto,
renomeia o arquivo .txt que você já conseguiu fazer, para .csv
coloca os dados separados por 'virgula' e abre depois uma planilha, e fala que o separador é a 'virgula'


Att,
Antonio Thomacelli Gomes
http://www.tonnytg.com.br
LPIC-2 Certified Linux Engineers


3. Re: Interação arduino planilha LibreOffice Calc -- Dúvida. [RESOLVIDO]

Luiz
lacastelos

(usa KUbuntu)

Enviado em 24/09/2016 - 20:51h

Opa, muito obrigado pela dica amigo.

Brinco com um pouquinho de "C" e Fortran mas nunca mexi com Python. Mas com certeza me aventurarei para tentar sua solução. A necessidade faz o homem, e estou precisando de fazer essa aquisição em tempo real então vou dar um jeito de fazer aqui e sua dica foi preciosa.

Sinceros agradecimentos.

Att,
Luiz


tonnytg escreveu:

Boa tarde, tudo bom ?
Espero que sim, bom, espero que você tenha conectado o Arduino em seu GNU/Linux,
neste caso você pode usar o Python para comunicar com ele,
neste caso use a biblioteca chamada 'PySerial'

Conteúdo do PySerial:
http://pyserial.readthedocs.io/en/latest/shortintro.html

Depois que você estiver conseguindo coletar os dados,
e armazenar em váriaveis, existe outro módulo para comunicação com Planilhas,
neste caso você poderá abrir elas e armazenar seus dados.

Você pode dar uma lida nestes tutoriais que ensinam como manipular um .xlsx com python:
http://xlsxwriter.readthedocs.io/tutorial01.html

Com o valor anterior obtido pelo PySerial,
e o Python para Sheet, você vai conseguir o que quer.


CASO, você não queira implantar o python no seu projeto,
renomeia o arquivo .txt que você já conseguiu fazer, para .csv
coloca os dados separados por 'virgula' e abre depois uma planilha, e fala que o separador é a 'virgula'


Att,
Antonio Thomacelli Gomes
http://www.tonnytg.com.br
LPIC-2 Certified Linux Engineers





4. Resolvido

Luiz
lacastelos

(usa KUbuntu)

Enviado em 27/09/2016 - 22:44h

Boa noite.

Vamos lá. A dica do "tonnytg" foi preciosa e por se tratar de uma linguagem de programação, com ela podemos solucionar problemas simples e problemas complicados, para tanto basta saber o quanto o usuário está disposto a se dedicar.

Eu particularmente ainda vou mexer com o Python e explorar suas funcionalidades. No entanto para o que eu precisava de imediato, que era apenas a interação do Arduino com o Calc para gerar gráficos em tempo real fiz uso de uma solução menos requintada e obviamente muito mais limitada. Mas ainda assim funcional (para as minhas necessidades).

Vamos a solução encontrada para quem se interessar.

1º Comunicação da porta seria do arduino com o computador. Para isso usei o comando "c-u" sem o sinal de - entre as duas letras (mas o filtro de palavras aqui é tão rigoroso que nem um comando existente no Linux pude usar) e com este programa podemos ainda gerar um arquivo simples de texto (.txt) ou (.csv) ou (.html). A extensão fica a critério do que o usuário deseja. A linha de comando (no meu caso) ficou assim ( # c-u -l /dev/ttyUSB0 -s 9600 >> teste.html ) onde temos [-l,--line line: Use named device (e.g. tty0)] e
[ -s,--speed,--baud speed, -#: Use given speed ] para comunicar com a porta onde o arduino estava plugado e em qual velocidade respectivamente. E, como podem ver gerei um arquivo (.html)

2º Porque gerei um arquivo HTML? Pelo motivo de que o LibreOffice Calc em sua aba Inserir --> Vincular a dados externos permite importar um arquivo HTML e atualizar o mesmo em tempo real (tá bom existe um delay bem pequeno, insignificante praticamente).

3º Como gerei o arquivo HTML? No arduino praticamente programamos em "C" e neste caso tudo que fiz foi gerar dentro do próprio arduino uma pagina HTML que me dá como saída uma tabela com quantas linhas e colunas for desejado. Então fiz uma tabela, mais simples possível, fazendo uso dos <tr> e <td> tipicas do html de forma a me dar apenas os números que eu desejo.

4º Fiz a importação para o L.O Calc pelo método citado acima e defini um período de atualização.

5º Selecionei todas as linhas e colunas que me interessavam e pedi normalmente para o Calc gerar o gráfico. Defini bem os intervalos e agora tenho um gráfico sendo construído em tempo real.

É a maneira mais elegante? Claro que não! Mas é atende plenamente minhas necessidades atuais e a pressa que tinha. Se trata de um projeto com tempo definido para ser entregue.

Vou parar por aqui? Claro que não! Ferramentas mais robustas são bem vindas e resolvem mais problemas, então daqui pra frente vamos que vamos aprender um pouquinho de Python.

"tonnytg" obrigado pela dica acima. Vou me empenhar a aprender esta saída.

Saudações a todos.



5. Re: Interação arduino planilha LibreOffice Calc -- Dúvida. [RESOLVIDO]

Antonio Thomacelli
tonnytg

(usa Outra)

Enviado em 01/10/2016 - 10:13h

Obrigado pelo retorno sobre o sucesso com HTML,
vou me lembrar disso caso algum dia precise desta implementação,
sucesso ai com os projetos.


Att,
Antonio Thomacelli Gomes
http://www.tonnytg.com.br
LPIC-2 Certified Linux Engineers


6. Tópico: Interação arduino planilha LibreOffice Calc -- Pedido. [RESOLVIDO]

João Francisco L. de Freitas
joaoflf

(usa Linux Mint)

Enviado em 15/05/2017 - 07:39h

Bom dia prezado Luiz (lacastelos).
Gostaria de inicialmente parabenizá-lo pela construção da solução.
Estou realizando experimentos educacionais com Arduíno e sua solução é o que necessito para dar continuidade ao meu projeto, assim, gostaria de pedir-lhes que disponibilize as estruturas de programação da ide para a qual a mesma constrói a tabelas do arquivo html.

lacastelos escreveu: "3º Como gerei o arquivo HTML? No arduino praticamente programamos em "C" e neste caso tudo que fiz foi gerar dentro do próprio arduino uma pagina HTML que me dá como saída uma tabela com quantas linhas e colunas for desejado. Então fiz uma tabela, mais simples possível, fazendo uso dos <tr> e <td> tipicas do html de forma a me dar apenas os números que eu desejo."

Sugiro que você realize um artigo sobre sua solução e o publique aqui no viva o Linux.
Agradeço antecipadamente sua colaboração
João Freitas








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts