kennyho-rass

natepnik s uv5

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