Navigation

    M5Stack Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. m1cr0lab
    3. Best
    • Continue chat with m1cr0lab
    • Start new chat with m1cr0lab
    • Flag Profile
    • Profile
    • Following
    • Followers
    • Blocks
    • Topics
    • Posts
    • Best
    • Groups

    Best posts made by m1cr0lab

    • RE: M5Paper power management

      Hello again @felmue,

      I came across this Adafruit video today, and I thought maybe you'd be interested?

      https://youtu.be/m0XAT8V37-g?t=412

      (The interesting part is between 6'52" and 13'05")

      => Power Profiler Kit II

      Cheers
      Steph

      posted in Units
      m1cr0lab
    • RE: Incorrect measurements with ENV III HAT on M5StickC+

      Well... I'm soooooo sorry... I thought I had an ENV III, but it's actually an ENV II... 😬

      ENV II even has two temperature sensors, since instead of the QMP6988, it has a BMP280, which is a pressure and temperature sensor. It is, therefore, possible to perform 2 simultaneous temperature measurements!

      So, this time things work better:

      ENV II with M55StickC+

      We still notice a difference in the temperature measurements. The SHT30 seems to get better results (which is probably why they added it).

      Here, it's still 1°C above the real temperature. In the meantime, I turned on the air-conditioning, so maybe the deviation is reduced because of the ventilation? On the other hand, we can see that the temperature measured by the BMP280 is 1°C higher than the one measured by the SHT30.

      But this time, I get a non-zero pressure measurement. 🙂

      Here is the new version of my code for those who are interested:

      #include <M5Unified.h>
      #include <UNIT_ENV.h>
      #include <Adafruit_BMP280.h>
      
      constexpr uint32_t SLEEP_DURATION_US = 30 * 1000 * 1000; // 30 sec
      
      SHT3X sht30;
      Adafruit_BMP280 bmp;
      // QMP6988 qmp6988; // only for ENV III
      
      void setup() {
      
          M5.begin();
          M5.Display.setRotation(3);
          M5.Display.setFont(&fonts::Font2);
      
          Wire.begin(0, 26);
          bmp.begin(0x76);
          bmp.setSampling(
              Adafruit_BMP280::MODE_NORMAL,
              Adafruit_BMP280::SAMPLING_X16,
              Adafruit_BMP280::SAMPLING_X16,
              Adafruit_BMP280::FILTER_X16,
              Adafruit_BMP280::STANDBY_MS_500
          );
      
          // qmp6988.init(); // only for ENV III
          
      }
      
      void displayMeasurement(
          const uint8_t x1,
          const uint8_t x2,
          const uint8_t x3,
          const uint8_t y,
          const char*   sensor,
          const char*   data,
          const float_t value
      ) {
      
          M5.Display.drawString(sensor,  x1, y);
          M5.Display.drawString(data,    x2, y);
          M5.Display.drawFloat(value, 2, x3, y);
      
      }
      
      void loop() {
      
          static float_t temperature_1, temperature_2, humidity, pressure;
      
          uint8_t fail = sht30.get();
      
          temperature_1 = bmp.readTemperature();
          temperature_2 = fail ? 0 : sht30.cTemp;
          humidity      = fail ? 0 : sht30.humidity;
          pressure      = bmp.readPressure();
          
          // only for ENV III
          // pressure = qmp6988.calcPressure();
          // qmp6988.setpPowermode(QMP6988_SLEEP_MODE);
      
          displayMeasurement(10, 70, 100, 10, "BMP280", "T1", temperature_1);
          displayMeasurement(10, 70, 100, 30, "SHT30",  "T2", temperature_2);
          displayMeasurement(10, 70, 100, 50, "SHT30",  "H",  humidity);
          displayMeasurement(10, 70, 100, 70, "BMP280", "P",  pressure);
      
          delay(2000);
          
          M5.Power.deepSleep(SLEEP_DURATION_US);
      
      }
      

      Sorry for my confusion between ENV II and ENV III. But maybe finally the questions raised here will be useful to some readers...

      posted in Arduino
      m1cr0lab