Main Content

本页采用了机器翻译。点击此处可查看英文原文。

分析您的数据

此示例演示如何从 ThingSpeak channel 12397 读取温度和湿度数据,该数据从 Arduino® 设备收集天气相关数据。您将温度和湿度数据以及计算出的露点数据写入露点测量通道。然后使用 ThingSpeak™ 在您的通道上可视化结果。

前提步骤

此示例要求您已执行以下步骤:

从通道读取数据

从公共气象站通道字段 3 和 4 读取湿度和温度,并将该数据分别写入露点测量通道的字段 2 和 1。计算露点并将其写入字段 3。

使用 MATLAB® Analysis 读取、计算和写入数据。

  1. 转至 Apps 选项卡,然后点击 MATLAB Analysis

  2. 点击 New。选择 Custom 模板,然后点击 Create

  3. Name 字段中,输入 Dew Point Calculation

  4. 在 MATLAB 代码字段中,输入以下代码行。

    1. 将公共气象站通道ID 和露点测量通道ID 保存到变量中。

      readChId = 12397;
      writeChId = 671;  % replace with your channel number
    2. 将您的 Write API Key 保存到变量中。

      writeKey = 'F6CSCVKX42WFZN9Y'; % Replace with your channel write key

      要查找您的通道 ID 和写入 API 密钥,请参阅 My Channels 选项卡上的通道信息。

    3. 将公共气象站通道中最新 20 个带时间戳的温度数据和湿度数据读取到变量中。

      [temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20);
      humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);

计算露点

添加以下 MATLAB 代码以使用温度和湿度读数计算露点:

  1. 将温度从华氏度转换为摄氏度。

    tempC = (5/9)*(temp-32); 

  2. 指定水蒸气常数 (b) 和气压常数 (c)。

    b = 17.62;
    c = 243.5;

  3. 计算露点(以摄氏度为单位)。

    gamma = log(humidity/100) + b*tempC./(c+tempC);
    dewPoint = c*gamma./(b-gamma)

  4. 将结果转换回华氏度。

    dewPointF = (dewPoint*1.8) + 32;

  5. 将数据写入您的露点测量通道。此代码在一次操作中发布所有可用数据,并包含正确的时间戳。

    thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],...
    'TimeStamps',time,'Writekey',writeKey);

    完整的代码块现在显示为:

     查看完整代码

  6. 点击 Save and Run 验证并处理您的代码。

    代码中的任何错误都会在 Output 字段中指示。

  7. 要查看您的代码是否成功运行,请点击 Channel Info 面板中的 Dew Point Measurement通道链接。

露点测量通道现在显示包含每个字段的通道数据的图表。

调度代码

使用 TimeControl App 在 MATLAB 分析代码中调度露点计算。安排它每 30 分钟从气象站读取一次数据并计算露点。

  1. 滚动到 MATLAB 分析露点计算页面的底部。点击 TimeControl 打开 App ,并在 Actions 字段中预先选择 MATLAB Analysis,并将露点计算设置为 Code to execute

  2. 将新的 TimeControl 命名为 Dew Point TC

  3. Frequency 字段中选择 Recurring

  4. Recurrence 字段中选择 Minute

  5. Every — minutes 字段中选择 30

  6. Start Time 保留为默认值。

  7. 验证 ActionMATLAB AnalysisCode to execute 是您的 Dew Point Calculation

  8. 点击Save TimeControl

注意

设置 TimeControl 以将数据写入您的通道,使用 ThingSpeak 帐户上的可用消息。此操作最终可能会耗尽可用消息,从而导致拒绝通道源更新。确保写入通道的数据在时域中不会重叠,因为这会导致不必要的消息使用。

可视化露点测量

使用 MATLAB 可视化 App 可视化来自露点测量通道的测量露点数据、温度和湿度。此示例使用 plot (MATLAB) 函数在单个可视化中显示所有三个数据点。

转到 Apps > MATLAB Visualizations,然后点击 New 创建可视化。

或者,您可以在露点测量通道视图中点击 MATLAB Visualization

  1. 选择 Custom 模板,然后点击 Create

  2. 将可视化命名为“露点”。

  3. 为您的露点测量通道ID 和读取 API 密钥创建变量。将代码中的值替换为您的通道ID 和读取 API 密钥。

    readChId = ZZZZ
    readKey = 'XXXXXXXXXXXXXXXX';

  4. 从通道字段读取数据,并获取以下内容的最后 100 个数据点:

    • 温度:来自 Field 1

    • 湿度:来自 Field 2

    • 露点:来自 Field 3

      [dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],...
          'NumPoints',100,'ReadKey',readKey);
  5. 使用 x 和 y 标签、标题和图例绘制数据。

    plot(timeStamps,dewPointData);
    xlabel('TimeStamps');
    ylabel('Measured Values');
    title('Dew Point Measurement');
    legend({'Temperature','Humidity','Dew Point'});
    grid on;

    您的代码将类似于以下代码:

     查看完整代码

  6. 点击 Save and Run。如果您的 MATLAB 代码没有错误,则绘图输出看起来与此处显示的绘图类似:

下一步

在示例根据您的数据采取行动 中,您可以跟踪计算出的露点,以便在超过指定水平时触发自动推文。

另请参阅

| | (MATLAB) | (MATLAB) | (MATLAB) | (MATLAB) | (MATLAB) | (MATLAB)

相关主题