Buonasera!!
Stasera sto cercando di utilizzare il sensore di temperatura ed umidità DHT22 per rilevare, appunto, questi dati.
Collegamenti OK, librerie OK. Sullo schermo LCD vedo tutto senza problemi, ma non riesco a scrivere questi dati sulla scheda SD: sul file si vede la "descrizione" che ho inserito io, ma non i dati rilevati dal sensore.
Vi lascio il codice e il file di testo coi problemi.
#include <DHT.h>
#include <SPI.h>
#include <SD.h>
#include <LiquidCrystal.h>
#include <DS3231.h>
int E = 3; //LCD PIN "E"
int RS = 2; //LCD PIN "RS"
int DB7 = 7; //PIN LCD "DB7"
int DB6 = 6; //PIN LCD "DB6"
int DB5 = 5; //PIN LCD "DB5"
int DB4 = 4; //PIN LCD "DB4"
int CS = 53;
//oggetto di tipo "DS3231" chiamato "orologio"
DS3231 orologio(SDA, SCL);
Time t;
//oggetto di tipo "LiquidCrystal" chiamato "lcd"
LiquidCrystal lcd(RS, E, DB4, DB5, DB6, DB7);
DHT sensore(8, DHT22);
File file;
void setup() {
orologio.begin();
lcd.begin(20, 4); //DIMENSIONI SCHERMO LCD
Serial.begin(9600);
if (!SD.begin(CS)) {
lcd.print("ERRORE");
return;
} else {
lcd.print("OK SCHEDA");
}
delay (5000);
lcd.clear();
float umid = sensore.readHumidity();
float temp = sensore.readTemperature();
//int umidINT = umid;
if (SD.exists("registro.txt")) {
SD.remove("registro.txt");
} else {
file = SD.open("registro.txt", FILE_WRITE);
file.write(orologio.getDateStr());
file.write (" ");
file.write(orologio.getTimeStr());
file.write(" ");
file.write("temperatura: ");
file.write(sensore.readTemperature());
file.write(" ");
file.write("umidità: ");
file.write(sensore.readHumidity());
delay(1000);
file.close();
}
}
Qualche aiuto?
Grazie mille
Alessandro
REGISTRO.TXT (50 Bytes)