adquisicion de datos via EXCEL

360 views
Skip to first unread message

Alejandro Sosa

unread,
Feb 14, 2024, 12:00:39 PM2/14/24
to embeb...@googlegroups.com
Buenas, vuelvo a consultar, alguien tiene resuelto el tema de adquisicion de datos en EXCEL, via puertos USB?
Parece simple, pero resulta que se volvio un problema formidable donde hay q hacer llamadas a la API de win y no que mas, temas que me exceden y se escapan de mi objetivo.
En versiones anteriores de office habia un control para el manejo de puertos, lo eliminaron.
Hay gente q veo en la web que desarrollo modulos similares, pero no logre tener exito probandolos y hay uno q lo vende a 200 dolares.
La unica opcion q veo es usar el DAQ de Parallax, pero lo q pretendo es una app propietaria mia.
VBA tiene instrucciones como Put , para comunicarse con los puertos, pero si uno pone un adaptador serie, como los cables FTID, algo pasa que los datos enviados no son los correctos, como si el baudrate o algun parametro no estuviera bien.
gracias


--
Alejandro Sosa  

Diseño y fabricación de equipos electrónicos a medida para la industria.
 
 skype: alejandrodmsosa

 "Cambiaré de opinión tantas veces como adquiera conocimientos nuevos..."

Florentino Ameghino (1854-1911)

Javier Sabena

unread,
Feb 14, 2024, 1:47:06 PM2/14/24
to embeb...@googlegroups.com
Se que se complica más, pero no te sirve la opción de obtener los datos con un script de python ?
Saludos

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/CA%2BxuGwLNzqxHd5FJ0S1tzOKNfJO6R95RPagHr6x2bwdBdbr7oA%40mail.gmail.com.

Alejandro Sosa

unread,
Feb 14, 2024, 1:49:35 PM2/14/24
to embeb...@googlegroups.com
es la posiblilidad q estoy viendo, o en .NET, no se.
algun link donde me puedas orientar?, muchas gracias

Javier Sabena

unread,
Feb 14, 2024, 2:38:17 PM2/14/24
to embeb...@googlegroups.com
Tenía algunos links que utilicé en su momento, en linux,  pero ahora los veo y no están disponibles. Busca pyserial en windows. Era bastante sencillo en linux. Saludos

Ricardo Malerba

unread,
Feb 14, 2024, 2:47:31 PM2/14/24
to embeb...@googlegroups.com
Podrías fijarte en este link, https://github.com/davidanger/MSCOMM32

O sino desde C# crear un programa que lea y escriba un puerto serie, esto es algo relativamente fácil y después encapsular todo en un objeto COM o control OCX, esto es un poco más complejo.

Saludos !



--
Ricardo Malerba

Javier Sabena

unread,
Feb 14, 2024, 2:53:04 PM2/14/24
to embeb...@googlegroups.com
Este es lo que tira chatgpt, no lo probé porque no tengo windows pero te puede servir para empezar a investigar.
import serial
import openpyxl
from datetime import datetime

# Configuración del puerto serie
serial_port = 'COM1'  # Reemplaza COM1 con el puerto serie que estés utilizando
baud_rate = 9600
timeout = 1

# Abrir el puerto serie
ser = serial.Serial(serial_port, baud_rate, timeout=timeout)

# Crear un nuevo libro de Excel
workbook = openpyxl.Workbook()
sheet = workbook.active

# Definir una función para escribir en el archivo Excel
def escribir_en_excel(data):
    # Obtener la fila actual
    current_row = sheet.max_row + 1

    # Obtener la fecha y hora actual
    current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

    # Escribir los datos en el archivo Excel
    sheet.cell(row=current_row, column=1, value=current_time)
    sheet.cell(row=current_row, column=2, value=data)
    workbook.save('datos_serial.xlsx')

try:
    while True:
        # Leer datos del puerto serie
        data = ser.readline().decode().strip()
        print("Datos recibidos:", data)

        # Escribir los datos en el archivo Excel
        escribir_en_excel(data)

except KeyboardInterrupt:
    # Manejar la interrupción del teclado (Ctrl+C)
    print("Deteniendo la lectura del puerto serie...")
    ser.close()

jecar...@sinc.unl.edu.ar

unread,
Feb 15, 2024, 10:24:15 AM2/15/24
to Embebidos32
Que tal Alejandro, hace 20 años me toco hacerlo utilizando DDE (programado en C++) fíjate que parece que sigue vigente https://support.microsoft.com/es-es/office/dde-funci%C3%B3n-79e8b21c-2054-4b48-9ceb-d2cf38dc17f9

Juan Antonio Arízaga Silva

unread,
Feb 15, 2024, 12:20:28 PM2/15/24
to embeb...@googlegroups.com
Excel permite ejecutar python desde una celda, no sería una opción interesante ver si puedes controlar el puerto USB serie desde ahí y colocar los datos en las celdas según vayan llegando??


--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/CA%2BxuGwLNzqxHd5FJ0S1tzOKNfJO6R95RPagHr6x2bwdBdbr7oA%40mail.gmail.com.


--
MHMD Inc.
M.C. Juan Antonio Arízaga Silva
Celular: 044 22 25 54 20 45

Ariel May

unread,
Feb 15, 2024, 12:26:20 PM2/15/24
to embeb...@googlegroups.com
Hola,
Algo te impide utilizar la versión de Excel que funcionaba? Por curiosidad, cuál versión era?

Saludos

--

Alejandro Sosa

unread,
Feb 15, 2024, 12:48:14 PM2/15/24
to embeb...@googlegroups.com
gracias a todos por las ayudas, estoy probando varios caminos y en unos dias hago un resumen.
Podria volver a excel 2013 creo , era la ultima version que traia el control MSCOMM, eso podria hacerlo en mi notebook personal, pero no en mis clientes, no voy a andar pidiendole a cu q se baje el excel 2013 o q me pidan q vaya a instalarlo, es decir, lo q busco es que sin la mas minima complicacion, un usuario que nada entiende, abra su excel, abra la planilla que yo le envio, pulse INICIAR y listo.
A lo sumo, si no tienen office 365, bueno lo actualizan, o tambien estoy viendo de tener la planilla en la nube.

efectivamente como se ve algo tan simple en un microcontrolador como leer datos de un puerto, en excel se volvio algo alucinante .
estoy probando las sugerencias y respondo, muchas gracias

,

Alejandro Sosa

unread,
Feb 15, 2024, 12:56:01 PM2/15/24
to embeb...@googlegroups.com
doy un detalle mas, mi objetivo de leer el puerto USB es porque ahi tengo conectado un receptor LoRa, es la forma que tengo, dada la aplicacion en particular, de recibir datos, no puedo garantizar internet o señal de celular en el lugar.

Juan Martín Guillén

unread,
Feb 15, 2024, 2:03:25 PM2/15/24
to embeb...@googlegroups.com
¿Sólo leés del USB verdad?
¿Quizás puedas hacer un script externo al Excel que lea del USB y genere un archivo CSV?

Fausto Fabián Garcete

unread,
Feb 15, 2024, 2:50:49 PM2/15/24
to embeb...@googlegroups.com
No comprendo pq queres leer directamente en formato excel, pq primero no lo envias a formato de texto para luego leerlo con excel.  fijate si tu dispositivo esta preparado para conexión  a internet tal vez te sea más fácil adquirir los datos por ese medio. 

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/CA%2BxuGwLNzqxHd5FJ0S1tzOKNfJO6R95RPagHr6x2bwdBdbr7oA%40mail.gmail.com.


--
 -----------------------------------------------
    Mgter. Lic. Fausto Fabian Garcete 
             CPA - Prof. Adjunto 
      IMAM (CONICET - UNaM)
                     facebook

Javier Sabena

unread,
Feb 15, 2024, 3:04:28 PM2/15/24
to embeb...@googlegroups.com
Entiendo que lo quiere originalmente es directamente desde el excel leer el puerto y alimentar el excel.

Alejandro Sosa

unread,
Feb 15, 2024, 4:37:21 PM2/15/24
to embeb...@googlegroups.com
quiero leer desde excel por varios motivos.
porque tengo una interface desarrolada con controles ActiveX y ademas uso todas las funciones de excel para calculos y graficas.
Mi intencion es leer una red de sensores, entonces la interface grafica es la q monitorea la red y con excel hago el tratamiento de los datos.
por supuesto los datos en si son todos ASCII, ese es el formato, y como dije, en la zona no puedo depender si tienen internet.

Reply all
Reply to author
Forward
0 new messages