La tua classe ora Printable:
#ifndef SENSORI_H_
#define SENSORI_H_
#include <Arduino.h>
#include <Printable.h>
class Sensori : public Printable
{ //sensori da leggere
float light;
float temperature;
float altitude;
//int humidity; int pressure; bool rain;
static int cont;
public:
Sensori();
float getTemperature() { return temperature; }
float getAltitude() { return altitude; }
float getLight() { return light; }
int getCont() { return cont; }
virtual size_t printTo(Print& p) const;
};
#endif /* SENSORI_H_ */
int Sensori::cont = 0;
Sensori::Sensori()
{ temperature=20+cont;
light=12+cont;
//humidity=3+cont; pressure=1000+cont; rain= (cont%2)==0 ? true : false;
altitude=120+cont;
cont++;
}
size_t Sensori::printTo(Print& p) const
{ size_t n = 0;
byte nc;
char buf[40],tmpt[5],tmpa[5],tmpl[5];
dtostrf(altitude , 2, 1, tmpa);
dtostrf(temperature, 2, 1, tmpt);
dtostrf(light , 2, 1, tmpl);
nc=snprintf(buf,sizeof(buf),"temp=%s lum=%s alt=%s",tmpt,tmpl,tmpa);
for (int i =0; i < nc; i++)
{ n += p.print(buf[i]);
}
return n;
}
void setup()
{ delay(1000);
Serial.begin(9600); //stabilisco una connessione con il pc
Serial.println("Inizializzazione");
}
void loop()
{ Sensori obj;
Serial.println(obj);
delay(3000);
}