精华内容
下载资源
问答
  • 通过串口采集数据,将数据传到指定串口,为上位机模拟信号提供信号。
  • 这是个人做的一个实用小项目,主要用于与下位机设备通信,将下位机采集数据实时显示并记录,界面设计参考Windows任务管理器 这是个人做的一个实用小项目,主要用于与下位机设备通信,将下位机采集数据实时显示...
  • 简述如何通过串口采集数据。包括应用什么工具,需要设置那些参数,数据接收及发送过程等
  • 通过串口采集数据并实时显示趋势曲线,很有用的也费了很大力气写的
  • sick 串口采集数据

    2013-05-09 09:34:08
    sick 串口采集数据 可以通过rs232采集实时数据 实现实时通讯采集
  • LabVIEW串口采集数据

    2015-05-14 20:44:20
    通过下位机USB转串口 采集数据 并且进行实时显示
  • 串口采集数据

    2008-02-28 16:26:40
    通过串口和单片机通讯采集单片机得到的数据。并显示散点图。
  • MATLAB处理串口采集数据 加速度计反馈X/Y/Z轴数据,并通过串口输出,其中第2,3,4字节为X轴数据高位,中位,低位数据,第5,6,7字节为Y轴数据高位,中位,低位,第8,9,10字节为Z轴数据高位,中位,低位。串口...

    MATLAB处理串口采集数据

        加速度计反馈X/Y/Z轴数据,并通过串口输出,其中第2,3,4字节为X轴数据高位,中位,低位数据,第5,6,7字节为Y轴数据高位,中位,低位,第8,9,10字节为Z轴数据高位,中位,低位。串口数据第1位开数据开头,第11位为串口数据结尾。
        通过MATLAB进行数据的拼接处理,并进行简单地分析(具体根据实际应用)。
    

    第一步:将采集到的的串口数据保存成.txt文件,需要删除txt文件中开头不完整数据,确保第一组数据为标准数据格式。

    在这里插入图片描述
    完整数据以CC开头,共11个字节。
    第二步:matlab导入数据
    在这里插入图片描述

    第三步:matlab代码
    load(‘data06.mat’); %载入导入的数据
    N=length(data06); %计算载入数据的长度
    m=N/11; %串口数据长度为11,计算出N/11组数据
    a=reshape(data06,11,m); %生成11m阶矩阵
    b=a’; %转置成m
    11阶矩阵
    xhex=b(:,2)+b(:,3)+b(:,4); %2,3,4列为X轴数据高,中,低位,进行拼接
    yhex=b(:,5)+b(:,6)+b(:,7); %5,6,7列为Y轴数据高,中,低位,进行拼接
    zhex=b(:,8)+b(:,9)+b(:,10); %8,9,10列为Z轴数据高,中,低位,进行拼接
    x1dec=hex2dec(xhex); %十六进制转10进制
    y1dec=hex2dec(yhex);
    z1dec=hex2dec(zhex);
    x_value=x1dec’; %变成行向量
    y_value=y1dec’;
    z_value=z1dec’;
    for i=1:m %数值处理
    if(x_value(i)>2^24/2-1)
    x_data_value(i)=x_value(i)-2^24;
    else
    x_data_value(i)=x_value(i);
    end
    if(y_value(i)>2^24/2-1)
    y_data_value(i)=y_value(i)-2^24;
    else
    y_data_value(i)=y_value(i);
    end
    if(z_value(i)>2^24/2-1)
    z_data_value(i)=z_value(i)-2^24;
    else
    z_data_value(i)=z_value(i);
    end
    end
    dlmwrite(‘x.dat’,x_data_value,‘X’,’’);
    dlmwrite(‘y.dat’,y_data_value,‘Y’,’’);
    dlmwrite(‘z.dat’,z_data_value,‘Z’,’’);
    FS=4000;%采样频率
    T=1/FS;
    X=x_data_value/1000009.8;
    Y=y_data_value/100000
    9.8;
    Z=z_data_value/1000009.8;
    LX=length(X);
    LY=length(Y);
    LZ=length(Z);
    tx=(0:LX-1)T;
    ty=(0:LY-1)T;
    tz=(0:LZ-1)T;
    figure(1);
    plot(tx,X);
    figure(2);
    plot(ty,Y);
    figure(3);
    plot(tz,Z);
    figure(4);
    NFFTx = 2^nextpow2(LX);
    A = fft(X,NFFTx)/LX;
    fx = FS/2
    linspace(0,1,NFFTx/2);
    plot(fx,2
    abs(A(1:NFFTx/2)));
    figure(5);
    NFFTy = 2^nextpow2(LY);
    B = fft(X,NFFTx)/LY;
    fy = FS/2
    linspace(0,1,NFFTy/2);
    plot(fy,2
    abs(B(1:NFFTy/2)));
    figure(6);
    NFFTz = 2^nextpow2(LZ);
    C = fft(Z,NFFTz)/LZ;
    fz = FS/2linspace(0,1,NFFTz/2);
    plot(fz,2
    abs(B(1:NFFTz/2)));
    figure(7);
    plot(tx,X,‘r’,ty,Y,‘b’,tz,Z,‘g’);

    展开全文
  • 最近在做一个医院项目,通过串口rs232采集呼吸机数据,还有3种型号的呼吸机未采集数据,飞利浦v60、newport e360、maquet servo-s,网上有找到相关的接口文档,但请求发送后未得到响应。可以提供咨询费。
  • ModBus协议通过串口助手进行数据采集与转换 ModBus RTU通信协议 RTU协议中的指令由地址码(一个字节),功能码(一个字节),起始地址(两个字节),数据(N个字节),校验码(两个字节)五个部分组成,其中数据又由...

    ModBus协议通过串口助手进行数据采集与转换


    ModBus RTU通信协议

    RTU协议中的指令由地址码(一个字节),功能码(一个字节),起始地址(两个字节),数据(N个字节),校验码(两个字节)五个部分组成,其中数据又由数据长度(两个字节,表示的是寄存器个数,假定内容为M)和数据正文(M乘以2个字节)组成,而RTU协议是采用3.5个字节的空闲时间作为指令的起始和结束,一般而言,只有当从机返回数据或者主机写操作的时候,才会有数据正文,而其他时候比如主机读操作指令的时候,没有数据正文,只需要数据长度即可。(本章的讨论只涉及寄存器的读写,其他比如线圈的读写指令我们暂时不涉及)。在此我们通过两个指令(0x03H:读多个寄存器指令以及0x10H:写多个寄存器指令)来解释Modbus RTU协议。在此我们使用的RTU设备是深圳市国科伟业通信技术有限公司的ND-1084型485总线I/O模块。

    ModBus在串口助手中的使用

    在这里插入图片描述

    串口助手的使用

    在这里插入图片描述

    ModBus协议下提取所需数据

    在这里插入图片描述

    JS脚本的运用(数据转换)

    采集到的数据为字符串格式,需要进行提取所需的数据,为字符串格式,将字符串格式转为数组,再转换为10进制
    在这里插入图片描述
    源码如下:

    (
        function main() {
            var str = receive.get() ; 
            arr = str.substring(11,22);
            data1 = arr.split(" ");
            var arr = data1;
                var arr2 = arr.map(item=>{
                    return parseInt(item,16);
                })
    
           receive.write(arr2,"orange");
            return ;
        }
    

    将所需的数据转为十进制数,需要根据IEEE 754 单精度浮点数转换标准
    代码如下

         function main() {
            var str = receive.get() ;        //接收串口返回数据 
            
            arr = str.substring(11,22);     //(起始位,终止位),字符串形式。eg:"42 C8 00 03"
            
            data1 = arr.split(" ");         //将字符串进行以空格分割,并组成数组。eg:[42,C8,00,03]
            
            var arr = data1;
                var arr2 = arr.map(item=>{
                    return parseInt(item,16);
                })                          //将该数组通过扫描的方式将数组中的元素一一进行16进制转10进制,即整型数据
                                            //eg:[66,195,38,250]
            var bytes = new Array(arr2);    //定义字节
    
            bytes[0] = arr2[0];             //数组的元素一一赋值给对应的字节,可以添加多个字节,eg:"bytes[i] = array[i]"
            bytes[1] = arr2[1];
            bytes[2] = arr2[2];
            bytes[3] = arr2[3];
    
            //IEEE754标准的浮点数的转化
            function hex2float(num) {
      	
                var sign = (num & 0x80000000) ? -1 : 1;    //符号位
      	
                var exponent = ((num >> 23) & 0xff) - 127; //指数位
      	
                var mantissa = 1 + ((num & 0x7fffff) / 0x7fffff);  //尾数位
                return sign * mantissa * Math.pow(2, exponent);
            }
    
            //拼接为number对象
            var mfloat = ((bytes[0] & 0xFF) << 24) | 
    	    ((bytes[1] & 0xFF) << 16) | 
    	    ((bytes[2] & 0xFF) << 8) | 
    	    (bytes[3] & 0xFF);
    
           receive.write(hex2float(mfloat),"orange");   //返回经IEEE754标准的浮点数转化后的数据,receive.write(variate,"color")
           return ;
        }
    
    

    数据采集

    上面为长时间查阅资料所得,来之不易,如有疑问,麻烦大佬赐教,必将洗耳恭听!!!

    隔行如隔山!!!

    未经允许不得转载

    展开全文
  • 我要用C#开发上位机软件,具有通过串口进行数据采集/存储和显示的功能。数据采集是问答式的,采集的是电力测控仪表里面的数据。请问设计这类软件需要注意哪些问题?我在主窗体里面用Timer实现每秒采集,但是下位机有...
  • 3.最后我要把节点数据通过串口发出去给IoT网关。 涉及到发送、接收数据,无论是用串口还是socket发送,一定都会要考虑到数据格式。数据格式有个人自定义的,也有市面上通用的、规定好的。郭工给我们...

    项目需求

    这是我们的五月项目,我负责的是LoRa_Node 和 LoRa_AP部分

    1.我要利用各种传感器采集相关消防节点数据,

    2.然后我要利用STM8通过LoRa接受传感器节点的数据,

    3.最后我要把节点数据通过串口发出去给IoT网关。

    涉及到发送、接收数据,无论是用串口还是socket发送,一定都会要考虑到数据格式。数据格式有个人自定义的,也有市面上通用的、规定好的。郭工给我们说了一种比较好用的格式:TLV格式。

     

     

    要求:

    串口数据格式: 
    Prefix(1B)     Tag(1B)   Length(1B)  Value(依赖L)  CRC16
    Prefix:   0xFE
    Tag:    0x01:  温度    0x02: 温湿度  0x03:  门开关
    如果是温度:  length:  2B
    如果是温湿度:  Length:  4B(2B温度+2B相对湿度)
    如果是门开关:  Length: 1B
    CRC16:   校验 Prefix~Value 

     

     

     

    TLV格式

    TLV是一种可变格式,意思为:Tag--类型, Lenght--长度,Value--值

    Tag和Length的长度固定,一般那是2、4个字节(这里统一采用4个字节);

    Value的长度由Length指定;

     

    我采集的数据种类有1.温度  2.湿度  3.气压  4.水位 5...,这属于tag,一般为0x01 0x02 0x03 ..

    假设:采集到的一组温度数据为34.12°C,温度传感器量程为:-55~125℃我要将这组数据用字节流发送出去,应该怎么规定呢?

    T:采集温度类型的数据:0x01  

    L: 温度的值为两个字节:0x02 

    V:(1)温度有±,所以留出最高位为符号位,(0表示正温度,1表示负温度),即 (_ XXX XXXX)b 所以温度范围为-2^7---+2^7

    即:-127~+127°C;(2)整数部分:34——32+2=>(0010 0010)=>0X22 ;小数部分:12——0x0C;

    综上所述,这个TLV格式的温度数据为: 0x01 0x02 0X22 0x0C

    为了防止数据丢失后全部乱套,一般采用添加加帧头数据0XFE,和最后的校验位CRC的方法。

    即完整的一帧报文为:0XFE 0x01 0x02 0X22 0x0C CRC

     

    我们获取数据可能的结果如下:

    1.完美数据:0XFE 0x01 0x02 0X22 0x0C CRC

    2.垃圾数据+完美数据:0x33 0XFE 0x01 0x02 0X22 0x0C CRC

    3.继续接收是完美的数据(含TLV)中任意3个字节:0XFE 0x01 0x02 0X22 

     

    那么我们怎么确定呢?读buf[]

     

     

     

    展开全文
  • 采集物联网数据通过串口发送到第三方设备
  • MCU:STM32F103ZET6 功能:通过ADC采集数据 显示在LCD液晶屏上 并通过串口发送 说明:基于例程进行修改 到手可用
  • DHT11数据采集并且通过串口显示 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括...
  • 下位机通过串口上传采集数据,同一个时间tag下多个序数中的数据是不是重叠了?怎么对同一个tag下的数据取平均值?
  • linux下将串口RS232采集到的数据通过232/usb转接线采集到PC上,现在要把PC上接收到的串口数据通过tcp/ip协议进行数据传输以实现实时通信,请问该程序要如何编写或者有没有相似的范例参考。谢谢!
  • 介绍一种利用单片机采集数据,LabVIEW作为开发平台,二者之间通过串口实现数据通讯的数据采集系统,详细介绍了软、硬件设计方案。
  • STM32F103RBT6 通过ADC通道(PA6)采集电压并通过串行端口发送采集到的数据出来
  • (2)MPU控制下位机逻辑,传感器以400HZ采样率采集加速度数据,并通过 SPI高速总 线实时传送给MPU; (3)用户数据包括segment(加速度采样值)和index(各次采样数据即各segment 的索引)两部分,index中包含segment的...
  • LM3S9B96数据采集例程,利用芯片自带的ADC模数转换模块采集芯片温度,并通过UART串口输出。
  • 串口温度数据采集并实时显示 读串口数据的原理是,只要当有数据串口数据来时,计算机就会自动将其数据写到一个特定的缓冲区,我们只要写程序去读那个特定的缓冲区就可以了. 有数据串口发过来时,程序可以将数据...
  • 采集芯片内温感器也可以是芯片外的DHT11的温湿度传感器的数据,然后通过串口送出来,通过串口助手可以看到采集数据

    简介

    最近学习通上老师布置温湿度采集实验作业的实验。实验过程中,在不同的开发板上烧录同一份代码最后结果不一样,有的甚至通过串口助手返回的是乱码。所以建立本博客,记录问题。

    实验要求

    温湿度采集实验(可以采集芯片内温感器也可以是芯片外的DHT11的温湿度传感器的数据,然后通过串口送出来,通过串口助手可以看到采集到数据)

    实验环境

    • IAR v10.30.1
    • Win10 1903
    • 串口调试助手 v4.13.3

    代码

    #include <ioCC2530.h>
    #include <string.h>
    
    void initUART0(void);
    void Send_String(unsigned char *Data, int len);
    unsigned int getTemperature(void);
    unsigned char str1[40]="Please wait for a moment";
    
    unsigned int AvgTemp;
    
    /********************************************************************
    * 函数名  :initUART0(void)
    * 函数功能:初始化串口0函数
    * 输入    : void
    * 输出    : 无
    * 查看完整内容;https://stefancharles.xyz/
    ********************************************************************/
    void initUART0(void)
    {
        CLKCONCMD &= ~0x40;//设置系统时钟源32MHz晶振
        while(CLKCONSTA&0x40);//等待晶振稳定
        CLKCONCMD&=~0x47;//设置系统主时钟频率32MHz
    
        PERCFG= 0x00;//位置1P0口
        P0SEL=0x3C;//P0口是串口
        P2DIR&=~0xC0;//P0优先作为UART0
        U0CSR|=0x80;//串口设置为UART方式
        U0GCR|=9;
        U0BAUD|=59;//波特率19200
        UTX0IF=1;//UART0 TX中断标志初始为1
        U0CSR|=0x40;//允许接受
        IEN0|=0x84;//开总中断,接受中断
    
    }
    

    查看完整内容

    请移步我的个人博客:
    点击这里去Stefan的博客

    Zigbee温度实验

    展开全文
  • 本程序以单片机89C52为核心,以ADO0832采集电压值,通过LCD显示采集数据,然后通过单片机的串口发送到PC程序,经过验证,该程序能正确显示.
  • 51单片机采集数据通过串口传给PC,串口精灵观看。程序已经调试,没有问题。
  • 最近在做柯氏音的提取工作,由于提上来的波形显示不理想,想通过MATLAB对数据进行频谱分析,因而学习了MATLAB在这一块的知识。 首先需要一个有数据保存功能的串口助手,但大多数串口都是保存十六进制的数,现在介绍...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,466
精华内容 586
关键字:

通过串口采集数据