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

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

需要的组件

●    安装MATLAB的笔记本电脑

●    Arduino UNO开发板

●    DHT11温湿度传感器

电路原理图

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

2019-6-27 10:50 上传

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中的“新脚本”打开编辑器窗口,如下图所示。

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

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

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

2019-6-27 10:54 上传

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

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

2019-6-27 10:54 上传

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

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

2019-6-27 10:55 上传

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

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

2019-6-27 10:56 上传

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

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

2019-6-27 10:56 上传

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

2019-6-27 10:56 上传

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

代码

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

main.rar

(608 Bytes, 下载次数: 54)

2019-6-27 11:03 上传

点击文件名下载附件

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

  1. MATLAB数据分析方法第2章数据描述性分析

    2.1 基本统计量与数据可视化 1.均值.中位数.分位数.三均值 均值.中位数:mean(A).media(A) 分位数:prctile(A,P),P∈[0,100] prctile(A,[25,50 ...

  2. RTMP交互数据记录分析

    RTMP 交互数据记录分析 手工解析报文,一次搞不完,后续慢慢修改 文章目录 RTMP 交互数据记录分析 Handshake 牵手 (C->S) Handshake C0+C1 C0 C1 (S ...

  3. 数据分析:基于Pandas的全球自然灾害分析与可视化

    数据分析:基于Pandas的全球自然灾害分析与可视化 问题描述 处理流程 数据预处理 数据提取 按主要类别与年份统计灾害数 统计每类灾害影响的人数 统计从1990到2021年的每类灾害造成的死亡人数 ...

  4. 爬取最好大学网数据、分析并可视化操作

    爬虫爬取数据.分析并可视化操作 本次对最好大学网进行爬虫示例. 1.获取网页响应 def getHTMLText(url):try:resp = request.urlopen(url)html_da ...

  5. 使用python生成词云——聆心云心理健康服务平台数据可视分析和可视化

    实验题目:聆心云心理健康服务平台数据可视分析和可视化 实验目的和要求:统计出在聆心云平台做沙盘游戏的次数.根据各次沙盘游戏所使用的沙具和进行的操作数据进行词云可视化,掌握Python词云制作方法 实验 ...

  6. 切尔诺夫脸用matlab,切尔诺夫脸谱图表现中国各省生活质量_武斌.pdf

    切尔诺夫脸谱图表现中国各省生活质量_武斌.pdf 20 12 3 Mar. 20 12 年 月 山西经济管理干部学院学报 20 1 JOURNAL OF SHANXI ECONOMIC MANAGEM ...

  7. python数据分析岗位_python拉勾数据职位分析

    简介:试着,做了一个拉勾网数据分析师职位的数据分析. 其实,虽然很想做数据分析师,但是是跨行,心里相当忐忑,做这个分析就相当于加深自己对数据分析这个行业的了解了. 思路 大致思路 起始 数据来源 本来 ...

  8. GateUpdate网关数据记录分析

    作者针对ServerTools的数据加载进行了全方位的分析,何为数据分析? 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求相对完整地开发数据的功能,发挥数 ...

  9. 文本数据可视化_非结构化文本数据的分析和可视化

    文本数据可视化 Stuck behind the paywall? Read this article with my friend link here. 卡在收费墙后面? 在这里与我的朋友链接阅读本 ...

最新文章

  1. 计算机书籍-老年人编程自学书籍
  2. memsql 落地mysql_MemSQL初体验 - (2)初始化测试环境
  3. 64位linux下was宕机,was7经常自动宕机,前方告急,工程师面临崩溃.小弟跪上
  4. SQLite3-各个函数
  5. SQL Server 环形缓冲区(Ring Buffer) -- 介绍
  6. RabbitMQ 官方NET教程(二)【工作队列】
  7. DFTug - Running the Test DRC Debugger
  8. An Introduction to Hashing in the Era of Machine Learning
  9. mongodb 启动_程序员看过来:如何下载和安装MongoDB数据库?
  10. Java通过Executors提供四种线程池
  11. 手机文件传云服务器,手机云服务器传文件
  12. 使用JavaScript重定向URL参数
  13. Google又多了一家兄弟公司,要用机器学习帮企业防黑客
  14. Windows Server 2003群集配置手记(转载)
  15. 积分上下限无穷_数分笔记——5种广义积分敛散性的基本方法
  16. gif动图怎么制作?手把手教你视频转gif动图
  17. C++的岗位要求是什么?
  18. python如何调用math函数库函数_Python math函数库
  19. python基础-包文件批量导入导出
  20. 第十二届蓝桥杯 ——双阶乘

热门文章

  1. flex 平铺布局_Flex 布局语法教程
  2. 图片怎么去水印?图片去水印超好用的几个方法,去的快速又干净
  3. WebForm框架、隐藏域
  4. CVPR 2022 | 图森未来提出小目标检测工作QueryDet:使用级联稀疏query加速高分辨率下的小目标检测...
  5. 4G VoLTE存在漏洞可导致手机用户地理位置和其它个人信息泄露
  6. 手机内存不足?不要胡乱清理了,学会了让手机空间瞬间释放!
  7. 软件】老毛桃U盘启动盘v9.17(DIY无广告版)
  8. 判断多个checkbox复选框至少选一个(提交时必须选择一个)
  9. 前后端分离后台管理项目(springboot+mybatis+vue)
  10. 快手还是慢手——问题解决及构想力