collect temperature, humidify and pressure
[GroveSensor] / GrooveSensor.ino
1 #include <Arduino.h>
2 #include <U8x8lib.h>
3
4 #include "DHT.h"
5
6 #include <Adafruit_BMP280.h>
7
8 U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
9
10 // U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);   // OLEDs without Reset of the Display
11  
12
13 #define DHTPIN 3     // what pin we're connected to
14 #define DHTTYPE DHT11   // DHT 11 
15
16 DHT dht(DHTPIN, DHTTYPE);
17
18
19 Adafruit_BMP280 bmp; // I2C
20  
21  
22 void setup(void) {
23   //u8x8.setBusClock(100000);  // If you breakout other modules, please enable this line
24   u8x8.begin();
25   u8x8.setPowerSave(0);
26   u8x8.setFlipMode(1);
27
28   Serial.begin(115200);
29
30   dht.begin();
31
32   if (!bmp.begin()) {
33     Serial.println(F("Could not find a valid BMP280 sensor!"));
34   }
35
36   /* Default settings from datasheet. */
37   bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,     /* Operating Mode. */
38                   Adafruit_BMP280::SAMPLING_X2,     /* Temp. oversampling */
39                   Adafruit_BMP280::SAMPLING_X16,    /* Pressure oversampling */
40                   Adafruit_BMP280::FILTER_X16,      /* Filtering. */
41                   Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
42
43 }
44  
45 void loop(void) {
46
47   float temp, humi;
48   temp = dht.readTemperature();
49   humi = dht.readHumidity();
50
51   u8x8.setFont(u8x8_font_chroma48medium8_r);
52   u8x8.setCursor(0, 0);
53   //u8x8.print("Temp:");
54   u8x8.print(temp);
55   u8x8.print("C ");
56
57   temp = bmp.readTemperature();
58   u8x8.print( temp );
59
60   u8x8.print(" ");
61
62   u8x8.setCursor(0,9);
63   u8x8.print("Humidity:");
64   u8x8.print(humi);
65   u8x8.print("%");
66
67   float pressure;
68   pressure = bmp.readPressure();
69
70   u8x8.setCursor(0,18);
71   u8x8.print( pressure );
72
73   u8x8.refreshDisplay();
74   delay(200);
75
76 }
77