diff --git a/DomoEsp_v02/.vs/DomoEsp_v02/v16/.suo b/DomoEsp_v02/.vs/DomoEsp_v02/v16/.suo
index 9b905fb..0d6ecf8 100644
Binary files a/DomoEsp_v02/.vs/DomoEsp_v02/v16/.suo and b/DomoEsp_v02/.vs/DomoEsp_v02/v16/.suo differ
diff --git a/DomoEsp_v02/.vs/DomoEsp_v02/v16/Browse.VC.db b/DomoEsp_v02/.vs/DomoEsp_v02/v16/Browse.VC.db
index 98fc664..e280234 100644
Binary files a/DomoEsp_v02/.vs/DomoEsp_v02/v16/Browse.VC.db and b/DomoEsp_v02/.vs/DomoEsp_v02/v16/Browse.VC.db differ
diff --git a/DomoEsp_v02/.vs/DomoEsp_v02/v17/.suo b/DomoEsp_v02/.vs/DomoEsp_v02/v17/.suo
index 76d231c..eb79e99 100644
Binary files a/DomoEsp_v02/.vs/DomoEsp_v02/v17/.suo and b/DomoEsp_v02/.vs/DomoEsp_v02/v17/.suo differ
diff --git a/DomoEsp_v02/.vs/DomoEsp_v02/v17/Browse.VC.db b/DomoEsp_v02/.vs/DomoEsp_v02/v17/Browse.VC.db
index 84655c9..bfd9de9 100644
Binary files a/DomoEsp_v02/.vs/DomoEsp_v02/v17/Browse.VC.db and b/DomoEsp_v02/.vs/DomoEsp_v02/v17/Browse.VC.db differ
diff --git a/DomoEsp_v02/DomoEsp_v02.vcxproj b/DomoEsp_v02/DomoEsp_v02.vcxproj
index a032423..afce49c 100644
--- a/DomoEsp_v02/DomoEsp_v02.vcxproj
+++ b/DomoEsp_v02/DomoEsp_v02.vcxproj
@@ -68,17 +68,18 @@
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
+
+
Level3
Disabled
true
- $(ProjectDir)..\DomoEsp_v02;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\SPI;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266mDNS\src;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ArduinoOTA;C:\Program Files (x86)\Arduino\libraries\SimpleDHT-master;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\Wire;C:\Program Files (x86)\Arduino\libraries\Adafruit-BMP085-Library-master;C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src;C:\Users\Gerardo\Documents\Arduino\libraries\PubSubClient\src;C:\Users\Gerardo\Documents\Arduino\libraries\WakeOnLan\src;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\EEPROM;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\avr;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\libb64;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\spiffs;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\umm_malloc;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\variants\nodemcu;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\lwip2\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\libc\xtensa-lx106-elf\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\4.8.2;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\4.8.2\xtensa-lx106-elf;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\lib\gcc\xtensa-lx106-elf\4.8.2\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\include;%(AdditionalIncludeDirectories)
+ $(ProjectDir)..\DomoEsp_v02;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\SPI;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266mDNS\src;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ArduinoOTA;C:\Users\Gerardo\Documents\Arduino\libraries\SimpleDHT;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\Wire;C:\Users\Gerardo\Documents\Arduino\libraries\WakeOnLan\src;C:\Program Files (x86)\Arduino\libraries\Adafruit-BMP085-Library-master;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\avr;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\libb64;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\spiffs;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\umm_malloc;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\variants\nodemcu;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\lwip2\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\libc\xtensa-lx106-elf\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\4.8.2;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\4.8.2\xtensa-lx106-elf;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\lib\gcc\xtensa-lx106-elf\4.8.2\include;C:\Users\Gerardo\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\3.0.2\tools\sdk\include;%(AdditionalIncludeDirectories)
$(ProjectDir)__vm\.DomoEsp_v02.vsarduino.h;%(ForcedIncludeFiles)
true
- __ESP8266_esp8266__;__ESP8266_ESP8266__;__ets__;ICACHE_FLASH;_GNU_SOURCE;MMU_IRAM_SIZE=0x8000;MMU_ICACHE_SIZE=0x8000;NONOSDK22x_190703=1;F_CPU=80000000L;LWIP_OPEN_SRC;TCP_MSS=536;LWIP_FEATURES=1;LWIP_IPV6=0;ARDUINO=108016;ARDUINO_ESP8266_NODEMCU_ESP12E;ARDUINO_ARCH_ESP8266;LED_BUILTIN=2;FLASHMODE_DIO;ESP8266;__cplusplus=201103L;_VMICRO_INTELLISENSE;%(PreprocessorDefinitions)
+ __ESP8266_esp8266__;__ESP8266_ESP8266__;_VMDEBUG=1;__ets__;ICACHE_FLASH;_GNU_SOURCE;MMU_IRAM_SIZE=0x8000;MMU_ICACHE_SIZE=0x8000;NONOSDK22x_190703=1;F_CPU=80000000L;LWIP_OPEN_SRC;TCP_MSS=536;LWIP_FEATURES=1;LWIP_IPV6=0;ARDUINO=108016;ARDUINO_ESP8266_NODEMCU_ESP12E;ARDUINO_ARCH_ESP8266;LED_BUILTIN=2;FLASHMODE_DIO;ESP8266;__cplusplus=201103L;_VMICRO_INTELLISENSE;%(PreprocessorDefinitions)
true
diff --git a/DomoEsp_v02/MqttSensManager.cpp b/DomoEsp_v02/MqttSensManager.cpp
index a83755c..7e47d2a 100644
--- a/DomoEsp_v02/MqttSensManager.cpp
+++ b/DomoEsp_v02/MqttSensManager.cpp
@@ -124,8 +124,21 @@ void MqttSensManager::AddDout(int pin, char* topic, bool defautlValor)
sens.Add(&s);
pinMode(s.pin, OUTPUT);
digitalWrite(s.pin, defautlValor);
+ vars->Get(s.ivar)->val.i = defautlValor;
+}
+void MqttSensManager::AddDoutPulsador(int pin, char* topic, bool defautlValor, int seg)
+{
+ MqttSensor s;
+ s.tipo = (int)MqttSensor::SENS_DIGI_OUT_PULSANTE;
+ s.pin = pin;
+ s.ivar = vars->AddVar((byte)(MqttVar::IN_VAR | MqttVar::OUT_VAR | MqttVar::ACCION_VAR), topic);
+ s.ie.pul.t = seg * 1000;
+ s.ie.pul.vd = defautlValor;
+ sens.Add(&s);
+ pinMode(s.pin, OUTPUT);
+ digitalWrite(s.pin, defautlValor);
+ vars->Get(s.ivar)->val.i = defautlValor;
}
-
void MqttSensManager::AddBuzz(int pin, char* topic)
{
MqttSensor s;
@@ -334,6 +347,27 @@ void MqttSensManager::OnVarChange(int ivar)
digitalWrite( s->pin, v->val.i);
break;
}
+ case((int)MqttSensor::SENS_DIGI_OUT_PULSANTE):
+ {
+ if ((v->val.i>0) != s->ie.pul.vd)
+ {
+#ifdef DEBUG_PS
+ Serial.println("Sens::OnVarChangeSensor Dout Pulsante cambiado");
+#endif
+ if (s->flags & MqttSensor::FLAG_NEG)
+ digitalWrite(s->pin, (1 - v->val.i));
+ else
+ digitalWrite(s->pin, v->val.i);
+ delay(s->ie.pul.t);
+ v->val.i = 1 - v->val.i;
+ if (s->flags & MqttSensor::FLAG_NEG)
+ digitalWrite(s->pin, (1 - v->val.i));
+ else
+ digitalWrite(s->pin, v->val.i);
+ vars->OnChange(ivar, true);
+ }
+ break;
+ }
case((int)MqttSensor::SENS_BUZZ_OUT):
{
#ifdef DEBUG_PS
diff --git a/DomoEsp_v02/MqttSensManager.h b/DomoEsp_v02/MqttSensManager.h
index da3bcea..b2810f9 100644
--- a/DomoEsp_v02/MqttSensManager.h
+++ b/DomoEsp_v02/MqttSensManager.h
@@ -50,12 +50,17 @@ struct SensRetardado
unsigned long r;//retardo
byte val;//valor actual a cambiar
};
+struct InfoPulsante
+{
+ unsigned long t;//puntero a variable humedad
+ bool vd;//valor por defecto;
+};
union MqttInfEx//informacion extra segun sensor
{
DhtExt dht;
BmpExt bmp;
SensRetardado retard;
-
+ InfoPulsante pul;
//DinEx din;
};
class MqttSensor
@@ -70,8 +75,9 @@ class MqttSensor
SENS_ANALOG_IN,//sensor analogico in
SENS_DIGI_IN,//sensor digital in (algo con 2 estados)
SENS_DIGI_OUT,//sensor digital out
- SENS_DIGI_IN_PULSANTE,//pensado para pulsadores (Publicara un put)
+ SENS_DIGI_IN_PULSANTE,//pensado para pulsadores
SENS_BUZZ_OUT,//sensor digital out con buzzer conectado
+ SENS_DIGI_OUT_PULSANTE,//pensado para hacer efecto pulsador
//SENS_DIGI_IN_OUT//sensor doble de entrada y salida (dos pines que tienen que tener el mismo valor)
};
@@ -173,7 +179,10 @@ class MqttSensManager: public MqttOnVarChangeListenner
void AddDin(int pin, char* topic);//añade variable digital que se actualiza de manera instantanea (interruptores sensor presencia ..)
void AddDinAccion(int pin, char* topic);//añade variable que solo publica en el cambio (pulsadores, ...)
void AddDinRetardOff(int pin, int seg, char* topic);//añade variable con retardo al apagado (especial sensores de presencia)
- void AddDinRetardOn(int pin, int seg, char* topic);//añade variable con retardo al apagado (especial sensores de presencia)
+ void AddDinRetardOn(int pin, int seg, char* topic);//añade variable con retardo al apagado (especial sensores de presencia)
+
+ void AddDoutPulsador(int pin, char* topic, bool defautlValor, int seg);
+
//salida digital
void AddDout(int pin, char* topic, bool defautlValor);//variable que solo publica en el cambio (pulsadores, ...)
void AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ...
diff --git a/DomoEsp_v02/MqttVarManager.cpp b/DomoEsp_v02/MqttVarManager.cpp
index 7ae05af..153e311 100644
--- a/DomoEsp_v02/MqttVarManager.cpp
+++ b/DomoEsp_v02/MqttVarManager.cpp
@@ -345,10 +345,10 @@ int MqttVarManager::GetId(char* topic)
void MqttVarManager::OnChange(int ivar, bool publica)
{
- #ifdef DEBUG_PS
+ #ifdef DEBUG_PS
+ Serial.println("MqttVarManager::OnChange");
+ #endif
- Serial.println("MqttVarManager::OnChange");
- #endif
if(publica)
{
MqttVar* v=vars->Get(ivar);
diff --git a/DomoEsp_v02/__vm/.DomoEsp_v02.vsarduino.h b/DomoEsp_v02/__vm/.DomoEsp_v02.vsarduino.h
index 8a6c09d..a57aeee 100644
--- a/DomoEsp_v02/__vm/.DomoEsp_v02.vsarduino.h
+++ b/DomoEsp_v02/__vm/.DomoEsp_v02.vsarduino.h
@@ -15,6 +15,7 @@
#define _VSARDUINO_H_
#define __ESP8266_esp8266__
#define __ESP8266_ESP8266__
+#define _VMDEBUG 1
#define __ets__
#define ICACHE_FLASH
#define _GNU_SOURCE
diff --git a/DomoEsp_v02/__vm/Compile.vmps.xml b/DomoEsp_v02/__vm/Compile.vmps.xml
index 6653ba0..59515da 100644
--- a/DomoEsp_v02/__vm/Compile.vmps.xml
+++ b/DomoEsp_v02/__vm/Compile.vmps.xml
@@ -1,26 +1,26 @@
-
+
-
+
-
+
-
- 84 #if CON_WOL
-85 pwol=&WOL;
-86 #endif
-87 domoManager.inicia(pwol,plcd,&clienteMqtt,&EspClient,&ConfiguracionActual);
-88
-89 }
-90
--->91 void loop()
-92 {
-93 domoManager.loop();
-94 }
+
+ 82 #if CON_WOL
+83 pwol=&WOL;
+84 #endif
+85 domoManager.inicia(pwol,plcd,&clienteMqtt,&EspClient,&ConfiguracionActual);
+86
+87 }
+88
+-->89 void loop()
+90 {
+91 domoManager.loop();
+92 }
diff --git a/DomoEsp_v02/config_rf.h b/DomoEsp_v02/config_rf.h
index 908e180..28e1dd8 100644
--- a/DomoEsp_v02/config_rf.h
+++ b/DomoEsp_v02/config_rf.h
@@ -1,7 +1,7 @@
//parametros configurables*************************************************
#define DEBUG_PS 1//Descomentar para debug
-#define CON_LCD 1
-#define CON_WOL 1
+#define CON_LCD 0
+#define CON_WOL 0
//va por 16
class CocinapRUBDomoConfig: public DomoConfig
{
@@ -151,6 +151,77 @@ class ActDomoConfig: public DomoConfig
/* */
}
};
+class SalonHome: public DomoConfig
+{
+ public:
+ SalonHome()
+ {
+ velocidadPortSerie=115200;
+ strcpy(ssidWifi,"Idhun");//nombre wifi
+ strcpy(keyWifi,"Ardileorca1234.");//key wifi
+
+ strcpy(ideEsp,"Esp8266_SalomHome");//idenitificador del esp (sera único)
+ strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
+ portMQTT=1883;//puerto del servidor mqtt Broker
+
+ refresTimeVars=30;//tiempo de refresco en segundos de las variables
+ refresTimeSens=15;//tiempo de refresco en segundos de los sensores
+
+ //config lcd--------------------
+ lcd.colum=16;//columnas lcd
+ lcd.lines=2;//lineas
+ //pines lcd
+ lcd.rs=D5;
+ lcd.en=D6;//eneable
+ lcd.d0=D3;
+ lcd.d1=D2;
+ lcd.d2=D1;
+ lcd.d3=D0;
+
+ }
+ //configuracion de sensores, variables, lcd---------------------------------
+ virtual void ConfigGen(MqttSensManager* sens, MqttVarManager* vars, LcdMQTTViewer *lcd, MqttWOLManager* wol, MqttDesencadenadorManager *des)
+ {
+ //sensores--------------------------------------------------------
+ /*
+ sens->AddHDT22(int pin, char* topic);
+ //tempe y presion varometrica
+ sens->AddBMP180(int sda,int scl, char* topic);
+ //entradas digitales
+ sens->AddDin(int pin, char* topic);//añade variable digital que se actualiza de manera instantanea (interruptores sensor presencia ..)
+ sens->AddDinAccion(int pin, char* topic);//añade variable que solo publica en el cambio (pulsadores, ...)
+ //salida digital
+ sens->AddDout(int pin, char* topic, bool defautlValor);//variable que solo publica en el cambio (pulsadores, ...)
+ Sensor analogico
+ sens->AddAnalogIn(int pin, char* topic, bool ValNegado);//nivel de luz, nivel de lluvia ...
+
+ sens->AddBuzz(int pin, char* topic);
+ */
+ sens->AddDoutPulsador(D4, "casa/Salon/ordeTele", true, 1);
+ sens->AddDoutPulsador(D2, "casa/Salon/router", true, 1);
+
+
+ sens->AddDout(D3,"casa/Salon/auxiliar", true);
+ int aux=2;
+ sens->AddDout(D1,"casa/Salon/equipoMusica", true);
+ int equipo=3;
+ sens->AddDin( D5,"casa/Salon/pulEquipoM");
+ int pequipo=4;
+ sens->AddDin( D6, "casa/Salon/pulAux");
+ int paux=5;
+ //variables----------------------------------------------------
+
+ //desencadenaores----------
+ char st[64];
+ //Efecto Interruptor-----
+
+ sprintf(st,"{%d}>0 -> !{%d} ",pequipo,equipo);//terminar en espacios
+ des->AddDes(st);
+ sprintf(st,"{%d}>0 -> !{%d} ",paux,aux);//terminar en espacios
+ des->AddDes(st);
+
+ }
+};
class PulSalonPruebConfig: public DomoConfig
{
public:
@@ -532,4 +603,4 @@ class ExteriorDomoConfig: public DomoConfig
//configuracion que se usara--------------------------
-DespachoDomoConfig ConfiguracionActual;
+SalonHome ConfiguracionActual;