matlab数据分析之脸谱图,MATLAB数据记录、分析和可视化:在MATLAB上绘制DHT11传感器读数...

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

在本篇文章中,我们将学习如何使用MATLAB以图形格式记录和显示数据。在这里,我们使用Arduino和MATLAB记录DHT11的实时温度和湿度数据。

需要的组件

●    安装MATLAB的笔记本电脑

●    Arduino UNO开发板

●    DHT11温湿度传感器

电路原理图

52f10ccd9bac9d7299beb58f93885e4d.gif

Circuit-Diagram-for-Plotting-DHT11-Sensor-readings-on-MATLAB.png (29.26 KB, 下载次数: 24)

2019-6-27 10:50 上传

52f10ccd9bac9d7299beb58f93885e4d.gif

Circuit-Hardware-for-Plotting-DHT11-Sensor-readings-on-MATLAB.jpg (65.71 KB, 下载次数: 25)

2019-6-27 10:50 上传

用于DHT11的Arduino代码与MATLAB连接

将DHT11传感器与Arduino连接后,使用Arduino IDE将代码上传到Arduino。在文章的末尾处给出了完整的Arduino代码,用于将温度和湿度数据记录和可视化到MATLAB中。让我们了解代码是如何工作的。

首先包括用于DHT11传感器的库,即'DHT.h'。

#include 复制代码

然后定义连接到Arduino的DHT11数据引脚。本例中,使用的是4号引脚。

#define DHTPIN 4复制代码

在void setup()函数中初始化串口和DHT11传感器。

void setup() {

Serial.begin(9600);

delay(2000);

dht.begin();   // initialise DHT11 sensor

}复制代码

在void loop()函数中,将温度和湿度的值设置为浮点类型。使用命令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中的“新脚本”打开编辑器窗口,如下图所示。

52f10ccd9bac9d7299beb58f93885e4d.gif

Creating-New-Editor-script-in-MATLAB.png (7.22 KB, 下载次数: 25)

2019-6-27 10:52 上传

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));复制代码

现在,将完整的代码粘贴到编辑器窗口中。单击“运行”按钮处理代码,如下图所示。

52f10ccd9bac9d7299beb58f93885e4d.gif

Run-MATLAB-GUI.png (15.71 KB, 下载次数: 29)

2019-6-27 10:54 上传

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

52f10ccd9bac9d7299beb58f93885e4d.gif

Processing-MATLAB-GUI-Program.png (1.3 KB, 下载次数: 28)

2019-6-27 10:54 上传

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

52f10ccd9bac9d7299beb58f93885e4d.gif

Plotting-DHT11-Sensor-readings-on-MATLAB.png (14.81 KB, 下载次数: 29)

2019-6-27 10:55 上传

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

52f10ccd9bac9d7299beb58f93885e4d.gif

Checking-DHT11-Logged-Data-on-Matlab.png (16.18 KB, 下载次数: 25)

2019-6-27 10:56 上传

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

52f10ccd9bac9d7299beb58f93885e4d.gif

Checking-DHT11-Logged-Humidity-Data-on-Matlab.png (4.88 KB, 下载次数: 28)

2019-6-27 10:56 上传

52f10ccd9bac9d7299beb58f93885e4d.gif

Checking-DHT11-Logged-Temperature-Data-on-Matlab.png (4.54 KB, 下载次数: 32)

2019-6-27 10:56 上传

以上就是您如何使用MATLAB基于任何数据记录、可视化和绘制图形。如果遇到任何问题,请在本帖下面进行回复。

代码

本文使用的完整代码如下(包含Arduino和Matlab代码):

a02d7380a043e7f4349c746237c6b94c.gif

main.rar

(608 Bytes, 下载次数: 54)

2019-6-27 11:03 上传

点击文件名下载附件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值