Advertisement
learnelectronics

Hiker's Friend

Sep 16th, 2017
703
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.04 KB | None | 0 0
  1. /*
  2.  * Hiker's Friend
  3.  *
  4.  * learnelectronics
  5.  * 16 Sept 2017
  6.  *
  7.  * www.youtube.com/c/learnelectronics
  8.  *
  9.  * Note: I2C pins on the D1 Mini are: SDA D@, SCK D1
  10.  */
  11.  
  12. #include <Wire.h>                                                             //I2C library
  13. #include <Adafruit_SSD1306.h>                                                 //OLED driver
  14. #include <Adafruit_Sensor.h>                                                  //Sensor library
  15. #include <Adafruit_BMP280.h>                                                  //BMP280 driver
  16.  
  17.  
  18.  
  19.  
  20.  
  21. Adafruit_SSD1306 display(LED_BUILTIN);                                        //create instance of SSD1306 called display
  22. Adafruit_BMP280 bme;                                                          //create instance of BMP280 called bme
  23.  
  24.  
  25.  
  26. void setup()   {                
  27.  
  28.   Serial.begin(9600);                                                         //serial begin for debugging
  29.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);                                  //start OLED @ hex addy 0X3C
  30.   display.display();                                                          //show Adafruit logo
  31.   delay(2000);                                                                //wait 2 sec
  32.   display.clearDisplay();                                                     //clear display & buffer
  33.  
  34.   if (!bme.begin()) {                                                         //if bme does not start show error
  35.     Serial.println("Could not find a valid BMP280 sensor, check wiring!");
  36.     while (1);
  37.   }
  38.  
  39. }
  40.  
  41.  
  42. void loop() {
  43.  
  44.   float temp = ((bme.readTemperature()*1.8)+32);                              //get temp and convert from C to F
  45.   float pres = (bme.readPressure()*0.0002953);                                //get pressure and convert from Pa to inHg
  46.   float alti = (bme.readAltitude(1013.25)*3.28084);                           //get altitude and convert from M to feet
  47.  
  48.   display.clearDisplay();                                                     //clear display & buffer
  49.   display.setTextSize(1);                                                     //set text size to 1
  50.   display.setTextColor(WHITE);                                                //set color to white
  51.   display.setCursor(0,0);                                                     //start in upper left
  52.   display.print("Temp:     ");                                                //print heading to buffer
  53.   display.print(temp,2);                                                      //print value to buffer w/ 2 dec places
  54.   display.println("F");                                                       //print units to buffer and drop down 1 line
  55.  
  56.   display.print("Pressure: ");
  57.   display.print(pres,2);
  58.   display.println("in");
  59.  
  60.   display.print("Altitude: ");
  61.   display.print(alti,2);
  62.   display.println("Ft");
  63.  
  64.   display.display();                                                          //show the buffer
  65.   delay(2000);                                                                //wait 2 seconds
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement