M5Stack Core2-luchtkwaliteitstestproject

Vandaag maken we een luchtkwaliteitstestproject met de M5Stack Core2 en de M5Stack ENV Pro Unit (BME688)
M5Stack Core2 ESP32 IoT-ontwikkelkit

M5Stack Core2 ESP32 IoT-ontwikkelkit

Product bekijken

M5Stack-temperatuur-, luchtvochtigheids-, druk- en gassensor (BME688)

M5Stack-temperatuur-, luchtvochtigheids-, druk- en gassensor (BME688)

Product bekijken

 

M5Stack Core2

M5Core2 is het verbeterde kernapparaat van de tweede generatie in de M5Stack-serie IoT-ontwikkelkits. Het beschikt over een ESP32 D0WDQ6-V3 MCU met dualcoreprocessors, wifi, 16 MB Flash, 8 MB PSRAM en een capacitief touchscreen van 2,0 inch. Het bevat een USB Type-C-interface, een batterij van 390 mAh die wordt beheerd door een AXP192-chip, en aanvullende componenten zoals een ingebouwde RTC-module, vibratiemotor, TF-kaartsleuf, I2S-digitale audio-interface en programmeerbare capacitieve knoppen. We kunnen het scherm van de Core2 goed gebruiken voor de weergave.

ENV Pro Unit

De ENV Pro Unit is een omgevingssensor die gebruikmaakt van de BME688-sensoroplossing en de meting ondersteunt van verschillende omgevingsparameters, zoals vluchtige organische stoffen (VOS), binnenluchtkwaliteit (IAQ), temperatuur, luchtvochtigheid en atmosferische druk. Dankzij het compacte formaat, het brede werkingsbereik, de eenvoudige communicatie-interface (I2C), uitstekende prestaties en het lage energieverbruik is deze sensor geschikt voor weerstations, monitoring van binnenomgevingen en toepassingen voor luchtkwaliteitsdetectie.

Project

Verbinden

Dit deel is heel eenvoudig. De Core 2 en de ENV Pro Unit gebruiken beide een Grove-interface en gebruiken allebei Grove-poort A. Dit is een I2C-interfacepoort. We hebben alleen een Grove-kabel nodig.

      

Code

// Het codegedeelte is het lastigste onderdeel van dit project. Laten we eraan beginnen.
// Laten we allereerst uitzoeken welke bibliotheken we nodig hebben:
#include 
#include 
#include 
#include  
// Omdat deze sensor een BME680-sensor is, kunnen we hiervoor de bibliotheken Adafruit_BME680 en Adafruit_Sensor gebruiken, samen met de bibliotheken M5Core2 en Wire.

// Vervolgens moeten we de I2C-pinnen definiëren:
#define SDA_PIN 32
#define SCL_PIN 33

// Vervolgens maken we het BME688-object aan:
Adafruit_BME680 bme;

// Onderdeel van de void setup:
void setup() {
  M5.begin();
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextColor(WHITE);
  M5.Lcd.setTextSize(2);
  M5.Lcd.setCursor(10, 10);
  M5.Lcd.println("Gegevens van de ENV Pro-eenheid");

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

 // BME688-sensor initialiseren (het standaardadres van de BME688 is 0x77):
  if (!bme.begin(0x77, &Wire)) { 
    M5.Lcd.println("BME688-sensor niet gevonden!");
    while (1);
  }

 // BME688-parameters instellen:
  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); 

// Onderdeel van de void loop (controleer eerst of de BME688-sensor beschikbaar is):
void loop() {
  if (! bme.performReading()) {
    M5.Lcd.println("Meten mislukt!");
    return;
  }

 // Sensorgegevens weergeven:
  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("Luchtvochtigheid: %.2f %%", bme.humidity);
  M5.Lcd.setCursor(10, 90);
  M5.Lcd.printf("Druk: %.2f hPa", bme.pressure / 100.0);
  M5.Lcd.setCursor(10, 120);
  M5.Lcd.printf("Gas: %d ohm", bme.gas_resistance);

// Gegevens elke 11 seconden bijwerken (de standaards scantijd van de gassensor is 10,8 s):
  delay(11000); 
}


✔ Covoet!

 

Resultaat

Het werkte prima en ik kon de gegevens naar onze Home Assistant bijwerken.
De gaswaarde wordt uitgedrukt in milliohm. In onze test was de waarde hoger dan 20.000, dus de luchtkwaliteit is goed; daaronder is deze slechter.
    

Plaats een opmerking

Je e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

Meld u aan voor onze nieuwsbrief

Ontvang de nieuwste informatie over onze producten en speciale aanbiedingen.

Website Feedback

Help us improve OpenELAB

Found a website issue or have an idea? Tell us what would make your experience better.