M5Stack Core2 Luftkvalitetstestningsprojekt

I dag laver vi et luftkvalitetstestprojekt med M5Stack Core2 og M5Stack ENV Pro-enhed (BME688)
M5Stack Core2 ESP32 IoT udviklingssæt

M5Stack Core2 ESP32 IoT udviklingssæt

Se produkt

M5Stack Temperatur-, Fugtigheds-, Tryk- og Gassensor (BME688)

M5Stack Temperatur-, Fugtigheds-, Tryk- og Gassensor (BME688)

Se produkt

 

M5Stack Core2

M5Core2 er den opgraderede anden generation af kerneenheden i M5Stack IoT-udviklingskits-serien. Den har en ESP32 D0WDQ6-V3 MCU med dual-core processorer, Wi-Fi, 16MB Flash, 8MB PSRAM og en 2,0-tommer kapacitiv touchskærm. Den inkluderer en USB Type-C-interface, et 390mAh batteri styret af en AXP192-chip samt yderligere komponenter som en indbygget RTC-modul, vibrationsmotor, TF-kortslot, I2S digital lydinterface og programmerbare kapacitive knapper. Vi kan gøre god brug af Core2-skærmen til visning.

ENV Pro-enhed

ENV Pro-enheden er en miljøsensor, der bruger BME688-sensorløsningen og understøtter måling af forskellige miljøparametre såsom flygtige organiske forbindelser (VOC'er), indendørs luftkvalitet (IAQ), temperatur, fugtighed og atmosfærisk tryk. Den har kompakt størrelse, bredt driftsområde, enkel kommunikationsgrænseflade (I2C), fremragende ydeevne og lavt strømforbrug, hvilket gør den velegnet til vejrstationer, indendørs miljøovervågning og luftkvalitetsdetektering.

Projekt

Tilslut

Denne del er meget enkel. Core 2 og ENV Pro-enheden bruger begge Grove-interface, og de bruger begge Grove PORT A. Det er en I2C-interfaceport. Vi skal bare bruge et Grove-kabel.

      

Kode

// The code part is the hardest part of this project. Let's do it.
// First of all, let's find out which libraries we need:
#include 
#include 
#include 
#include  
// Because this sensor is a BME680 sensor, we can use Adafruit_BME680 and Adafruit_Sensor libraries for this part, and use a M5Core2 library, a Wire library.

// Next step, we need define the I2C pins:
#define SDA_PIN 32
#define SCL_PIN 33

// Next, creating the BME688 Object:
Adafruit_BME680 bme;

// Void Setup part:
void setup() {
  M5.begin();
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextColor(WHITE);
  M5.Lcd.setTextSize(2);
  M5.Lcd.setCursor(10, 10);
  M5.Lcd.println("ENV Pro Unit Data");

// Initialize I2C:
Wire.begin(SDA_PIN, SCL_PIN);

 // Initializing the BME688 Sensor (BME688 default address is 0x77):
  if (!bme.begin(0x77, &Wire)) { 
    M5.Lcd.println("Could not find BME688 sensor!");
    while (1);
  }

 // Setting BME688 parameters:
  bme.setTemperatureOversampling(BME680_OS_8X);
  bme.setHumidityOversampling(BME680_OS_2X);
  bme.setPressureOversampling(BME680_OS_4X);
  bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
  bme.setGasHeater(320, 150); 

// Void Loop part (Check if the BME688 sensor is available first):
void loop() {
  if (! bme.performReading()) {
    M5.Lcd.println("Failed to perform reading!");
    return;
  }

 // Display sensor data:
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setCursor(10, 30);
  M5.Lcd.printf("Temp: %.2f C", bme.temperature);
  M5.Lcd.setCursor(10, 60);
  M5.Lcd.printf("Humidity: %.2f %%", bme.humidity);
  M5.Lcd.setCursor(10, 90);
  M5.Lcd.printf("Pressure: %.2f hPa", bme.pressure / 100.0);
  M5.Lcd.setCursor(10, 120);
  M5.Lcd.printf("Gas: %d ohms", bme.gas_resistance);

// Update data every 11 seconds (Gas sensor standard scanning speed is 10.8s):
  delay(11000); 
}


✔ Copied!

 

Resultat

Det fungerede fint, og jeg kunne opdatere dataene til vores Home Assistant.
Gasaflæsningen er en milliohm-aflæsning. I vores test var værdien højere end 20.000, så luftkvaliteten vil være god, omvendt er den dårligere.
    

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

Sidebjælke

Seneste indlæg

Denne sektion indeholder i øjeblikket ikke noget indhold. Tilføj indhold til denne sektion ved hjælp af sidepanelet.

Tilmeld dig vores nyhedsbrev

Få de seneste oplysninger om vores produkter og særlige tilbud.