This is an old revision of the document!
This is an example of the dht reading and displaying on screen.
There is no necessary prequisits, the wire library will be pulled in automatically.
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_LiquidCrystal.h>
#include <Adafruit_BMP280.h>
/* BMP280 */
Adafruit_BMP280 bmp; // I2C
#define SDA_PIN 17
#define SCL_PIN 16
#define LCD_RS 48
#define LCD_ENABLE 47
#define LCD_D4 34
#define LCD_D5 33
#define LCD_D6 26
#define LCD_D7 21
static Adafruit_LiquidCrystal lcd(LCD_RS, LCD_ENABLE, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
void setup() {
Serial.begin(152000);
// Initialize I2C on custom pins
Wire.begin(SDA_PIN, SCL_PIN);
// Initialize LCD
if (!lcd.begin(16, 2)) {
Serial.println("Could not init LCD");
while (1);
}
Serial.println("LCD ready.");
lcd.print("IOT-OPEN");
// Initialize BMP280 with custom I2C (Wire) instance
if (!bmp.begin(0x76)) {
Serial.println(F("Could not find a valid BMP280 sensor, check wiring or address!"));
while (1) delay(10);
}
bmp.setSampling(Adafruit_BMP280::MODE_FORCED,
Adafruit_BMP280::SAMPLING_X2,
Adafruit_BMP280::SAMPLING_X16,
Adafruit_BMP280::FILTER_X16,
Adafruit_BMP280::STANDBY_MS_500);
}
void loop() {
float h = bmp.readPressure();
float t = bmp.readTemperature();
if (bmp.takeForcedMeasurement()) {
Serial.print(F("Temperature = "));
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print(F("Pressure = "));
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print(F("Approx altitude = "));
Serial.print(bmp.readAltitude(1013.25)); // Adjust to local forecast
Serial.println(" m");
}
lcd.setCursor(0, 0);
lcd.print("P: ");
lcd.print(h / 100.0); // Convert Pa to hPa
lcd.print("hPa");
lcd.setCursor(0, 1);
lcd.print("T: ");
lcd.print(t);
lcd.print("C");
delay(1000);
}
}