kennyho-rass

natepnik

Oct 13th, 2019
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <Wire.h>
  3. #include <SPI.h>
  4. #include <Adafruit_GFX.h>      //Libraries for the OLED and BMP280
  5. #include <Adafruit_SSD1306.h>
  6. #include <Adafruit_Sensor.h>
  7. #include <Adafruit_BMP280.h>
  8. #include <DS1307RTC.h>
  9. #include <TimeLib.h>
  10.  
  11.  
  12. #define SCREEN_WIDTH 128 // OLED display width, in pixels
  13. #define SCREEN_HEIGHT 32 // OLED display height, in pixels
  14. #define OLED_RESET    -1 // Reset pin # (or -1 if sharing Arduino reset pin)
  15. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  16.  
  17. #define BMP280_ADRESA (0x76)  // nastavení adresy senzoru
  18. Adafruit_BMP280 bmp;     // inicializace senzoru BME z knihovny
  19.  
  20. const int MPU_addr = 0x68;  // inicializace proměnné pro určení adresy senzoru
  21. int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;  // inicializace proměnných, do kterých se uloží data
  22.  
  23. const int button1 = A0;
  24. const int button2 = A1;
  25. const int button3 = A2;
  26. const int button4 = A3;
  27.  
  28. const int led1 =  2;
  29. const int led2 =  3;
  30. const int led3 =  4;
  31. const int led4 =  13;
  32. const int led5 =  5;
  33.  
  34. int  x = 0;
  35.  
  36. void setup() {
  37.   pinMode(button1, INPUT_PULLUP);  // nastaví pin kde je tlačítko jako vstup
  38.   pinMode(button2, INPUT_PULLUP);
  39.   pinMode(button3, INPUT_PULLUP);
  40.   pinMode(button4, INPUT_PULLUP);
  41.  
  42.   pinMode(led1, OUTPUT); // nastaví vystup u Led1 na výstup
  43.   pinMode(led2, OUTPUT); // nastaví vystup u Led2 na výstup
  44.   pinMode(led3, OUTPUT); // nastaví vystup u Led3 na výstup
  45.   pinMode(led4, OUTPUT); // nastaví vystup u Led3 na výstup
  46.   pinMode(led5, OUTPUT); // nastaví vystup u Led3 na výstup
  47.  
  48.   Serial.begin(9600);  // komunikace po sériové lince rychlostí 115200 baud
  49.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Start the OLED,adress 0x3C 128x32
  50.  
  51.   Wire.begin();
  52.   display.clearDisplay();
  53.   display.setTextColor(WHITE);
  54.   display.setTextSize(1);
  55.   display.print("Kenny-Tech");     //Show the name, you can remove it or replace it
  56.   display.setCursor(32, 12);
  57.   display.setTextSize(2);
  58.   display.println("NATEPNIK");
  59.   display.display();
  60.   delay(2000);
  61.  
  62.  
  63. }
  64. uint8_t button = 0;
  65.  
  66. void loop()
  67. {
  68.   // tady si vyctes stavy tlacitek a nastavis promennou
  69.   if (digitalRead(button1) == false)
  70.     button = 1;
  71.   else if (digitalRead(button2) == false)
  72.     button = 2;
  73.   else if (digitalRead(button3) == false)
  74.     button = 3;
  75.   else if (digitalRead(button4) == false)
  76.     button = 4;
  77.  
  78.   //else // poku chces aby se neustale provadela cast kterou jsi navolil tlacitkem, tak vynech tenhle else
  79.   // button = 0;
  80.  
  81.   switch (button)
  82.   {
  83.     case 1:
  84.       {                        // provede se ukol pro prvni tlacitko
  85.         digitalWrite(led1, HIGH);
  86.         digitalWrite(led2, LOW);
  87.         digitalWrite(led3, LOW);
  88.         digitalWrite(led4, LOW);
  89.         digitalWrite(led5, LOW);
  90.                
  91. tmElements_t tm;
  92.         display.clearDisplay();
  93.         RTC.read(tm);
  94.         display.setTextSize(2);
  95.         display.setTextColor(WHITE);
  96.         display.setCursor(0, 0);
  97.         display.print(tm.Hour);
  98.         display.print(":");
  99.         display.print(tm.Minute);
  100.         display.print(":");
  101.         display.print(tm.Second);
  102.         display.setCursor(0,17);
  103.         display.setTextSize(2);
  104.         display.print(tm.Day);
  105.         display.print(':');
  106.         display.print(tm.Month);
  107.         display.print(':');
  108.         display.print(tmYearToCalendar(tm.Year));
  109.         display.display();
  110.         digitalWrite(led1, LOW);
  111.         delay(1000);
  112.         break;
  113.       }
  114.     case 2:
  115.       {                        // provede se ukol pro druhe tlacitko
  116.         digitalWrite(led1, LOW);
  117.         digitalWrite(led2, HIGH);
  118.         digitalWrite(led3, LOW);
  119.         digitalWrite(led4, LOW);
  120.         digitalWrite(led5, LOW);
  121.        
  122.         bmp.begin(0x76);            //Start the bmp
  123.         display.clearDisplay();
  124.                  
  125.         float T = bmp.readTemperature();           //Read temperature in °C
  126.         float P = bmp.readPressure() / 100;      //Read Pressure in Pa and conversion to hPa
  127.         float A = bmp.readAltitude(1019.25);      //Calthe Altitude, the "1019.66"  in (hPa)level at day in your region
  128.        
  129.         display.setCursor(0,0);                  //Oled display,
  130.         display.setTextColor(WHITE);
  131.         display.setTextSize(2);        
  132.         display.print("Temp");
  133.        
  134.         display.setCursor(0,18);
  135.         display.print(T,1);
  136.         display.setCursor(50,17);
  137.         display.setTextSize(1);
  138.         display.print("C");
  139.        
  140.         display.setTextSize(1);
  141.         display.setCursor(65,0);
  142.         display.print("Tlak");
  143.         display.setCursor(65,10);
  144.         display.print(P);
  145.         display.setCursor(110,10);
  146.         display.print("hPa");
  147.  
  148.         display.setCursor(65,25);
  149.         display.print("Alt");
  150.         display.setCursor(90,25);
  151.         display.print(A,0);
  152.         display.setCursor(110,25);
  153.         display.print("m");
  154.        
  155.         display.display();
  156.         //digitalWrite(led2, LOW);
  157.         delay (200);
  158.         break;
  159.       }
  160.  
  161.     case 3:
  162.       {
  163.         // provede se ukol pro teti tlacitko
  164.         digitalWrite(led1, LOW);
  165.         digitalWrite(led2, LOW);
  166.         digitalWrite(led3, HIGH);
  167.         digitalWrite(led4, LOW);
  168.         digitalWrite(led5, LOW);
  169.        
  170.        
  171.         display.clearDisplay();
  172.  
  173.         const int MPU_addr = 0x68;  // inicializace proměnné pro určení adresy senzoru
  174.         int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;  // inicializace proměnných, do kterých se uloží data
  175.  
  176.         Wire.beginTransmission(MPU_addr);      // zapnutí přenosu
  177.         Wire.write(0x3B);                   // zápis do registru ACCEL_XOUT_H
  178.         Wire.endTransmission(false);
  179.         Wire.requestFrom(MPU_addr, 14, true);        // vyzvednutí dat z 14 registrů
  180.         AcX = Wire.read() << 8 | Wire.read();
  181.         AcY = Wire.read() << 8 | Wire.read();
  182.         AcZ = Wire.read() << 8 | Wire.read();
  183.         Tmp = Wire.read() << 8 | Wire.read();
  184.         GyX = Wire.read() << 8 | Wire.read();
  185.         GyY = Wire.read() << 8 | Wire.read();
  186.         GyZ = Wire.read() << 8 | Wire.read();
  187.  
  188.         display.setCursor(0, 0);                  //Oled display, just playing with text size and cursor to get the display you want
  189.         display.setTextColor(WHITE);
  190.         display.setTextSize(1);
  191.         display.print(AcX);
  192.         display.print(":");
  193.         display.print(AcY);
  194.         display.print(":");
  195.         display.print(AcZ);
  196.         display.print(":");
  197.         display.setTextSize(1);
  198.         display.setCursor(0, 18);
  199.         display.print(Tmp);
  200.         display.print(":");
  201.         display.print(GyX);
  202.         display.print(":");
  203.         display.print(GyY);
  204.         display.print(":");
  205.         display.print(GyZ);
  206.         display.print(":");
  207.  
  208.         display.display();
  209.         digitalWrite(led3, LOW);
  210.         delay(500);
  211.         break;
  212.       }
  213.     case 4:
  214.       {                        // provede se ukol pro druhe tlacitko
  215.         digitalWrite(led1, LOW);
  216.         digitalWrite(led2, LOW);
  217.         digitalWrite(led3, LOW);
  218.         digitalWrite(led4, HIGH);
  219.         digitalWrite(led5, HIGH);
  220.        
  221.        
  222.         display.clearDisplay();
  223.        
  224.         display.setCursor(0,0);                  //Oled display,
  225.         display.setTextColor(WHITE);
  226.         display.setTextSize(3);        
  227.         display.print("Svetlo");
  228.  /*      
  229.         display.setCursor(0,18);
  230.         display.print(T,1);
  231.         display.setCursor(50,17);
  232.         display.setTextSize(1);
  233.         display.print("C");
  234.        
  235.         display.setTextSize(1);
  236.         display.setCursor(65,0);
  237.         display.print("Tlak");
  238.         display.setCursor(65,10);
  239.         display.print(P);
  240.         display.setCursor(110,10);
  241.         display.print("hPa");
  242.  
  243.         display.setCursor(65,25);
  244.         display.print("Alt");
  245.         display.setCursor(90,25);
  246.         display.print(A,0);
  247.         display.setCursor(110,25);
  248.         display.print("m");
  249.    */    
  250.         display.display();
  251.         digitalWrite(led4, LOW);
  252.         delay (200);
  253.         break;
  254.       }
  255.  
  256.  
  257.  
  258.  
  259.      
  260.     default:
  261.       {
  262.         // provede ukol pro ostatni stavy (napr. StisknuteTlacitko == 0)
  263.         digitalWrite(led1, HIGH);
  264.         digitalWrite(led2, HIGH);
  265.         digitalWrite(led3, HIGH);
  266.         digitalWrite(led4, HIGH);
  267.         digitalWrite(led5, HIGH);
  268.         delay(100);
  269.         digitalWrite(led1, LOW);
  270.         digitalWrite(led2, LOW);
  271.         digitalWrite(led3, LOW);
  272.         digitalWrite(led4, LOW);
  273.         digitalWrite(led5, LOW);        
  274.         delay(100);
  275.         break;
  276.       }
  277.   }
  278. }
Advertisement
Add Comment
Please, Sign In to add comment