|
图形表示总是有助于可视化数据,通过查看它们变得非常容易找到趋势和模式。有许多软件可用于根据输入值绘制图形,但在嵌入式系统中,MATLAB是最流行的软件之一,它不仅可以以图形格式显示结果,而且可以轻松地与硬件和微控制器集成。
在本篇文章中,我们将学习如何使用MATLAB以图形格式记录和显示数据。在这里,我们使用Arduino和MATLAB记录DHT11的实时温度和湿度数据。
需要的组件 ● 安装MATLAB的笔记本电脑 ● Arduino UNO开发板 ● DHT11温湿度传感器
电路原理图
用于DHT11的Arduino代码与MATLAB连接 将DHT11传感器与Arduino连接后,使用Arduino IDE将代码上传到Arduino。在文章的末尾处给出了完整的Arduino代码,用于将温度和湿度数据记录和可视化到MATLAB中。让我们了解代码是如何工作的。
首先包括用于DHT11传感器的库,即'DHT.h'。 然后定义连接到Arduino的DHT11数据引脚。本例中,使用的是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中的“新脚本”打开编辑器窗口,如下图所示。
DHT11传感器数据记录的完整MATLAB代码在本文末尾给出。
首先定义一个从MATLAB到Arduino的串行通信变量。 COM18是Arduino连接的端口,您可以相应地进行更改。 在下面的代码中,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传感器将数据发送到串行端口需要两秒钟。
要检查温度和湿度的实时记录值,请双击工作区窗口中的相应变量,如下图所示。
将出现一个对话框,其中包含特定变量中的所有已保存值。
以上就是您如何使用MATLAB基于任何数据记录、可视化和绘制图形。如果遇到任何问题,请在本帖下面进行回复。
代码 本文使用的完整代码如下(包含Arduino和Matlab代码):
main.rar
(608 Bytes, 下载次数: 133)
|