calcolo IAQ per BME680

Buongiorno ragazzi,

sto cercando di usare un sensore Bme680 per il calcolo dello IAQ e mi sto basando su questo codice:

Esempio IAQ BME680

scaricando il codice sulla mia board, da seriale, tutti i parametri compreso lo IAQ, vengono stampati correttamente.

lo step successivo è stato quello di far stampare tutti questi valori su un oled per mezzo della libreria:

#include <U8g2lib.h>           // https://github.com/olikraus/u8g2 - v2.27.6

per cui se dall’esempio precedente identifico:

String CalculateIAQ(int score) {
  String IAQ_text = "air quality is ";
  score = (100 - score) * 5;
  if      (score >= 301)                  IAQ_text += "Hazardous";
  else if (score >= 201 && score <= 300 ) IAQ_text += "Very Unhealthy";
  else if (score >= 176 && score <= 200 ) IAQ_text += "Unhealthy";
  else if (score >= 151 && score <= 175 ) IAQ_text += "Unhealthy for Sensitive Groups";
  else if (score >=  51 && score <= 150 ) IAQ_text += "Moderate";
  else if (score >=  00 && score <=  50 ) IAQ_text += "Good";
  Serial.print("IAQ Score = " + String(score) + ", ");
  return IAQ_text;
}

e poi faccio:

  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_6x10_tf);  // imposto font
  u8g2.setCursor (1, 37);
  u8g2.print("IAQ: ");
  u8g2.println(String (IAQ_text));
  u8g2.sendBuffer();

l’oled stampa solo IAQ:

C’è qualcosa che non capisco. Potete aiutarmi?

Grazie

La libreria per i schermi OLED non supporta i dati tipo String, dovresti convertirli in un tipo char come puoi veder nell’esempio :

String riga = “Temperatura : " + String(temperature/100.0,1) + " C”;
int len = riga.length() + 1;
char char_array[len];
riga.toCharArray(char_array, len);
u8g2.drawStr(0,10,char_array);

**>ftensi: **essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo