Advertisement
J0N4TH4NGR4NDM0NT

Acquisition de la température de deux DHT11 avec display + SD + RTC

Apr 13th, 2022
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Wire.h>
  2.  
  3. #include <RTC.h>
  4. static DS1307 RTC;
  5.  
  6. #include <SPI.h>
  7. #include <SD.h>
  8. File myFile;
  9.  
  10. #include <LiquidCrystal_I2C.h>
  11. LiquidCrystal_I2C lcd(0x27,20,4);
  12.  
  13. #include "DHT.h"
  14. #define dht_int A2
  15. #define dht_ext A1
  16. #define DHTTYPE DHT11
  17. DHT dht1(dht_int, DHTTYPE);
  18. DHT dht2(dht_ext, DHTTYPE);
  19.  
  20. //
  21.  
  22. void save_temperature() {
  23.   myFile = SD.open("temp.txt", FILE_WRITE);
  24.  
  25.   float h1 = dht1.readHumidity();
  26.   float t1 = dht1.readTemperature();
  27.   float f1 = dht1.readTemperature(true);
  28.   float h2 = dht2.readHumidity();
  29.   float t2 = dht2.readTemperature();
  30.   float f2 = dht2.readTemperature(true);
  31.  
  32.   if (RTC.getDay()<10){
  33.   myFile.print(0);
  34.   }
  35.   myFile.print(RTC.getDay());
  36.   myFile.print("-");
  37.   if (RTC.getMonth()<10){
  38.   myFile.print(0);
  39.   }
  40.   myFile.print(RTC.getMonth());
  41.   myFile.print("-");
  42.   myFile.print(RTC.getYear());
  43.   myFile.print(",");
  44.   myFile.print(RTC.getHours());
  45.   myFile.print(":");
  46.   if (RTC.getMinutes()<10){
  47.   myFile.print(0);
  48.   }
  49.   myFile.print(RTC.getMinutes());
  50.   myFile.print(":");
  51.   if (RTC.getSeconds()<10){
  52.   myFile.print(0);
  53.   }
  54.   myFile.print(RTC.getSeconds());
  55.   myFile.print(",");
  56.   myFile.print("T_INT:,");
  57.   myFile.print(t1);
  58.   myFile.print(",degré_C & ");
  59.   myFile.print(" HUMIDITÉ:,");
  60.   myFile.print(h1);
  61.   myFile.print(",%  ");
  62.   myFile.print("T_EXT:,");
  63.   myFile.print(t2);
  64.   myFile.print(",degré C & ");
  65.   myFile.print("HUMIDITÉ :, ");
  66.   myFile.print(h2);
  67.   myFile.println();
  68.   myFile.close();
  69. }
  70. //---------------------------------------------------------------
  71.   void temp(){
  72.  
  73.   float h1 = dht1.readHumidity();
  74.   float t1 = dht1.readTemperature();
  75.   float f1 = dht1.readTemperature(true);
  76.  
  77.   lcd.setCursor(0,1);
  78.   lcd.print("INT:");
  79.   lcd.print(t1);
  80.   lcd.print("C ");
  81.   lcd.print("H:");
  82.   lcd.print(h1);
  83.   lcd.print("%");
  84.  
  85.   float h2 = dht2.readHumidity();
  86.   float t2 = dht2.readTemperature();
  87.   float f2 = dht2.readTemperature(true);
  88.  
  89.   lcd.setCursor(0,2);
  90.   lcd.print("EXT:");
  91.   lcd.print(t2);
  92.   lcd.print("C ");
  93.   lcd.print("H:");
  94.   lcd.print(h2);
  95.   lcd.print("%");
  96.   }
  97. //---------------------------------------------------------------  
  98.  
  99.   void lcd_display_time() {
  100.   lcd.setCursor(0,0);
  101.   if (RTC.getDay()<10){
  102.   lcd.print(0);
  103.   }
  104.   lcd.print(RTC.getDay());
  105.   lcd.print("-");
  106.   if (RTC.getMonth()<10){
  107.   lcd.print(0);
  108.   }
  109.   lcd.print(RTC.getMonth());
  110.   lcd.print("-");
  111.   lcd.print(RTC.getYear());
  112.  
  113.   lcd.print(" ");
  114.   if (RTC.getHours()<10){
  115.   lcd.print(0);
  116.   }
  117.   lcd.print(RTC.getHours());
  118.   lcd.print(":");
  119.   if (RTC.getMinutes()<10){
  120.   lcd.print(0);
  121.   }
  122.   lcd.print(RTC.getMinutes());
  123.   lcd.print(":");
  124.   if (RTC.getSeconds()<10){
  125.   lcd.print(0);
  126.   }
  127.   lcd.print(RTC.getSeconds());
  128.   }
  129. //---------------------------------------------------------------
  130. void setup()
  131. {
  132.   Serial.begin(9600);
  133.   RTC.begin();
  134.   Wire.begin();
  135.   dht1.begin();
  136.   dht2.begin();
  137.   delay(100);
  138.   lcd.init();
  139.   lcd.backlight();
  140.   delay(100);
  141. }
  142. //---------------------------------------------------------------
  143. void loop()
  144. {
  145. //---------------------------------------------------------------
  146.   save_temperature();
  147.   lcd_display_time();
  148.   temp();
  149.     delay(1000);
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement