PowerTGS440

Untitled

Jan 13th, 2024 (edited)
1,616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.87 KB | Source Code | 0 0
  1. // █████████████████████████████████████████████████████
  2. //
  3. // ESP32/ESP8266 BlackBook by PowerTGS (2024)
  4. //
  5. // author : Tomasz Majcher
  6. // e-mail : [email protected]
  7. // phone  : +48 668 082121
  8. //
  9. // █████████████████████████████████████████████████████
  10. //
  11. // BME280 demo file
  12. //
  13. // source file      : sourcce/sensor/bme280/bme280.ino
  14. // device           : esp32/esp2866/arduino uno/arduino nano/arduono mega
  15. // code platform    : ArduinoIDE
  16. //
  17. // █████████████████████████████████████████████████████
  18. // M A K R O
  19. // █████████████████████████████████████████████████████
  20.                                    
  21. #define SEALEVELPRESSURE_HPA  (1013.25)
  22. #define SERIAL        true                         // SERIAL włączony
  23. #define SERIAL_SPEED  115200                       // prędkość SERIAL
  24. #define LOOP_DELAY    10000                        // opóźnienie pętli LOOP
  25.  
  26. // █████████████████████████████████████████████████████
  27. // B I B L I O T E K I
  28. // █████████████████████████████████████████████████████                                                                                                                                                                                                                                          
  29.  
  30. #include <Wire.h>
  31. #include <Adafruit_Sensor.h>
  32. #include <Adafruit_BME280.h>
  33.  
  34. // █████████████████████████████████████████████████████
  35. // O B I E K T   K L A S Y   B M E 2 8 0
  36. // █████████████████████████████████████████████████████
  37.  
  38. Adafruit_BME280 bme;
  39.  
  40. // █████████████████████████████████████████████████████
  41. // Z M I E N N E   G L O B A L N E
  42. // █████████████████████████████████████████████████████
  43.  
  44. float   temperatura = 0;
  45. float   cisnienie = 0;
  46. float   wilgotnosc = 0;
  47. float   wysokosc = 0;
  48.  
  49. // █████████████████████████████████████████████████████
  50. // D E K L A R A C J E   F U N K C J I
  51. // █████████████████████████████████████████████████████
  52.  
  53. void Read_BME_280_Sensor (float &temp, float &hum, float &humi, float &alti);
  54. void Show_BME_280_Sensor (float &temp, float &pres, float &humi, float &alti);
  55.  
  56. // █████████████████████████████████████████████████████
  57. // S E T U P
  58. // █████████████████████████████████████████████████████
  59.  
  60. void setup()
  61. {
  62.   #if SERIAL
  63.       Serial.begin(115200);
  64.       Serial.println();Serial.println();
  65.   #endif
  66.  
  67.   bool status = bme.begin(0x76);      // inicjalizacja czujnika BME230, jeśli podłączenie
  68.                                       // jest poprawne zwróci wartość TRUE, w przeciwnym
  69.                                       // wartość FALSE
  70.  
  71.   if (!status)
  72.   {    
  73.       #if SERIAL
  74.           Serial.println(F("Nie można odnaleźć czujnika BME280"));
  75.           Serial.println(F("Sprawdź podłączenia do urządzenia!"));
  76.       #endif
  77.      
  78.       while (1);
  79.   }
  80.   else
  81.   {
  82.       #if SERIAL
  83.           Serial.println(F("Pomyślnie zainicjalizowano czujnik BME280"));          
  84.       #endif
  85.   }  
  86. }
  87.  
  88. // █████████████████████████████████████████████████████
  89. // L O O P
  90. // █████████████████████████████████████████████████████
  91.  
  92. void loop()
  93. {
  94.     Read_BME_280_Sensor(temperatura, cisnienie, wilgotnosc, wysokosc);
  95.     Show_BME_280_Sensor(temperatura, cisnienie, wilgotnosc, wysokosc);
  96.  
  97.     delay(LOOP_DELAY);
  98. }
  99.  
  100. // █████████████████████████████████████████████████████
  101. // R E A D   B M E   2 8 0   S E N S O R
  102. // █████████████████████████████████████████████████████
  103. // funkcja odczytuje wartości z czujnika BME_280
  104. // zwraca wartości temperatury, cisnienia, wilgotnosci, wysokosci
  105. // na wejsciu otrzymuje adresy zmiennych globalnych
  106. // █████████████████████████████████████████████████████
  107.  
  108. void Read_BME_280_Sensor (float &temp, float &pres, float &humi, float &alti)
  109. {
  110.     #if SERIAL
  111.         Serial.println(F("[BME280_Sensor] Odczytuje wartosci z czujnika "));
  112.     #endif
  113.    
  114.     temp = bme.readTemperature();
  115.     pres = bme.readPressure() / 100.0F;
  116.     humi = bme.readHumidity();
  117.     alti = bme.readAltitude(SEALEVELPRESSURE_HPA);    
  118. }
  119.  
  120. // █████████████████████████████████████████████████████
  121. // S H O W   B M E   2 8 0   S E N S O R
  122. // █████████████████████████████████████████████████████
  123. // Funkcja wypisuje wartości z czujnika BME_280, na wejsciu otrzymuje adresy zmiennych
  124. // globalnych.
  125. // wartości są wyświetlane jeśli makro SERIAL jest true, w przypadku ustawienia false
  126. // cała zawartość pomiędzy #if SERIAL ... #endif jest pomijana przy kompilacji szkicu
  127. // i nie istnieje w pliku binarnym. To jeden ze sposobów na optymalizację kodu oraz
  128. // oszczędność pamięci RAM I PROGMEM
  129. // █████████████████████████████████████████████████████
  130.  
  131. void Show_BME_280_Sensor (float &temp, float &pres, float &humi, float &alti)
  132. {
  133.     #if SERIAL
  134.         Serial.print(F("[BME280_Sensor] Temperatura = "));
  135.         Serial.print(temp);
  136.         Serial.println(F(" *C"));  
  137.         Serial.print(F("[BME280_Sensor] Cisnienie = "));
  138.         Serial.print(pres);
  139.         Serial.println(F(" hPa"));
  140.         Serial.print(F("[BME280_Sensor] Średnia wysokość = "));
  141.         Serial.print(alti);
  142.         Serial.println(F(" m"));
  143.         Serial.print(F("[BME280_Sensor] Wilgotność = "));
  144.         Serial.print(humi);
  145.         Serial.println(F(" %"));
  146.         Serial.println();    
  147.     #endif
  148. }
  149.  
  150. // █████████████████████████████████████████████████████
  151. // END OF FILE : src/sensor/bme280.ino
  152. // █████████████████████████████████████████████████████
Advertisement
Add Comment
Please, Sign In to add comment