Hello, I have a MKR IoT Carrier Rev2 last June 2023, and I uploaded a sketch for humidity, temperature, light, and weather station. The problem is the IoT Carrier Rev2, the buttons take time to respond when changing each option programmed in each one. The BME688 sensor (humidity, pressure and temperature) is giving very wrong readings, if it is outside with a temperature of 18°C it shows 32.50°C, the humidity outside 71% it shows 24.65%. The motherboard gives me too many errors.
Ok, thanks for letting us know.
Please report back when you've resolved your problem.
For the buttons, check Calibrating the MKR IoT Carrier capacitive buttons & Debugging the MKR IoT Carrier capacitive buttons
For the "BME688 sensor", install the latest version of the Carrier and bosch BME688 library. Then try using different versions of these libraries with the IDE examples for the IoT carrier to see which version works well for you.
For the buttons, I installed the test code on the board and the buttons work fine but when I run a program as such they stop working correctly. This is my program to wish eject:
#include <Arduino_MKRIoTCarrier.h>
#include "thingProperties.h"
#include "visuals.h"
MKRIoTCarrier carrier;
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
//Get Cloud Info/errors , 0 (only errors) up to 4
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
//Wait to get cloud connection to init the carrier
while (ArduinoCloud.connected() != 1) {
ArduinoCloud.update();
delay(500);
}
delay(500);
CARRIER_CASE = false;
carrier.begin();
carrier.display.setRotation(0);
carrier.display.fillScreen(0x0000);
carrier.display.setTextColor(0xFFFF);
carrier.display.setTextSize(2);
carrier.display.drawBitmap(70, 30, epd_bitmap_estacion, 110, 130, 0x00979D);
carrier.display.setCursor(80, 160);
carrier.display.print("Weather");
carrier.display.setCursor(80, 180);
carrier.display.print("Station");
delay(2000);
carrier.display.fillScreen(0x0000);
carrier.display.setTextColor(0xFFFF);
carrier.display.setTextSize(2);
carrier.display.setCursor(70, 80);
carrier.display.print("Connected");
carrier.display.setCursor(50, 110);
carrier.display.print("To IoT Cloud");
delay(2000);
}
void loop() {
ArduinoCloud.update();
carrier.Buttons.update();
while(!carrier.Light.colorAvailable()) {
delay(5);
}
int none;
carrier.Light.readColor(none, none, none, light);
temperature = carrier.Env.readTemperature()-17;
humidity = carrier.Env.readHumidity()+58;
pressure = carrier.Pressure.readPressure()+27;
if (carrier.Buttons.onTouchUp(TOUCH0)) {
carrier.display.fillScreen(0x0000);
carrier.display.setTextColor(0xFFFF);
carrier.display.setCursor(25, 60);
carrier.display.setTextSize(3);
carrier.display.print("Temperature");
float temperature = carrier.Env.readTemperature()-17; //storing temperature value in a variable
carrier.display.drawBitmap(80, 80, temperature_logo, 100, 100, 0xDAC9); //0xDA5B4A); //draw a thermometer on the MKR IoT carrier's display
carrier.display.setCursor(60, 180);
carrier.display.print(temperature); // display the temperature on the screen
carrier.display.print(" C");
}
if (carrier.Buttons.onTouchUp(TOUCH1)) {
carrier.display.fillScreen(0x0000);
carrier.display.setTextColor(0xFFFF);
carrier.display.setCursor(54, 40);
carrier.display.setTextSize(3);
carrier.display.print("Humidity");
carrier.display.drawBitmap(70, 70, humidity_logo, 100, 100, 0x0D14); //0x0CA1A6); //draw a humidity figure on the MKR IoT carrier's display
float humidity = carrier.Env.readHumidity()+58; //storing humidity value in a variable
carrier.display.setCursor(60, 180);
carrier.display.print(humidity); // display the humidity on the screen
carrier.display.print(" %");
}
if (carrier.Buttons.onTouchUp(TOUCH2)) {
carrier.display.fillScreen(0x0000);
carrier.display.setTextColor(0xFFFF);
carrier.display.setCursor(54, 40);
carrier.display.setTextSize(3);
carrier.display.print("Pressure");
carrier.display.drawBitmap(70, 60, pressure_logo, 100, 100, 0xF1C40F); //0xF1C40F); //draw a pressure figure on the MKR IoT carrier's display
float press = carrier.Pressure.readPressure()+27; //storing pressure value in a variable
carrier.display.setCursor(40, 160);
carrier.display.println(press); // display the pressure on the screen
carrier.display.setCursor(160, 160);
carrier.display.print("KPa");
}
if (carrier.Buttons.onTouchUp(TOUCH3)) {
carrier.display.fillScreen(0x0000);
carrier.display.setTextColor(0xFFFF);
carrier.display.setCursor(80, 40);
carrier.display.setTextSize(3);
carrier.display.print("Ligth");
carrier.display.drawBitmap(70, 70, epd_bitmap_Ligth, 100, 100, 0xF621);
carrier.display.setCursor(107, 180);
carrier.display.print(light);
}
if (carrier.Buttons.onTouchUp(TOUCH4)) {
carrier.display.fillScreen(0x0000);
}
I have the same problem and with "AirQuality" too
Same problems with MKR IoT Carrier Rev2, received the kit in October 2023.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.