Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #define sclk 13 // nastavení, kde co máme připojeno
  2. #define mosi 11
  3. #define cs   10
  4. #define dc   12
  5. #define rst  8 // není zapojeno
  6.  
  7. #include <Adafruit_GFX.h>    // grafická knihovna
  8. #include <Adafruit_ST7735.h> // ovladač displeje
  9. #include <SPI.h>             // SPI
  10. #include <dht11.h>           // knihovna pro DHT11
  11.  
  12.  
  13. // vytvoření objektu displeje
  14. Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst);
  15. // vytvoření objektu pro DHT11
  16. dht11 DHT11; //
  17.  
  18. // proměněná pro barvu
  19. int color = 0;
  20.  
  21.  
  22. void setup(void) {
  23.  
  24.   // inicializace displeje
  25.   tft.initR(INITR_BLACKTAB);
  26.   // vyplní pozadí barvou (0 - 255)
  27.   tft.fillScreen(200)  ;
  28.   // přejde na pozici 5 zleva, 20 shora
  29.   tft.setCursor(5,20);
  30.   // napíše text LightSensor
  31.   tft.print("LightSensor");
  32.   // přejde na pozici 5 zleva, 40 shora
  33.   tft.setCursor(5,40);
  34.   tft.print("Soil moisture");
  35.   // .....
  36.   tft.setCursor(5,60);
  37.   tft.print("Temperature");
  38.   tft.setCursor(5,80);
  39.   tft.print("Humidity");
  40.   }
  41.  
  42. void loop(void) {
  43.   // vypisuje hodnotu na řádek 20
  44.   // když je hodnota menší než 250
  45.   // tak podklad hodnoty zčervená
  46.   // poslední proměnná je hodnoty
  47.   // analogového vstupu 0
  48.   // viz DrawValue(....) níže
  49.  
  50.   DrawValue(20, 250, analogRead(0));
  51.  
  52.   // viz předchozí
  53.   DrawValue(40, 250, analogRead(1));
  54.  
  55.   // zjistí hodnoty z DHT11 na pinu 5
  56.   DHT11.read(5);
  57.   // uloží tyto hodnoty do proměnných
  58.   int teplota = DHT11.temperature;  
  59.   int vlhkost = DHT11.humidity;  
  60.  
  61.   // a zobrazí na řádku 60 a 80
  62.   DrawValue(60, 250, teplota);
  63.   DrawValue(80, 250, vlhkost);
  64.  
  65.   delay(1000); // čeka 1 sekundu
  66. }
  67.  
  68.  
  69. // samotná funkce DrawValue
  70. void DrawValue(int row, int redValue, int value){
  71. // DrawValue(řádek, hodnota pod kterou změní barvu, zobrazovaná hodnota)
  72.  
  73. // když je zobrazovaná hodnota menší než hodnota pod kterou změní barvu
  74. // nastav barvu na červenou, jinak bude barva černá
  75. if (value > redValue) color = ST7735_RED; else color = 0;
  76. // nakresli čtverec v nastavené barvě
  77. tft.fillRect(95,row - 1,20,10 ,color);
  78. // nastav kurzor na pozici
  79. tft.setCursor(96, row);
  80. // napiš hodnotu
  81. tft.print(value);  
  82. }