Projekt testování kvality ovzduší M5Stack Core2

Dnes si uděláme projekt testování kvality ovzduší s M5Stack Core2 a M5Stack ENV Pro Unit (BME688)
Vývojová sada M5Stack Core2 ESP32 pro IoT

Vývojová sada M5Stack Core2 ESP32 pro IoT

Zobrazit produkt

Senzor teploty, vlhkosti, tlaku a plynu M5Stack (BME688)

Senzor teploty, vlhkosti, tlaku a plynu M5Stack (BME688)

Zobrazit produkt

 

M5Stack Core2

M5Core2 je vylepšené druhé generace základní zařízení v sérii vývojových sad M5Stack IoT. Disponuje MCU ESP32 D0WDQ6-V3 s dvoujádrovými procesory, Wi-Fi, 16MB Flash, 8MB PSRAM a 2,0palcovou kapacitní dotykovou obrazovkou. Obsahuje rozhraní USB Type-C, baterii 390mAh spravovanou čipem AXP192 a další komponenty jako vestavěný RTC modul, vibrační motor, slot pro TF kartu, digitální audio rozhraní I2S a programovatelné kapacitní tlačítka. Můžeme dobře využít obrazovku core2 pro zobrazení.

Profesionální jednotka ENV

ENV Pro Unit je environmentální senzor, který využívá senzorové řešení BME688 a podporuje měření různých environmentálních parametrů, jako jsou těkavé organické sloučeniny (VOC), kvalita vnitřního ovzduší (IAQ), teplota, vlhkost a atmosférický tlak. Vyznačuje se kompaktní velikostí, širokým provozním rozsahem, jednoduchým komunikačním rozhraním (I2C), vynikajícím výkonem a nízkou spotřebou energie, což jej činí vhodným pro meteorologické stanice, monitorování vnitřního prostředí a aplikace detekce kvality ovzduší.

Projekt

Připojit

Tato část je velmi jednoduchá. Core 2 a ENV Pro Unit oba používají rozhraní Grove a oba používají Grove PORT A. Je to port rozhraní I2C. Potřebujeme jen Grove kabel.

      

Kód

// 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); 
}


✔ Společnostnoha!

 

Výsledek

Fungovalo to dobře a mohl jsem aktualizovat data do našeho Home Assistant.
Měření plynu je měření v miliohmech. V našem testu byla hodnota vyšší než 20 000, takže kvalita vzduchu bude dobrá, naopak je horší.
    

Zanechte komentář

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *

Přihlaste se k odběru našeho newsletteru

Získejte nejnovější informace o našich produktech a speciálních nabídkách.