m5paper_i2c_bmp280_reader-9.ino
Demonstrates I2C communication with an external sensor via M5Paper's Groove ports and displaying environmental measurements.
Requires Adafruit_BMP280 and Wire libraries. M5Paper uses standard I2C bus (GPIO 22/21). Sensor must be powered at 3.3V. E-Ink display is refreshed periodically.
m5paper_i2c_bmp280_reader-9.ino
#include <M5Paper.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; // Instance du capteur I2C
void setup() {
M5.begin(true, true, false); // Active I2C
M5.Display.init();
M5.Display.setRotation(1);
if (!bmp.begin(0x76)) {
M5.Display.drawString("BMP280 Non Trouve", 10, 10);
while(1);
}
M5.Display.drawString("BMP280 OK", 10, 10);
M5.Display.update();
}
void loop() {
float temp = bmp.readTemperature();
float pressure = bmp.readPressure() / 100.0F; // hPa
float altitude = bmp.readAltitude(1013.25);
M5.Display.fillScreen(WHITE);
M5.Display.setTextSize(2);
M5.Display.drawString("Temp: " + String(temp, 2) + " C", 10, 20);
M5.Display.drawString("Press: " + String(pressure, 2) + " hPa", 10, 60);
M5.Display.drawString("Alt: " + String(altitude, 2) + " m", 10, 100);
M5.Display.update();
delay(2000);
}