我是第一次使用 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 传感器并获得相同格式的输出,因此认为添加更多传感器将有助于解决问题,但事实并非如此,我不知道问题出在哪里。