#ifndef SENSOR_SDS018_H #define SENSOR_SDS018_H #include "sensordata.h" #include #include class Sensor_SDS018 { private: HomieNode *sensorNode; //reference to HomieNode struct sensordata data_pm25; struct sensordata data_pm10; int pin_rx; int pin_tx; bool init_ok; #define BAUD_RATE_SDS018 9600 SoftwareSerial *sds018_swSerial; bool sds018_dustok; unsigned long lastread_sds018=0; //to save last read time for both readings void loop_pm25(); void loop_pm10(); void readSDS018(); public: Sensor_SDS018(int prx, int ptx); void init(); void setSettings_pm10(float minchange, unsigned long senddelaymax, unsigned long readdelay); void setSettings_pm25(float minchange, unsigned long senddelaymax, unsigned long readdelay); void advertise(HomieNode& p_sensorNode); void sensorloop(); bool mhz19calibrationHandler(const HomieRange& range, const String& value); }; #endif