0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用MATLAB以图形格式记录和显示数据

454398 来源:网络整理 作者:网络整理 2019-12-06 11:34 次阅读

图形表示形式总是有助于可视化数据,并且通过查看趋势和模式非常容易。有很多软件可以根据输入值绘制图形,但是在嵌入式系统中,MATLAB是最受欢迎的软件之一,它不仅可以以图形形式显示结果,而且可以轻松地与硬件微控制器集成。

在本教程中,我们将学习如何使用MATLAB以图形格式记录和显示数据。在这里,我们使用Arduino和MATLAB记录DHT11的实时温度和湿度数据。以前我们将LM35与MATLAB一起使用以绘制温度曲线图。

如果您是MATLAB的新手,可以查看一下以前的MATLAB教程以更好地了解它们:

MATLAB入门:快速介绍

将Arduino与MATLAB接口-使用MATLAB和Arduino闪烁LED

直流电动机控制

MATLAB和Arduino之间的串行通信

使用MATLAB进行图像处理入门

您可以在此处参考所有MATLAB教程。

所需的组件

MATLAB安装的笔记本电脑(R2016b或以上版本)

Arduino UNO

DHT11温湿度传感器

电路图

如何使用MATLAB以图形格式记录和显示数据

DHT11与MATLAB接口的Arduino代码

将DHT11传感器与Arduino连接后,使用以下代码将代码上传到Arduino Arduino IDE。最后给出了完整的Arduino代码,用于将温度和湿度数据记录和可视化到MATLAB中。让我们了解代码的工作原理

首先包含用于DHT11传感器的库“ DHT.h”。

#include

然后定义连接到Arduino的DHT11数据引脚。在我们的例子中,它是引脚号4。

#define DHTPIN 4

在“无效设置” 中,初始化串口和DHT11传感器。

void setup() {

Serial.begin(9600);

delay(2000);

dht.begin(); // initialise DHT11 sensor

}

在‘void loop’函数中,将温度和湿度的值设置为 float 类型。使用命令 float temp = dht.readTemperature()和 float humi = dht.readHumidity()从Arduino读取温度和湿度数据。然后在串行监视器上打印这些值,以便MATLAB能够串行读取这些值。

void loop() {

float temp = dht.readTemperature(); //read temperature data

float humi = dht.readHumidity(); //read temperature data

Serial.print(temp);

Serial.print(humi);

delay(2000);

}

MATLAB记录和绘图代码数据

在系统中打开MATLAB,然后在编辑器窗口中开始编码。可以通过在MATLAB中单击“ 新脚本” 来打开编辑器窗口,如下图所示。

在项目结束时给出了用于DHT11传感器数据记录的完整的MATLAB代码。

从定义用于串行通信的变量开始, MATLAB到Arduino。 COM18是连接我的Arduino的端口,您可以进行相应的更改。

s = serial(‘COM18’);

在下面的代码中, fopen()用于Arduino和MATLAB之间的串行通信。然后,我们将串行数据保存到名为“ out ”的变量中。 out 变量是一个九位数字的字符串,其中前四位数字存储温度数据,其余位数字存储湿度数据。因此,通过使用 Temp(i)= str2num(out(1:4))和 Humi(i)= str2num(out(5:9))我们正在阅读现在,将完整的代码粘贴到编辑器窗口中之后。

fopen(s)

out = fscanf(s)

Temp(i)=str2num(out(1:4));

Humi(i)=str2num(out(5:9));

现在。单击“运行”按钮以处理代码,如下图所示。

等到MATLAB在屏幕的左下角显示忙,如下图所示。这表明MATLAB正在处理代码。

如果代码执行没有任何错误,则显示实时图形窗口将出现在屏幕上,如下所示。在这里,数据将每两秒钟更新一次,因为DHT11传感器将数据发送到串行端口需要两秒钟。

要检查温度和湿度的实时记录值,请双击工作区窗口中的相应变量,如下图所示。

将出现对话框,其中包含所有保存到特定变量中的值。

因此,这是记录,可视化和绘制图形的方式图形。

代码

Arduino代码

#include

#define DHTPIN 4 #define DHTTYPE DHT11

DHT dht(DHTPIN,DHTTYPE);

void setup(){

Serial.begin(9600);

delay(2000) );

dht.begin();//初始化DHT11传感器

}

无效循环(){

float temp = dht.readTemperature();//读取温度数据

float humi = dht.readHumidity();//读取温度数据

Serial.print(temp);

Serial.print(humi);

delay(2000);

}

MATLAB代码

s = serial(‘COM18’);

time = 100;

i = 1;

while(i

fopen(s)

fprintf(s,“您的串行数据在此处”)

out = fscanf(s)

Temp(i)= str2num(out( 1:4));

子图(211);

图(Temp,‘g’);

axis([0,time,20,50]);

title(‘Parameter: DHT11 Temperature’);

xlabel(‘---》 x * 0.02 sec中的时间’);

ylabel(‘---》 Temperature’);

网格

Humi (i)= str2num(out(5:9));

子图(212);

图(Humi,‘m’);

axis([0,time,25,100]);

title(‘Parameter:DHT11 Humidity’);

xlabel(‘---》 x * 0.02 sec中的时间’);

ylabel(‘---》湿度%’);

网格

fclose(s)

i = i + 1;

drawnow;

end

delete(s)

clear s

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    175

    文章

    2917

    浏览量

    228408
收藏 人收藏

    评论

    相关推荐

    Python:从串口读取数据并以16进制格式展示

    本文凌顺实验室(lingshunlab.com)简单实现Python读取串口数据,并且按16进制格式显示出来。
    的头像 发表于 03-05 14:25 298次阅读
    Python:从串口读取<b class='flag-5'>数据</b>并以16进制<b class='flag-5'>格式</b>展示

    矢量图格式有几种 矢量图格式有哪些

    。矢量图在很多领域中广泛应用,如草图、图标、徽标、地图、技术插图等。 SVG(Scalable Vector Graphics) SVG 是一种基于 XML 的矢量图格式。它可以被广泛支持的浏览器、图形软件和设计工具解析和显示
    的头像 发表于 02-20 15:58 1385次阅读

    什么是数据记录器,数据记录器与数据采集系统

    虽然有些数据记录器只有一个传感器和输入,但许多数据记录器有多个通道,在许多情况下,它们可以记录来自不同类型传感器的测量值。
    的头像 发表于 02-08 12:28 901次阅读

    LabVIEW通过编程将图形类控件的X轴显示为时间戳

    LabVIEW通过编程将图形类控件的X轴显示为时间戳 每个版本的LabVIEW中都有属性节点,可以编程方式调整X轴和Y轴格式。对于不同版本的LabVIEW,这些属性节点无法在同一个位
    发表于 11-28 19:24

    ProTool组态图形显示用户手册

    电子发烧友网站提供《ProTool组态图形显示用户手册.pdf》资料免费下载
    发表于 11-22 17:14 0次下载

    DIALOG 数据记录仪配置工具及数据分析软件

    强大的 Rebel 数据记录仪配置工具。支持 Rebel 系列所有记录仪所需的配置功能。同时可获取记录数据,并对
    的头像 发表于 11-22 11:48 317次阅读
    DIALOG <b class='flag-5'>数据</b><b class='flag-5'>记录</b>仪配置工具及<b class='flag-5'>数据</b>分析软件

    CANedge1 - 2路CAN FD/LIN 数据记录仪 (SD + RTC)

    数据。接下来,提取数据并使用 100% 免费的开源软件/API工具(包括)进行处理。文件格式转换、DBC 解码和绘图可视化。非常适合记录数周、数月或数年的 CAN/LIN
    的头像 发表于 11-14 09:14 282次阅读
    CANedge1 - 2路CAN FD/LIN <b class='flag-5'>数据</b><b class='flag-5'>记录</b>仪 (SD + RTC)

    如何通过DA转换接收MATLAB生成的数据

    通过matlab生成了一组随机数,有小数,现在想将这一组随机数存入单片机中,再通过10位的D/A转换成电压信号。 问:那我需要怎么修改这组随机数数据格式,使它能够被D/A接收呢?
    发表于 10-23 06:27

    MATLAB数学建模编程资料

    它已经成为世界上应用最广泛的数学软件之一,尤其在工程计算领域、高校应用最广。该软件矩阵运算为基础,将计算、可视化、程序设计融合在简单易用的交互式环境中。u3000u3000运用MATLAB可以实现
    发表于 09-22 08:19

    将声音从音频编码器记录到MP3格式存储到缩微SD卡中

    CMSIS V3.00.001.001 硬件: NuMaker-M467HJ V1.0 此示例代码使用音频编码来记录声音。 在将声音数据编码为 MP3 格式后, 编码后的数据将被写入
    发表于 08-29 07:54

    如何记录AMR格式的音响并储存到SD卡上

    应用:示例代码记录来自 NUC505 EVB 板上的线内音,将其编码为AMR格式,然后储存到微缩胶片卡中。 BSP 版本: NUC505系列 BSP V3.02.000 硬件
    发表于 08-23 08:29

    MATLAB中特殊图形的绘制示例

    MATLAB中特殊图形的绘制示例
    的头像 发表于 07-07 09:55 513次阅读

    30个MATLAB图形绘制

    30个MATLAB图形绘制
    的头像 发表于 07-07 09:54 996次阅读

    如何更改记录器刻度的数字格式

    亲爱的 Michal,FreeMASTER 开发人员和高级用户, 我用记录器监测 Unix 时间,现在大约是 1684321580。这是十位数字。 尽管该变量是一个整数值,但缩放比例显示了一个带有
    发表于 05-18 13:40

    使用matlab和freemaster rpc-server进行自动数据记录,无法打开通信端口的原因?

    我正在使用 matlab 和 freemaster rpc-server 进行自动数据记录。我试图从 freemaster lite JS api 获取所有信息,因为没有定义命令的 json 结构
    发表于 04-21 07:04