Problemi nell'utilizzo di stringhe in librerie esterne

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);
}