在嵌入式的开发过程中,我们经常会采集一些传感器的数据,通常希望将这些数据通过图形化的方式展现出来,因为微控制器的资源有限。
常用的一种方法就是通过串口将数据发送到上位机,然后通过上位机软件将数据图形化显示出来。
我们需要编写一个上位机软件来显示串口的数据,或者使用现成的软件进行对接显示,Arduino IDE中提供好了图形化显示的软件Serial Plotter
,这里我们可以简单做一下实验。
Serial Plotter
是 Arduino IDE 中的一个工具。Arduino可以将读取的温度、湿度或任何类型的传感器数据,通过串口发送到PC,并通过Serial Plotter
进行显示。
Serial Plotter
可以将教据可视化为波形,并且支持同时显示多个数据;
由于Serial Plotter
和 ESP8266 之间通过 USB 线进行数据交换,因此我们必须保证ESP8266 和 电脑之间通过USB线的连接是完好的。
Serial Plotter
主要一个XY轴的图形显示界面;具体如下所示;
Serialprintin
函教调用之间的时间,这个时间通常等于loop()
函数的时间;Arduino IDE
,本文使用的版本是2.2.1
;在Arduino IDE
的菜单栏上选择,Tools -> Serial Plotter
确保开发板已经和电脑连接好,点击图标即可打开Serial Plotter
;
下面的代码用于显示正弦和余弦函数的曲线,x1
显示sin曲线,x2显示cos曲线;具体如下所示;
float timeCnt = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
timeCnt++;
float t0 = 5;
float x1 = 10*sin(timeCnt/t0);
float x2 = 10*cos(timeCnt/t0);
Serial.print("Sin:");
Serial.println(x1);
Serial.print(",");
Serial.print("Cos:");
Serial.println(x2);
}
最终的效果如下所示;
Serial Plotter
可以自动识别\r\n
或\n
作为换行符;
因此,请确保最后一个变量后面有一个换行符;
我们可以使用
Serial.print("\n")
或者Serial.print("\r\n")
在末尾引入换行符,另外我们可以用Serial.println()
函数自动追加换行符;
同时显示多个变量,我们可以使用
\t
(tab)或 (空格)作为分隔符;
曲线的标题后需要加
:
,Serial Plotter
会自动识别出相应的曲线名称;
本文简单介绍了Arduino IDE的工具Serial Plotter的使用,基于NodeMCU ESP8266开发板将串口数据发送到电脑上并进行图形化显示。