Hi altprog,
habe im Forum danach gesucht und folgende funktionierende Lösung gefunden:
Auszüge aus meinem Programm (geht sicher noch eleganter, es macht aber was es soll- SDS 1 Minute vor auslesen Messwert einschalten und Ser Schnittstelle initialisieren!Wichtig! – Messwert auslesen und SDS wieder ausschalten):
--------------begin teil 1 –
// PM2.5
const char PM25SENSOR_ID[] PROGMEM = “5xxxxxxxxxxx…”;
int SDSdelay = 0; //Zähler
int uber = 20; //Anzahl Minuten für Aktivierung Feinstaubsensor –>const… besser
WiFiSSLClient client;
--------------ende teill 1
--------------beginn-teil 2
//-----PM-----//
#ifdef SDS011_CONNECTED
uint8_t attempt = 0;
float pm10, pm25;
SDSdelay++;
Serial.print(SDSdelay);
Serial.print (" ");
//if (SDSdelay<uber-1) senseBoxIO.powerUART(true); //bzw (false)??
if (SDSdelay == uber - 1) {
Serial.println(“SDS SensornON”);
senseBoxIO.powerUART(true);
delay(3000);
SDS_UART_PORT.begin(9600);
}
else {
senseBoxIO.powerUART(false);
Serial.println(“SDS SensornOFF”);
}
if (SDSdelay >= uber) {
Serial.println(“SDS-Sensor read”);
while (attempt < 10) {
bool error = SDS.read(&pm25, &pm10);
if (!error) {
addMeasurement(PM10SENSOR_ID, pm10);
addMeasurement(PM25SENSOR_ID, pm25);
break;
}
attempt++;
}
senseBoxIO.powerUART(false);
Serial.println("SDS SensornOFF");
SDSdelay = 0;
}
#endif
DEBUG(F(“Submit values”));
submitValues();
-----------ende teil 2—
…viel Erfolg!