#ifndef SensorBMP180Def #define SensorBMP180Def 1 #include "defines.h" #include #include //sensor virtual class SensorBMP180: public DomoEspSensorReceiver { float t, p, a;//temperarura, presion, altura int sda,scl; Adafruit_BMP085 bmp; public: SensorBMP180() { t=p=a=0; topic[0]=0; } void set(char* topic_id, int _sda, int _scl) { sda=_sda; scl=_scl; strcpy(topic, topic_id); } virtual void inicia() { //inicia------------------ Wire.begin( sda,scl); int i=0; while(!bmp.begin(), i<300) { i++; delay(10); } if(i>=300) { #ifdef DEBUG_PS Serial.println("---------------------------------LogBMP Error al inicializar bmp----------------------------------"); #endif } } virtual float getVal() { return (float)p; } virtual void procesa(IMqttManager * man, int tiempo) { if(tiempo==2) { #ifdef DEBUG_PS Serial.println("LogBMP "); #endif t= bmp.readTemperature(); p = bmp.readPressure(); a=bmp.readAltitude(); //loguea------------ //char buffer_t[MAXTOPICVAR]; //char buffer_p[MAXTOPICVAR]; sprintf(buffer_p, "%d", t); sprintf(buffer_t, "%s/t/get",topic); man->MqttSend(buffer_t, buffer_p); sprintf(buffer_p, "%d", p); sprintf(buffer_t, "%s/p/get",topic); man->MqttSend(buffer_t, buffer_p); sprintf(buffer_p, "%d", a); sprintf(buffer_t, "%s/a/get",topic); man->MqttSend(buffer_t, buffer_p); } } }; #endif