#include #include #include #include #include #include #include "DHT.h" const int chipSelect = 10; #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); RTC_DS1307 RTC; Adafruit_BMP280 bmp; // I2C LiquidCrystal_I2C lcd(0x27,20,4); char filename [] = "00000000.CSV"; void setup() { Serial.begin(9600); lcd.init(); lcd.backlight(); Wire.begin(); RTC.begin(); // ligne suivante pour initialiser l'heure du RTC/PC la premiere fois // decocher les // , telecharger , puis remettre les // // RTC.adjust(DateTime(__DATE__, __TIME__)); dht.begin(); bmp.begin(); /* config par defaut suivant datasheet */ bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, Adafruit_BMP280::SAMPLING_X2, Adafruit_BMP280::SAMPLING_X16, Adafruit_BMP280::FILTER_X16, Adafruit_BMP280::STANDBY_MS_500); SD.begin(chipSelect); } void loop() { float h = dht.readHumidity(); float t1 = dht.readTemperature(); float t2 = bmp.readTemperature(); float p = bmp.readPressure(); float tm = (t1+t2)/2; DateTime now = RTC.now(); uint16_t year1 = now.year(); uint16_t month1 = now.month(); uint16_t day1 = now.day(); uint16_t hour1 = now.hour(); uint16_t minute1 = now.minute(); uint16_t second1 = now.second(); filename[0] = (year1/1000)%10 + '0'; filename[1] = (year1/100)%10 + '0'; filename[2] = (year1/10)%10 + '0'; filename[3] = (year1)%10 + '0'; filename[4] = month1/10 + '0'; filename[5] = (month1)%10 + '0'; filename[6] = day1/10 + '0'; filename[7] = (day1)%10 + '0'; filename[8] = '.'; filename[9] = 'c'; filename[10] ='s'; filename[11] ='v'; String date = String(day1) + "/" + String(month1) + "/" + String(year1); String time = String(hour1) + ":" + String(minute1) + ":" + String(second1); lcd.setCursor(0,0); lcd.print(date) ; lcd.setCursor(11,0); lcd.print(time) ; lcd.setCursor(7,1); lcd.print(tm) ; lcd.setCursor(12,1); lcd.print(char(223)) ; lcd.setCursor(13,1); lcd.print("C") ; lcd.setCursor(0,2); lcd.print(h) ; lcd.setCursor(5,2); lcd.print("%Hu") ; int roundp = int(p); lcd.setCursor(9,2); lcd.print(p) ; lcd.setCursor(18,2); lcd.print("Pa") ; File dataFile = SD.open(filename, FILE_WRITE); String dataReg = String(year1) + "/" + String( month1) + "/" + String(day1) +";" + String(hour1) + ":"+ String(minute1) + ":" + String(second1) + ";" + String(tm) + ";" + String(h) + ";" + String(p) + ";" ; dataFile.println(dataReg); dataFile.close(); delay(60000); }