M5Stack Core2
M5Core2 on päivitetty toinen sukupolvi M5Stack IoT -kehityspakkasarjan ydinyksiköstä. Siinä on ESP32 D0WDQ6-V3 MCU, jossa on kaksiytiminen prosessori, Wi-Fi, 16 Mt Flash-muistia, 8 Mt PSRAM-muistia ja 2,0 tuuman kapasitiivinen kosketusnäyttö. Siinä on USB Type-C -liitäntä, 390 mAh akku, jota hallinnoi AXP192-piiri, sekä lisäkomponentteja, kuten sisäänrakennettu RTC-moduuli, värinämoottori, TF-korttipaikka, I2S-digitaaliääniliitäntä ja ohjelmoitavat kapasitiiviset painikkeet. Voimme hyödyntää core2-näyttöä hyvin näyttöön.
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 ne molemmat käyttävät Grove PORT A:ta. Se on I2C-liitäntäportti. Tarvitsemme vain Grove-kaapelin.

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