Nuevo Sensor pulsador y coonfiguraciones
parent
999fb67a6a
commit
6ff35c587d
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -68,17 +68,18 @@
|
|||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<PublicIncludeDirectories>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt</PublicIncludeDirectories>
|
||||
<PublicIncludeDirectories>
|
||||
</PublicIncludeDirectories>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<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:\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)</AdditionalIncludeDirectories>
|
||||
<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)</AdditionalIncludeDirectories>
|
||||
<ForcedIncludeFiles>$(ProjectDir)__vm\.DomoEsp_v02.vsarduino.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
|
||||
<IgnoreStandardIncludePath>true</IgnoreStandardIncludePath>
|
||||
<PreprocessorDefinitions>__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)</PreprocessorDefinitions>
|
||||
<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)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 ...
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#define _VSARDUINO_H_
|
||||
#define __ESP8266_esp8266__
|
||||
#define __ESP8266_ESP8266__
|
||||
#define _VMDEBUG 1
|
||||
#define __ets__
|
||||
#define ICACHE_FLASH
|
||||
#define _GNU_SOURCE
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue