arduino 上的 DHT11 数据无法正确输出

问题描述 投票:0回答:0

我是第一次使用 arduino 的工科学生,有点卡住了。我正在使用 Arduino uno R3 从 4 个 DHT11 传感器收集温度和湿度数据,并将其上传到数据记录盾上的 SD 卡。我想让它输出一个 txt。使用盾牌上的 RTC 为所有记录的数据加上时间戳的文件,但不幸的是它出现了错误。下面是 2 个连接的 DHT11 传感器的输出,我对语言的了解还不够多:

438,楠,楠,楠,楠,楠,楠,楠,楠 5564,南,南,南,南,南,南,南,南 10674,楠,楠,楠,楠,楠,楠,楠,楠 15784,楠,楠,楠,楠,楠,楠,楠,楠 20893,楠,楠,楠,楠,楠,楠,楠,楠 26001,南,南,南,南,南,南,南,南 31111,楠,楠,楠,楠,楠,楠,楠

我使用的代码是:

#include <SD.h>          // include the SD library
#include <SPI.h>         // include the SPI library
#include <DHT.h>         // include the DHT library

#define DHTPIN1 2        // pin for DHT11 #1
#define DHTPIN2 3        // pin for DHT11 #2
#define DHTPIN3 4        // pin for DHT11 #3
#define DHTPIN4 5        // pin for DHT11 #4
#define DHTTYPE DHT11    // DHT type is DHT11
DHT dht1(DHTPIN1, DHTTYPE);
DHT dht2(DHTPIN2, DHTTYPE);
DHT dht3(DHTPIN3, DHTTYPE);
DHT dht4(DHTPIN4, DHTTYPE);

File dataFile;           // create a file object to store data

void setup() {
  // initialize serial communication
  Serial.begin(9600);
  // initialize SD card
  if (!SD.begin(10)) {
    Serial.println("SD card initialization failed");
    return;
  }
  // initialize DHT sensors
  dht1.begin();
  dht2.begin();
  dht3.begin();
  dht4.begin();
}

void loop() {
  // get timestamp
  unsigned long currentTime = millis();

  // read and save temperature and humidity data from all sensors
  float temperature1 = dht1.readTemperature();
  float humidity1 = dht1.readHumidity();
  float temperature2 = dht2.readTemperature();
  float humidity2 = dht2.readHumidity();
  float temperature3 = dht3.readTemperature();
  float humidity3 = dht3.readHumidity();
  float temperature4 = dht4.readTemperature();
  float humidity4 = dht4.readHumidity();

  // open data file in append mode
  dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) {
    // write timestamp and temperature/humidity data to file
    dataFile.print(currentTime);
    dataFile.print(",");
    dataFile.print(temperature1);
    dataFile.print(",");
    dataFile.print(humidity1);
    dataFile.print(",");
    dataFile.print(temperature2);
    dataFile.print(",");
    dataFile.print(humidity2);
    dataFile.print(",");
    dataFile.print(temperature3);
    dataFile.print(",");
    dataFile.print(humidity3);
    dataFile.print(",");
    dataFile.print(temperature4);
    dataFile.print(",");
    dataFile.println(humidity4);
    dataFile.close();
  }
  else {
    Serial.println("Error opening datalog.txt");
  }

  // wait 5 seconds before taking next measurement
  delay(5000);
}

请让我知道我哪里出错了。

我最初尝试使用一个 DHT11 传感器并获得相同格式的输出,因此认为添加更多传感器将有助于解决问题,但事实并非如此,我不知道问题出在哪里。

sensors arduino-uno arduino-ide
© www.soinside.com 2019 - 2024. All rights reserved.