• NodeMCU ESP8266 基于Arduino IDE的串口图形化调试教程(超详细)


    NodeMCU ESP8266 基于Arduino IDE的串口图形化调试教程


    前言

    嵌入式的开发过程中,我们经常会采集一些传感器的数据,通常希望将这些数据通过图形化的方式展现出来,因为微控制器的资源有限。

    常用的一种方法就是通过串口将数据发送到上位机,然后通过上位机软件将数据图形化显示出来。

    我们需要编写一个上位机软件来显示串口的数据,或者使用现成的软件进行对接显示,Arduino IDE中提供好了图形化显示的软件Serial Plotter,这里我们可以简单做一下实验。

    Serial Plotter

    Serial Plotter 是 Arduino IDE 中的一个工具。Arduino可以将读取的温度、湿度或任何类型的传感器数据,通过串口发送到PC,并通过Serial Plotter进行显示。

    Serial Plotter可以将教据可视化为波形,并且支持同时显示多个数据;

    由于Serial Plotter和 ESP8266 之间通过 USB 线进行数据交换,因此我们必须保证ESP8266 和 电脑之间通过USB线的连接是完好的。

    • 物理连接完好;
    • PC安装好相应的串口驱动;

    Serial Plotter主要一个XY轴的图形显示界面;具体如下所示;

    • X轴:代表时间;X轴一共有500个点,每个点之间的时间是两个连续的Serialprintin 函教调用之间的时间,这个时间通常等于loop()函数的时间;
    • Y轴:代表从 Arduino 接收的值。Y 轴会随着值的增加或减少而自动调整;

    测试

    前期准备

    • 确保电脑上安装了软件Arduino IDE,本文使用的版本是2.2.1
    • 准备一块NodeMCU ESO8266开发板,可以通过串口连接到电脑,这里需要保证安装了串口驱动;

    打开工具

    方法 1

    Arduino IDE的菜单栏上选择,Tools -> Serial Plotter

    方法 2

    确保开发板已经和电脑连接好,点击图标即可打开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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    最终的效果如下所示;

    Serial Plotter可以自动识别 \r\n\n作为换行符;
    因此,请确保最后一个变量后面有一个换行符;

    我们可以使用Serial.print("\n")或者Serial.print("\r\n")在末尾引入换行符,另外我们可以用Serial.println()函数自动追加换行符;

    同时显示多个变量,我们可以使用\t(tab)或 (空格)作为分隔符;

    曲线的标题后需要加:Serial Plotter会自动识别出相应的曲线名称;

    总结

    本文简单介绍了Arduino IDE的工具Serial Plotter的使用,基于NodeMCU ESP8266开发板将串口数据发送到电脑上并进行图形化显示。

  • 相关阅读:
    CUDA编程:矩阵乘运算从CPU到GPU
    python进阶(26)collections标准库
    计算机毕业设计Java成人自考信息与推荐系统录屏(源码+系统+mysql数据库+lw文档)
    Pygame中将鼠标形状设置为图片2-2
    这些国外客户真直接
    openpnp软件的使用 - 引入坐标文件
    计算机毕业设计Java网上汽车售票系统(源码+系统+mysql数据库+Lw文档)
    数据结构HW1
    企业哪些项目可以参与CMMI的评估?
    Vue3 Diff算法之最长递增子序列,学不会来砍我!
  • 原文地址:https://blog.csdn.net/u010632165/article/details/133856431