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

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

