#ifndef SensorAinDef #define SensorAinDef 1 #include "utiles.h" class SensorAin: public DomoEspSensorReceiver { float val; bool negado; uint8_t pin; float dif; unsigned long t; unsigned long incre; public: virtual float getVal() { return val; } SensorAin(){} void set(uint8_t _pin, char* topic_id, bool _negado, float _dif) { t=0; incre=1000; dif=_dif; negado=_negado; pin=_pin; val=0; strcpy(topic, topic_id); } virtual void procesa(IMqttManager * man, int tiempo) { //mirar para configurar por interrupcion if((dif!=0 && MqttUtiles::pasa_incre(&t, incre)) || tiempo==2) { float val_act; if(negado) val_act =100.*((float)(1024- analogRead(pin)))/1024; else val_act =100.*((float)(analogRead(pin)))/1024; if(dif<=abs(val_act-val) || tiempo==2) { val=val_act; #ifdef DEBUG_PS Serial.print("Sensor Analog log "); Serial.println(val); #endif //loguea------------ dtostrf(val,3, 2, buffer_p); sprintf(buffer_t, "%s/get",topic); man->MqttSend(buffer_t, buffer_p); } } } }; #endif