M5Stack Core2 -ilmanlaadun testaushanke

Tehdään tänään ilmanlaadun mittausprojekti M5Stack Core2:n ja M5Stack ENV Pro Unitin (BME688) avulla
M5Stack Core2 ESP32 IoT -kehityssarja

M5Stack Core2 ESP32 IoT -kehityssarja

Näytä tuote

M5Stackin lämpötila-, kosteus-, paine- ja kaasuanturi (BME688)

M5Stackin lämpötila-, kosteus-, paine- ja kaasuanturi (BME688)

Näytä tuote

 

M5Stack Core2

M5Core2 on M5Stackin IoT-kehityssarjojen toinen, päivitetty ydinlaite. Siinä on kaksiytiminen ESP32 D0WDQ6-V3 -mikro-ohjain, Wi-Fi, 16 Mt:n Flash-muisti, 8 Mt:n PSRAM-muisti ja 2,0 tuuman kapasitiivinen kosketusnäyttö. Laitteessa on USB Type-C -liitäntä, AXP192-sirun hallinnoima 390 mAh:n akku sekä muita komponentteja, kuten sisäänrakennettu RTC-moduuli, värinämoottori, TF-korttipaikka, I2S-digitaaliääniliitäntä ja ohjelmoitavat kapasitiiviset painikkeet. Voimme hyödyntää Core2:n näyttöä tehokkaasti tietojen esittämiseen.

ENV Pro Unit

ENV Pro Unit on BME688-anturiratkaisua käyttävä ympäristöanturi, joka tukee erilaisten ympäristöparametrien, kuten haihtuvien orgaanisten yhdisteiden (VOC), sisäilman laadun (IAQ), lämpötilan, kosteuden ja ilmanpaineen mittaamista. Sen kompakti koko, laaja käyttöalue, yksinkertainen tiedonsiirtoliitäntä (I2C), erinomainen suorituskyky ja pieni virrankulutus tekevät siitä sopivan sääasemiin, sisäympäristön valvontaan ja ilmanlaadun mittaussovelluksiin.

Projekti

Yhdistä

Tämä osa on hyvin yksinkertainen. Core 2 ja ENV Pro Unit käyttävät molemmat Grove-liitäntää ja Grove PORT A -porttia. Kyseessä on I2C-liitäntäportti. Tarvitsemme vain Grove-kaapelin.

      

Koodi

// Koodiosuus on tämän projektin haastavin osa. Tehdään se.
// Ensimmäiseksi selvitetään, mitä kirjastoja tarvitsemme:
#include 
#include 
#include 
#include  
// Koska tämä anturi on BME680-anturi, voimme käyttää tässä osiossa Adafruit_BME680- ja Adafruit_Sensor-kirjastoja sekä M5Core2- ja Wire-kirjastoa.

// Seuraavaksi on määritettävä I2C-nastat:
#define SDA_PIN 32
#define SCL_PIN 33

// Luo seuraavaksi BME688-objekti:
Adafruit_BME680 bme;

// Setup-osio:
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 -yksikön tiedot");

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

 // BME688-anturin alustaminen (BME688:n oletusosoite on 0x77):
  if (!bme.begin(0x77, &Wire)) { 
    M5.Lcd.println("BME688-anturia ei löytynyt!");
    while (1);
  }

 // BME688-parametrien määrittäminen:
  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); 

// Loop-osio (tarkista ensin, onko BME688-anturi käytettävissä):
void loop() {
  if (! bme.performReading()) {
    M5.Lcd.println("Lukeman saaminen epäonnistui!");
    return;
  }

 // Näytä anturin tiedot:
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setCursor(10, 30);
  M5.Lcd.printf("Lämpötila: %.2f C", bme.temperature);
  M5.Lcd.setCursor(10, 60);
  M5.Lcd.printf("Kosteus: %.2f %%", bme.humidity);
  M5.Lcd.setCursor(10, 90);
  M5.Lcd.printf("Paine: %.2f hPa", bme.pressure / 100.0);
  M5.Lcd.setCursor(10, 120);
  M5.Lcd.printf("Kaasu: %d ohmia", bme.gas_resistance);

// Päivitä tiedot 11 sekunnin välein (kaasuanturin vakiolukunopeus on 10,8 s):
  delay(11000); 
}


✔ Copied!

 

Tulos

Se toimi hyvin, ja pystyin päivittämään tiedot Home Assistantiimme.
Kaasulukema on milliohmilukema. Testissämme arvo oli yli 20 000, joten ilmanlaadun pitäisi olla hyvä, mutta päinvastoin se on huonompi.
    

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Register for our newsletter

Get the latest information about our products and special offers.

Website Feedback

Help us improve OpenELAB

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