parent
78d3cb851a
commit
7ea3debd00
|
|
@ -55,9 +55,9 @@ class DomoConfig
|
|||
|
||||
|
||||
|
||||
char ssidWifi[24];
|
||||
char ssidWifi[32];
|
||||
char keyWifi[32];
|
||||
char ideEsp[16];//identificador unico por esp
|
||||
char ideEsp[32];//identificador unico por esp
|
||||
char hostMQTT[16];
|
||||
int portMQTT;
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ class DespachoDomoConfig: public DomoConfig
|
|||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
|
||||
strcpy(ideEsp,"Esp8266_011");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_despacho");//idenitificador del esp (sera único)
|
||||
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
|
||||
portMQTT=1883;//puerto del servidor mqtt Broker
|
||||
|
||||
|
|
@ -142,7 +142,7 @@ class CocinaDomoConfig: public DomoConfig
|
|||
velocidadPortSerie=115200;
|
||||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
strcpy(ideEsp,"Esp8266_010");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_cocina");//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
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ void DomoEspManager::inicia( LiquidCrystal *lcd, PubSubClient *mqttClient, WiFiC
|
|||
#ifdef DEBUG_PS
|
||||
Serial.println("Inicia Wifi");
|
||||
#endif
|
||||
wifi.inicia(espClient, conf->ssidWifi, conf->keyWifi);
|
||||
wifi.inicia(espClient, conf->ssidWifi, conf->keyWifi, conf->ideEsp);
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("Inicia Mqtt");
|
||||
#endif
|
||||
|
|
@ -43,10 +43,40 @@ void DomoEspManager::inicia( LiquidCrystal *lcd, PubSubClient *mqttClient, WiFiC
|
|||
Serial.println("Iniciado Desencadenadores");
|
||||
#endif
|
||||
des.inicia(&vars);
|
||||
|
||||
|
||||
|
||||
#if CON_LCD
|
||||
|
||||
lcdm.inicia(&vars, lcd, conf->lcd.colum, conf->lcd.lines);
|
||||
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("Iniciado LCD");
|
||||
#endif
|
||||
//busca buzzer
|
||||
int ibuzzer=-1;
|
||||
for(int i=0; i<sens.sens.n; i++)
|
||||
{
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("busca BUzz");
|
||||
#endif
|
||||
MqttSensor* s= sens.Get(i);
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("busca BUzz 2");
|
||||
#endif
|
||||
if(s->tipo == MqttSensor::SENS_BUZZ_OUT)
|
||||
{
|
||||
ibuzzer=s->ivar;
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("encuentrado buz");
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("inicia LCD");
|
||||
#endif
|
||||
lcdm.inicia(&vars, lcd, conf->lcd.colum, conf->lcd.lines, ibuzzer);
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("iniciado LCD");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class DomoConfig
|
|||
|
||||
char ssidWifi[24];
|
||||
char keyWifi[32];
|
||||
char ideEsp[16];//identificador unico por esp
|
||||
char ideEsp[32];//identificador unico por esp
|
||||
char hostMQTT[16];
|
||||
int portMQTT;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ Y PROBAR RF*/
|
|||
#include <SPI.h>
|
||||
#include <ESP8266WiFi.h>//este para esp8266
|
||||
//#include <WiFi.h>//este para esp32
|
||||
#include <ESP8266mDNS.h>
|
||||
#include <WiFiUdp.h>
|
||||
#include <ArduinoOTA.h>
|
||||
|
||||
#include <SimpleDHT.h>
|
||||
#include <Wire.h>
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ void LcdMQTTViewer::envia(char* txt, int pos, int line)
|
|||
}
|
||||
LcdMQTTViewer::LcdMQTTViewer()
|
||||
{
|
||||
ivarBuzzer=-1;
|
||||
topic[0]=0;
|
||||
maxpan = 0;
|
||||
tiempo = 0;
|
||||
|
|
@ -66,12 +67,14 @@ void LcdMQTTViewer::envia(int pan)
|
|||
}
|
||||
}
|
||||
|
||||
void LcdMQTTViewer::inicia(MqttVarManager *v, LiquidCrystal* lcdEx, int digi, int lines)
|
||||
void LcdMQTTViewer::inicia(MqttVarManager *v, LiquidCrystal* lcdEx, int digi, int lines,int ibuz)
|
||||
{
|
||||
ivarBuzzer=(byte)ibuz;
|
||||
vars=v;
|
||||
lcd =lcdEx;
|
||||
nchar = digi;
|
||||
lcd->begin(nchar, lines);
|
||||
nlineslcd=lines;
|
||||
for(int i=0; i<lines; i++)
|
||||
{
|
||||
envia("Iniciando",0,i);
|
||||
|
|
@ -112,6 +115,9 @@ int LcdMQTTViewer::OnMqtt(char* top, char* payload)
|
|||
int lin=0;
|
||||
int n=0;
|
||||
char buf[64];
|
||||
char imelod[12];
|
||||
int nmelod;
|
||||
bool melodia=false;
|
||||
while(payload[i])
|
||||
{
|
||||
if(payload[i]=='\n')
|
||||
|
|
@ -122,13 +128,41 @@ int LcdMQTTViewer::OnMqtt(char* top, char* payload)
|
|||
lin++;
|
||||
n=0;
|
||||
}
|
||||
else if(payload[i]=='$')
|
||||
{
|
||||
if(melodia)
|
||||
{
|
||||
|
||||
imelod[nmelod]=0;
|
||||
melodia=false;
|
||||
MQTTvalor v;
|
||||
v.i=atoi(imelod);
|
||||
if(ivarBuzzer>=0)
|
||||
vars->SetVal(ivarBuzzer,v);
|
||||
}
|
||||
else
|
||||
{
|
||||
nmelod=0;
|
||||
melodia=true;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
buf[n++]=payload[i++];
|
||||
if(melodia)
|
||||
imelod[nmelod++]=payload[i++];
|
||||
else
|
||||
buf[n++]=payload[i++];
|
||||
}
|
||||
}
|
||||
buf[n]=0;
|
||||
envia(buf,0,lin);
|
||||
lin++;
|
||||
for(; lin<nlineslcd; lin++)
|
||||
{
|
||||
envia("",0,lin);
|
||||
}
|
||||
|
||||
tiempo=millis();
|
||||
}
|
||||
void LcdMQTTViewer::suscribe(PubSubClient *client_qqtt)
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ public:
|
|||
int maxtInfo;
|
||||
int maxpan;
|
||||
int panActual = 0;
|
||||
byte nlineslcd;
|
||||
byte ivarBuzzer;
|
||||
unsigned long tiempo;
|
||||
unsigned long incre_t;
|
||||
char topic[MAXSTR];//topic de mqtt Alarma
|
||||
|
|
@ -38,7 +40,7 @@ public:
|
|||
|
||||
LcdMQTTViewer();
|
||||
|
||||
void inicia(MqttVarManager *vars, LiquidCrystal* lcdEx, int digi, int lines);
|
||||
void inicia(MqttVarManager *vars, LiquidCrystal* lcdEx, int digi, int lines,int ibuz);
|
||||
void loop();//publica datos variables
|
||||
int OnMqtt(char* topic, char* payload);
|
||||
void suscribe(PubSubClient *client_qqtt);
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ void MqttSensManager::Config(MqttVarManager* var)
|
|||
|
||||
MqttSensor* MqttSensManager::Get(int i)
|
||||
{
|
||||
|
||||
return sens.Get(i);
|
||||
}
|
||||
|
||||
void MqttSensManager::inicia()
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@
|
|||
#include <Wire.h>
|
||||
|
||||
#include <EEPROM.h>
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266mDNS.h>
|
||||
#include <WiFiUdp.h>
|
||||
#include <ArduinoOTA.h>
|
||||
|
||||
#include "MqttUtiles.h"
|
||||
//**************************************************************************************************************************************************
|
||||
|
||||
|
|
@ -42,13 +47,19 @@ WifiManager::WifiManager()
|
|||
|
||||
}
|
||||
|
||||
void WifiManager::inicia( WiFiClient *espclient,char *ssid, char* key)
|
||||
void WifiManager::inicia( WiFiClient *espclient,char *ssid, char* key, char *idArdu)
|
||||
{
|
||||
espClient= espclient;
|
||||
strcpy(nred, ssid);
|
||||
strcpy(pass, key);
|
||||
|
||||
#ifdef DEBUG_PS
|
||||
strcpy(idArduino,idArdu);
|
||||
conecta();
|
||||
|
||||
//return WiFi.status() == WL_CONNECTED;
|
||||
}
|
||||
bool WifiManager::conecta()
|
||||
{
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("Conectando wifi");
|
||||
Serial.println(nred);
|
||||
Serial.println(pass);
|
||||
|
|
@ -69,25 +80,84 @@ void WifiManager::inicia( WiFiClient *espclient,char *ssid, char* key)
|
|||
if(WiFi.status() == WL_CONNECTED)
|
||||
Serial.println("Wifi Conectado");
|
||||
else
|
||||
Serial.println("No se pudo conectar");
|
||||
{
|
||||
Serial.println("No se pudo conectar");
|
||||
|
||||
}
|
||||
#endif
|
||||
//return WiFi.status() == WL_CONNECTED;
|
||||
}
|
||||
if(WiFi.status() != WL_CONNECTED)
|
||||
return false;
|
||||
|
||||
//ota----------------------------------
|
||||
// Port defaults to 8266
|
||||
// ArduinoOTA.setPort(8266);
|
||||
|
||||
// Hostname defaults to esp8266-[ChipID]
|
||||
ArduinoOTA.setHostname(idArduino);
|
||||
|
||||
// No authentication by default
|
||||
// ArduinoOTA.setPassword("admin");
|
||||
|
||||
// Password can be set with it's md5 value as well
|
||||
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
|
||||
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
|
||||
|
||||
ArduinoOTA.onStart([]() {
|
||||
String type;
|
||||
if (ArduinoOTA.getCommand() == U_FLASH) {
|
||||
type = "sketch";
|
||||
} else { // U_FS
|
||||
type = "filesystem";
|
||||
}
|
||||
#ifdef DEBUG_PS
|
||||
// NOTE: if updating FS this would be the place to unmount FS using FS.end()
|
||||
Serial.println("Start updating " + type);
|
||||
#endif
|
||||
});
|
||||
ArduinoOTA.onEnd([]() {
|
||||
Serial.println("\nEnd");
|
||||
});
|
||||
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
|
||||
#ifdef DEBUG_PS
|
||||
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
|
||||
#endif
|
||||
});
|
||||
ArduinoOTA.onError([](ota_error_t error) {
|
||||
#ifdef DEBUG_PS
|
||||
Serial.printf("Error[%u]: ", error);
|
||||
if (error == OTA_AUTH_ERROR) {
|
||||
Serial.println("Auth Failed");
|
||||
} else if (error == OTA_BEGIN_ERROR) {
|
||||
Serial.println("Begin Failed");
|
||||
} else if (error == OTA_CONNECT_ERROR) {
|
||||
Serial.println("Connect Failed");
|
||||
} else if (error == OTA_RECEIVE_ERROR) {
|
||||
Serial.println("Receive Failed");
|
||||
} else if (error == OTA_END_ERROR) {
|
||||
Serial.println("End Failed");
|
||||
}
|
||||
#endif
|
||||
});
|
||||
ArduinoOTA.begin();
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("Ready");
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
bool WifiManager::loop()
|
||||
{
|
||||
if((WiFi.status() == WL_CONNECTED))
|
||||
{
|
||||
|
||||
{
|
||||
ArduinoOTA.handle();
|
||||
return true;
|
||||
}
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("Reset esp");
|
||||
#endif
|
||||
ESP.reset();
|
||||
return false;
|
||||
|
||||
|
||||
}
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("Fallo de conexion, se reinicia arduino");
|
||||
#endif
|
||||
ESP.reset();
|
||||
return false;
|
||||
}
|
||||
//**************************************************************************************************************************************************
|
||||
MqttManager::MqttManager()
|
||||
|
|
@ -122,6 +192,11 @@ bool MqttManager::loop()
|
|||
return true;
|
||||
|
||||
}
|
||||
#ifdef DEBUG_PS
|
||||
Serial.println("Fallo de conexion, se reinicia arduino");
|
||||
#endif
|
||||
ESP.reset();
|
||||
return false;
|
||||
}
|
||||
void MqttManager::subscribe_mqtt()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -55,11 +55,12 @@ class WifiManager
|
|||
|
||||
char nred[32];
|
||||
char pass[32];
|
||||
char idArduino[32];
|
||||
WiFiClient *espClient;
|
||||
|
||||
WifiManager();
|
||||
|
||||
void inicia( WiFiClient *espClient, char *ssid, char* key);
|
||||
bool conecta();
|
||||
void inicia( WiFiClient *espClient, char *ssid, char* key, char *idArduino);
|
||||
bool loop();
|
||||
|
||||
};
|
||||
|
|
@ -76,7 +77,7 @@ class MqttManager
|
|||
|
||||
private:
|
||||
|
||||
char idEsp[16];
|
||||
char idEsp[32];
|
||||
public:
|
||||
PubSubClient *client_mqtt;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class ActDomoConfig: public DomoConfig
|
|||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
|
||||
strcpy(ideEsp,"Esp8266_016");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_pruebas");//idenitificador del esp (sera único)
|
||||
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
|
||||
portMQTT=1883;//puerto del servidor mqtt Broker
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ class AutomatismosDomoConfig: public DomoConfig
|
|||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
|
||||
strcpy(ideEsp,"Esp8266_013");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_autom");//idenitificador del esp (sera único)
|
||||
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
|
||||
portMQTT=1883;//puerto del servidor mqtt Broker
|
||||
|
||||
|
|
@ -203,7 +203,7 @@ class PulCocinaConfig: public DomoConfig
|
|||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
|
||||
strcpy(ideEsp,"Esp8266_014");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_Pulcocina");//idenitificador del esp (sera único)
|
||||
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
|
||||
portMQTT=1883;//puerto del servidor mqtt Broker
|
||||
|
||||
|
|
@ -263,7 +263,7 @@ class PulSalonConfig: public DomoConfig
|
|||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
|
||||
strcpy(ideEsp,"Esp8266_012");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_pulSalon");//idenitificador del esp (sera único)
|
||||
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
|
||||
portMQTT=1883;//puerto del servidor mqtt Broker
|
||||
|
||||
|
|
@ -316,7 +316,7 @@ class DespachoDomoConfig: public DomoConfig
|
|||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
|
||||
strcpy(ideEsp,"Esp8266_011");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_Despacho");//idenitificador del esp (sera único)
|
||||
strcpy(hostMQTT,"192.168.2.50");//servidor mqttBroker
|
||||
portMQTT=1883;//puerto del servidor mqtt Broker
|
||||
|
||||
|
|
@ -341,6 +341,11 @@ class DespachoDomoConfig: public DomoConfig
|
|||
//sensores--------------------------------------------------------
|
||||
sens->AddHDT22(D4, "casa/desp");
|
||||
sens->AddAnalogIn(0, "casa/desp/luz",true);
|
||||
sens->AddBuzz(D7, "casa/des/buz");
|
||||
|
||||
sens->AddMelodia("m200#100d200#0");//titu
|
||||
sens->AddMelodia("d200#100d200#100d200#100f200#100l300#0");
|
||||
|
||||
//variables----------------------------------------------------
|
||||
int temCoci= vars->AddInternalVarFloat( "casa/cocina/t");//variable privada
|
||||
int hcocina= vars->AddInternalVarFloat( "casa/cocina/h");//variable privada
|
||||
|
|
@ -364,7 +369,7 @@ class CocinaDomoConfig: public DomoConfig
|
|||
velocidadPortSerie=115200;
|
||||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
strcpy(ideEsp,"Esp8266_010");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_cocina");//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
|
||||
|
|
@ -387,7 +392,7 @@ class ExteriorDomoConfig: public DomoConfig
|
|||
velocidadPortSerie=115200;
|
||||
strcpy(ssidWifi,"Idhun");//nombre wifi
|
||||
strcpy(keyWifi,"Ardileorca1234.");//key wifi
|
||||
strcpy(ideEsp,"Esp8266_015");//idenitificador del esp (sera único)
|
||||
strcpy(ideEsp,"Esp8266_Ext");//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
|
||||
|
|
@ -405,4 +410,4 @@ class ExteriorDomoConfig: public DomoConfig
|
|||
|
||||
|
||||
//configuracion que se usara--------------------------
|
||||
ActDomoConfig ConfiguracionActual;
|
||||
DespachoDomoConfig ConfiguracionActual;
|
||||
|
|
|
|||
Loading…
Reference in New Issue