Advertisement
AnatolyZadvernyak

Untitled

Nov 13th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. /*
  2. * работа с BMP-280
  3. * Инициализация датчика и получение мгновенных и средних за период значений
  4. */
  5.  
  6. #include "my_BMP280.h"
  7.  
  8. #define BME280_ADDRESS 0x76
  9. Adafruit_BMP280 bmp;
  10.  
  11. // Для поиска средних показателей за период
  12. float temperatureIndoorSumPeriod = 0;
  13. int temperatureIndoorCountPeriod = 0;
  14. float pressureSumPeriod = 0;
  15. int pressureCountPeriod = 0;
  16.  
  17. //********** CHANGE PIN FUNCTION TO GPIO **********
  18. void changePinFunc(void)
  19. {
  20. //GPIO 1 (TX) swap the pin to a GPIO.
  21. pinMode(1, FUNCTION_3);
  22. //GPIO 3 (RX) swap the pin to a GPIO.
  23. pinMode(3, FUNCTION_3);
  24.  
  25. Wire.pins(1, 3);
  26. Wire.begin(1, 3);
  27. delay(1000);
  28. }
  29. bool begin_BMP280(void)
  30. {
  31. changePinFunc();
  32. return bmp.begin(BME280_ADDRESS);
  33. }
  34. float getTemperatureIndoorRealTime(void)
  35. {
  36. float t = bmp.readTemperature();
  37. temperatureIndoorSumPeriod = temperatureIndoorSumPeriod + t;
  38. temperatureIndoorCountPeriod = temperatureIndoorCountPeriod + 1;
  39. return t;
  40. }
  41. float getPressureRealTime(void)
  42. {
  43. float p = bmp.readPressure() / 133.32239F;
  44. pressureSumPeriod = pressureSumPeriod + p;
  45. pressureCountPeriod = pressureCountPeriod + 1;
  46. return p;
  47. }
  48. float getTemperatureIndoorAvgPeriod(void)
  49. {
  50. float t = temperatureIndoorSumPeriod / temperatureIndoorCountPeriod;
  51. temperatureIndoorSumPeriod = 0;
  52. temperatureIndoorCountPeriod = 0;
  53. return t;
  54. }
  55. float getPressureAvgPeriod(void)
  56. {
  57. float p = pressureSumPeriod/pressureCountPeriod ;
  58. pressureCountPeriod = 0;
  59. pressureSumPeriod = 0;
  60. return p;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement