Issue with Env-iii hat.
-
Having an issue running the following code with the env-iii hat. Any help would be appreciated.
#include <M5StickCPlus.h> #include "M5_ENV.h" SHT3X sht30; QMP6988 qmp6988; float tmp = 0.0; float hum = 0.0; float pressure = 0.0; int status; void setup() { M5.begin(); //M5.Axp.ScreenBreath(8); M5.Lcd.setRotation(3); Wire.begin(0,26); qmp6988.init(); } void loop() { pressure = qmp6988.calcPressure(); status = sht30.get(); tmp = sht30.cTemp; hum = sht30.humidity; M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); M5.Lcd.printf("Temp: %2.1f\r\nHumi: %2.0f%%\r\nPressure:%2.0fPa\r\nStatus: %d", tmp, hum, pressure, status); delay(4000); }
04:49:47.756 -> [ 2][I][esp32-hal-i2c.c:75] i2cIni��): Initialising I2C Master: sda=32 scl=33 freq=100000
04:49:47.756 -> [ 5][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
04:49:47.796 -> M5StickCPlus initializing...[ 78][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
04:49:48.391 -> OK
04:49:48.391 -> E (645) ledc: freq_hz=0 duty_resolution=13
04:49:48.391 -> [ 649][E][esp32-hal-ledc.c:75] ledcSetup(): ledc setup failed!
04:49:48.391 -> [ 649][W][Wire.cpp:301] begin(): Bus already started in Master Mode.
04:49:48.391 -> [ 653][W][Wire.cpp:301] begin(): Bus already started in Master Mode.
04:49:49.506 -> [ 1760][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
04:49:50.512 -> [ 2761][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263 -
Hello @goochiecobbler
not sure, what is going wrong. But the Arduino Wire library has changed in the past and has broken some previously working examples.
There is a hint in the log about 'Bus already started in Master Mode' so you could try adding a
Wire.end();
before theWire.begin(0, 26);
and see if that helps.Thanks
Felix -
That did fix it, thank you so much. <3
I did notice that error, just still familiarizing myself with arduino and wasn't sure how to go about it.Working code follows for anyone wondering.
#include <M5StickCPlus.h> #include "M5_ENV.h" SHT3X sht30; QMP6988 qmp6988; float tmp = 0.0; float hum = 0.0; float pressure = 0.0; void setup() { M5.begin(); M5.Lcd.setRotation(3); Wire.end(); Wire.begin(0,26); qmp6988.init(); } void loop() { pressure = qmp6988.calcPressure(); sht30.get(); tmp = sht30.cTemp; hum = sht30.humidity; M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); M5.Lcd.printf("Temp: %2.1f\r\nHumi: %2.0f%%\r\nPressure:%2.0fPa\r\n", tmp, hum, pressure); delay(1000); }
-
Hello @goochiecobbler
I am happy to hear it worked. And thank you for reporting back and posting the working code.
Thanks
Felix