MATLAB®can be used to quickly analyze and visualize data collected from sensors connected to Arduino®。Collect and plot live data from a temperature sensor and then analyze the data using some of the built-in MATLAB functions.
下载代码在此视频中使用。
我已经创建了一个名为“温度记录”的脚本,并将其分为部分。要运行一部分代码并推进下一个代码,您可以在MATLAB编辑器中使用运行和提前按钮。我从DNP 36传感器的数据表中有一个快照。而且我们可以看到温度与其给出的电压输出成正比。这是方程式。当我运行该部分时,我们可以看到该房间中的温度读数是什么,无论是摄氏和华氏水平。
I'm using the same equation to collect data for a specified period of time using tic and toc. We can see that it takes a long time to collect this data. This is because MATLAB sends a serial command to the device and receives a response every time to acquire a new data point. This is causing a bottleneck, which determines the fastest speed at which we can acquire data. We can also see that the data is pretty choppy.
首先,让我们计算MATLAB收集数据的频率,然后了解为什么数据断断续续。因此频率约为72赫兹。数据是断断续续的,因为我们正在使用的Arduino是一个8位设备,并且仅在其模拟引脚上读取0到1023之间的值。请记住,电压范围是0到5。因此,当我们使用这些值时,我们可以看到它对应于约0.5度厘米和1华氏度的读数。这解释了为什么数据如此波动的原因,因为即使电压值的较小变化也意味着温度发生了重大变化。
通常,在收集数据值时观察数据值很有帮助。在此期间,我用手指触摸温度传感器,以了解测量值如何变化以及是否能影响温度。因此,所使用的功能是动画行,这使得将新数据流式传输到图。此功能的另一个有用功能是数据自动存储在图中,我们不必记录它。我已经设置了脚本,因此当我按下按钮时,它会停止收集数据。
让我们看一下收集的数据。这些数据肯定需要一些后处理。可以通过应用移动平均过滤器来消除温度信号中的高频噪声。从数据表中,我们知道温度传感器在室温下的耐受性约为2度。因此,使用此信息,我计算了最大和最小的可能值,并绘制了收集的和过程数据。
这里的连续线是被过滤的数据。并使用该图中的虚线表示温度传感器公差。现在,我们已经完成了所有分析并可以看到数据,我们可能希望将收集到的数据保存到文件中。一种方法是将数据存储在表中,然后将表本身写入文件。您可以看到该文件具有所有必要的信息和收集的数据本身。感谢大家。
You can also select a web site from the following list:
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。