Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.93 KB | None | 0 0
  1. #include  <Adafruit_ST7735.h>
  2. #include  <Adafruit_GFX.h>
  3. #include <Wire.h>
  4. #include "Sodaq_DS3231.h"
  5. #include  <SPI.h>
  6.  
  7. #define TFT_CS     10
  8. #define TFT_RST    8                      
  9. #define TFT_DC     9
  10.  
  11. Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS,  TFT_DC, TFT_RST);
  12.  
  13. // Option 2: use any pins but a little slower!
  14. #define TFT_SCLK 13   // set these to be whatever pins you like!
  15. #define TFT_MOSI 11   // set these to be whatever pins you like!
  16. //#define ST7735_TFTWIDTH_128  128
  17. //#define ST7735_TFTHEIGHT_128 128
  18. float maxTemperature=0;
  19. float minTemperature=200;
  20. char charMinTemperature[10];
  21. char charMaxTemperature[10];
  22. char timeChar[100];
  23. char dateChar[50];
  24. char temperatureChar[10];
  25.  
  26. float temperature = 0;
  27. float previousTemperature = 0;
  28.  
  29. String dateString;
  30. int minuteNow=0;
  31. int minutePrevious=0;
  32.  
  33. void setup ()
  34. {   tft.initR(INITR_BLACKTAB);
  35.     //tft.initR(INITR_144GREENTAB);
  36.     tft.fillScreen(ST7735_BLACK);
  37.     Serial.begin(57600);
  38.     Wire.begin();
  39.     rtc.begin();
  40.     printText("TEMPERATUR", ST7735_GREEN,34,90,1);  // Temperature Static Text
  41.     printText("MAX", ST7735_RED,18,130,1);
  42.     printText("MIN", ST7735_BLUE,95,130,1);
  43.     //setRTCTime();
  44. }
  45.  
  46. uint32_t old_ts;
  47.  
  48. void loop ()
  49. {
  50.   float temperature = rtc.getTemperature();
  51.   DateTime now = rtc.now(); //get the current date-time
  52.   uint32_t ts = now.getEpoch();
  53.  
  54.     if (old_ts == 0 || old_ts != ts) {
  55.   old_ts = ts;
  56.  
  57.   minuteNow = now.minute();
  58.   if(minuteNow!=minutePrevious)
  59.   {
  60.     dateString = getDayOfWeek(now.dayOfWeek())+", ";
  61.     dateString = dateString+String(now.date())+"/"+String(now.month());
  62.     dateString= dateString+"/"+ String(now.year());
  63.     minutePrevious = minuteNow;
  64.     String hours = String(now.hour());
  65.     if(now.minute()<10)
  66.     {
  67.       hours = hours+":0"+String(now.minute());
  68.     }else
  69.     {
  70.       hours = hours+":"+String(now.minute());
  71.     }
  72.    
  73.     hours.toCharArray(timeChar,100);
  74.     tft.fillRect(14,52,100,28,ST7735_BLACK);
  75.     printText(timeChar, ST7735_WHITE,20,55,3);
  76.     dateString.toCharArray(dateChar,50);
  77.     printText(dateChar, ST7735_GREEN,7,37,1);
  78.   }
  79.  
  80.   if(temperature != previousTemperature)
  81.   {
  82.     previousTemperature = temperature;
  83.     String temperatureString = String(temperature,1);
  84.     temperatureString.toCharArray(temperatureChar,10);
  85.     tft.fillRect(14,104,100,20,ST7735_BLACK);
  86.     printText(temperatureChar, ST7735_WHITE,30,110,1);
  87.     printText("o", ST7735_WHITE,82,108,1);
  88.     printText("C", ST7735_WHITE,90,110,1);
  89.  
  90. if(temperature>maxTemperature)
  91.     {
  92.       maxTemperature = temperature;
  93.       dtostrf(maxTemperature,5, 1, charMaxTemperature);
  94.       tft.fillRect(6,142,28,14,ST7735_BLACK);
  95.       printText(charMaxTemperature, ST7735_WHITE,3,145,1);
  96.       printText("o", ST7735_WHITE,35,140,1);
  97.       printText("C", ST7735_WHITE,41,145,1);
  98.     }
  99. if(temperature  < minTemperature
  100.  
  101. )
  102.  {
  103.       minTemperature = temperature;
  104.       dtostrf(minTemperature,5, 1, charMinTemperature);
  105.       tft.fillRect(83,142,28,14,ST7735_BLACK);
  106.       printText(charMinTemperature, ST7735_WHITE,80,145,1);
  107.       printText("o", ST7735_WHITE,112,140,1);
  108.       printText("C", ST7735_WHITE,118,145,1);
  109.     }
  110.   }
  111. }
  112.     delay(2000);
  113. }
  114.  
  115.  
  116. void setRTCTime()
  117. {
  118.   DateTime dt(2017, 11, 19, 15, 57, 00, 7); // Year, Month, Day, Hour, Minutes, Seconds, Day of Week
  119.   rtc.setDateTime(dt); //Adjust date-time as defined 'dt' above
  120. }void printText(char *text, uint16_t color, int x, int y,int textSize)
  121. {
  122.   tft.setCursor(x, y);
  123.   tft.setTextColor(color);
  124.   tft.setTextSize(textSize);
  125.   tft.setTextWrap(true);
  126.   tft.print(text);
  127. }
  128.  
  129. String getDayOfWeek(int i)
  130. {
  131.   switch(i)
  132.   {
  133.     case 1: return "Montag";break;
  134.     case 2: return "Dienstag";break;
  135.     case 3: return "Mittwoch";break;
  136.     case 4: return "Donnerstag";break;
  137.     case 5: return "Freitag";break;
  138.     case 6: return "Samstag";break;
  139.     case 7: return "Sonntag";break;
  140.     default: return "Montag";break;
  141.   }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement