Advertisement
Astranome

Meteo_OregonV3_BMP180_1602_4bit

Sep 4th, 2020
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. #include <Oregon_NR.h>
  2.  
  3. //#include <LiquidCrystal_I2C.h>
  4. //#include <Wire.h>
  5. #include <LiquidCrystalRus.h>
  6. #include <Adafruit_BMP085.h>
  7. // подключаем стандартную библиотеку LiquidCrystal
  8. //#include <LiquidCrystal.h>
  9.  
  10. // инициализируем объект-экран, передаём использованные
  11. // для подключения контакты на Arduino в порядке:
  12. // RS, E, DB4, DB5, DB6, DB7
  13. LiquidCrystalRus lcdm(12, 11, 9, 8, 7, 6);
  14.  
  15. #define UNO
  16. //#define pirPin 4
  17. #define ledPin 13
  18. Adafruit_BMP085 bmp;
  19. //Oregon_NR oregon(2, 0, 13); // Для Arduino UNO/Nano - датчик на выводе D2, Прерывание 0, Светодиод приёма на вывод 13
  20. Oregon_NR oregon(2, 0); // Если светодиод не нужен
  21. //LiquidCrystal_I2C lcd(0x27,16,2);
  22. long a=0;
  23.  
  24. void setup() {
  25. Serial.begin(115200);
  26. //вкючение прослушивания радиоканала
  27. //pinMode(pirPin, INPUT);
  28. pinMode(ledPin,OUTPUT);
  29. // устанавливаем размер (количество столбцов и строк) экрана
  30. lcdm.begin(16, 2);
  31. // печатаем первую строку
  32. lcdm.print("Еле включил !@#$%^&* :-)");
  33. if (!bmp.begin()) {
  34. Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  35. while (1) {}
  36. }
  37.  
  38. oregon.start();
  39. oregon.receiver_dump = 0; //true - Включает "осциллограф" - отображение данных, полученных с приёмника
  40.  
  41. //Если не распознаются последние байты принятого пакета можно попробовать подстроить частоту захвата данных
  42. oregon.timing_correction = 0; // коррекция частоты завхвата данных. Обычно достаоточно подобрать значение от -5 до 5
  43. oregon.decode_method = 3; //или использовать метод 3 для декодирования
  44.  
  45. // lcd.init();
  46. // lcd.backlight();
  47. }
  48. void loop() {
  49. //*
  50. //oregon.capture(0);
  51. if (a > 1000000) {
  52. Serial.print("Temperature = ");
  53. Serial.print(bmp.readTemperature());
  54. Serial.println(" *C");
  55. /*
  56. lcdm.setCursor(0, 0);
  57. lcdm.print("Температура ");
  58. lcdm.print(bmp.readTemperature());
  59. lcdm.println(" *C");
  60. */
  61. // печатаем вторую строку
  62. Serial.print("Pressure = ");
  63. Serial.print(bmp.readPressure());
  64. Serial.println(" Pa");
  65. lcdm.setCursor(10, 0);
  66. //lcdm.print("Давление ");
  67. int p = (bmp.readPressure()* 0.0075);
  68. lcdm.print(p);
  69. lcdm.println("ммРт");
  70. // delay(500);
  71. a=0;
  72. }
  73. a=a+1;
  74. // */
  75. //////////////////////////////////////////////////////////////////////
  76. //Захват пакета,//////////////////////////////////////////////
  77.  
  78. oregon.capture(0);
  79. //Захваченные данные годны до следующего вызова capture
  80. //ОБработка полученного пакета//////////////////////////////////////////////
  81. if (oregon.captured) {
  82. //Вывод информации в Serial
  83. Serial.print ((float) millis() / 1000, 1); //Время
  84. Serial.print ("s\t\t");
  85. //Версия протокола
  86. if (oregon.ver == 2) Serial.print(" ");
  87. if (oregon.ver == 3) Serial.print("3 ");
  88.  
  89. if ((oregon.sens_type == THGR810) && oregon.crc_c){
  90.  
  91. //if ((oregon.sens_type == THGN132 || (oregon.sens_type & 0x0FFF) == RTGN318 || oregon.sens_type == THGR810 || oregon.sens_type == THN132) && oregon.crc_c){
  92. lcdm.setCursor(0,0);
  93. /*
  94. if (oregon.sens_tmp > 0 && oregon.sens_tmp < 10) lcd.print("T: ");
  95. if (oregon.sens_tmp < 0 && oregon.sens_tmp >-10) lcd.print("T: ");
  96. if (oregon.sens_tmp <= -10) lcd.print("T:");
  97. if (oregon.sens_tmp >= 10) lcd.print("T: ");
  98. */
  99. lcdm.print(oregon.sens_tmp, 1);
  100. lcdm.print((char)223);
  101. lcdm.print("C ");
  102.  
  103. //lcd.print("BAT:");
  104. // if (oregon.sens_battery) lcd.print("F"); else lcd.print("e");
  105. Serial.print("HUM: ");
  106. Serial.print(oregon.sens_hmdty, 0);
  107. Serial.print("%");
  108. //lcd.setCursor(0,1);
  109. // lcd.print("HUM: ");
  110. lcdm.print(oregon.sens_hmdty, 0);
  111. lcdm.print("% ");
  112.  
  113. }
  114. if ((oregon.sens_type == WGR800) && oregon.crc_c){
  115. Serial.print("\t");
  116. //float wnddata;
  117. Serial.print(" TYPE: ");
  118. Serial.print("WGR800");
  119. Serial.print(" AVG WS: ");
  120. Serial.print(oregon.sens_avg_ws, 1);
  121. lcdm.setCursor(0,1);
  122. lcdm.print("Вет: ");
  123. lcdm.print(oregon.sens_avg_ws, 1);
  124. /*
  125. Serial.print("m/s MAX WS: ");
  126. Serial.print(oregon.sens_max_ws, 1);
  127. Serial.print("m/s WDIR: "); //N = 0, E = 4, S = 8, W = 12
  128. Serial.print(oregon.sens_wdir);
  129. */
  130. lcdm.print("m/s D:"); //N = 0, E = 4, S = 8, W = 12
  131. lcdm.print(oregon.sens_wdir);
  132. /*
  133. Serial.print(" BAT: ");
  134. if (oregon.sens_battery) Serial.print("F "); else Serial.print("e ");
  135. Serial.print("ID: ");
  136. Serial.print(oregon.sens_id, HEX);
  137. */
  138. }
  139. }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement