#include #include #include "rgb_lcd.h" HM330X sensor; rgb_lcd lcd; uint8_t buf[30]; void setup() { Serial.begin(9600); Wire.begin(); // LCD initialisatie lcd.begin(16, 2); lcd.setRGB(0, 255, 0); lcd.print("Opwarmen..."); // Sensor initialisatie if (sensor.init()) { Serial.println("HM330X init faal!"); lcd.clear(); lcd.print("Sensor Fout!"); while (1); } delay(2000); // Wacht op stabilisatie } void loop() { // Lees de sensor uit (we proberen 29 bytes, dit lost vaak leesfouten op) if (sensor.read_sensor_value(buf, 29)) { Serial.println("Leesfout!"); lcd.setCursor(0, 0); lcd.print("Leesfout! "); } else { // Berekening van Atmospheric waarden (PM2.5 index 6/7, PM10 index 8/9) uint16_t pm25_val = (uint16_t)buf[6] << 8 | buf[7]; uint16_t pm100_val = (uint16_t)buf[8] << 8 | buf[9]; // Print naar Serial Monitor voor controle Serial.print("PM2.5: "); Serial.print(pm25_val); Serial.print(" | PM10: "); Serial.println(pm100_val); // Update LCD scherm lcd.clear(); lcd.setCursor(0, 0); lcd.print("PM2.5: "); lcd.print(pm25_val); lcd.print(" ug/m3"); lcd.setCursor(0, 1); lcd.print("PM10 : "); lcd.print(pm100_val); lcd.print(" ug/m3"); } delay(5000); // Wacht 5 seconden tussen de metingen }