Braskem RS



9425 ckt 1

#ifndef _ENV_H

#define _ENV_H

 /*********************** ### Circuito 1 Chiller 322 Braskem RS ### *********/

/******************** ### Usar versão de código com 6 sensores BLE que está no GitHub ### **************/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/********* ### Se atentar a página "initserver.cpp" e verificar se não tem nenhum envio de pacotes comentado ### ************/

#define NETWORK_CLIENT "SmartVac Telemetria"//nome da rede wifi do cliente

#define PASSW "procurar_no_gerenciador" //senha do wifi do cliente procurar no bitwarden

#define VOLT_CAL 180.45 //calibracao do sensor de tensao 

#define VOLT_CAL_S 179.24 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 186.05 //calibracao do sensor de tensao 

#define CURRENT_CAL 14.4 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14.3 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14.5 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9425" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/SC0004" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s201" //endereco sensor de insuflamento 

#define RET_SENSOR "s202" //endereco sensor de retorno 

#define SUC_SENSOR "s212" //endereco sensor de sucção 

#define LL_SENSOR "s213" //endereco sensor de linha de liquido 

//#define EXT_SENSOR "sTesteExt" //endereco sensor de externa 

#define ENT_CONDES "s20850" //endereco sensor de externa 

#define SAD_CONDES "s20849" //endereco sensor de externa 

#define VOLT_SENSOR_R "s214" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s215" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s216" //endereco sensor de tensao 

#define CURR_SENSOR_R "s203" //endereco sensor de corrente 

#define CURR_SENSOR_S "s204" //endereco sensor de corrente 

#define CURR_SENSOR_TT "s205" //endereco sensor de corrente

#define BAT_SENSOR_INS "s20841" //endereco sensor de corrente

#define BAT_SENSOR_RET "s20842" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s20843" //endereco sensor de corrente

#define BAT_SENSOR_LL "s20844" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s217" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s218" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s219" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:48" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:25:db" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:5a" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:ed" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:25:df" //endereço para a leitura do sensor de entrada da condensação

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:19:c7" //endereço para a leitura do sensor de saida da condensação

#endif

9425 ckt 2

/*********************** ### Circuito 2 Chiller 9425 Braskem RS ### *********/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/********* ### Se atentar a página "initserver.cpp" e verificar se não tem nenhum envio de pacotes comentado ### ************/

/******** ### Esse circuito NÃO ENVIA TENSÃO, somente o circuito 1 envia tensão ### *************/

/******** ### Esse circuito ENVIA INSU E RET, pois o chiller é de dois circuitos ### *************/

/******** ### Esse circuito NÃO ENVIA AS BATERIAS DOS SENSORES BLE, somente o circuito 1 envia esses dados ### *************/

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria" //nome da rede

#define PASSW "procurar_no_gerenciador" //senha

#define VOLT_CAL 454 //calibracao do sensor de tensao 

#define VOLT_CAL_S 82 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 119.5 //calibracao do sensor de tensao 

#define CURRENT_CAL 18.04 //calibracao do sensor de corrente

#define CURRENT_CAL_S 16.3 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 16.04 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9425b" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/SC0004b" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20845" //endereco sensor de saida ckt 2

#define RET_SENSOR "s20846" //endereco sensor de saida ckt 2

#define SUC_SENSOR "s20848" //endereco sensor de sucção 2

#define LL_SENSOR "s20847" //endereco sensor de descarga 2 

#define ENT_CONDES "s20852" //endereco sensor entrada cond 2

#define SAD_CONDES "s20851" //endereco sensor saida cond 2

#define VOLT_SENSOR_R "s214" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s215" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s216" //endereco sensor de tensao 

#define CURR_SENSOR_R "s206" //endereco sensor de corrente 

#define CURR_SENSOR_S "s207" //endereco sensor de corrente 

#define CURR_SENSOR_TT "s208" //endereco sensor de corrente

#define BAT_SENSOR_INS "s20841" //endereco sensor de corrente

#define BAT_SENSOR_RET "s20842" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s20843" //endereco sensor de corrente

#define BAT_SENSOR_LL "s20844" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s220" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s221" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s222" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:25:f1" //entrada de água 2

#define SENS_TEMP_INSU "bc:57:29:0e:19:db" // saída de água 2

#define SENS_TEMP_LL "bc:57:29:0e:26:23" //descarga ckt 2

#define SENS_TEMP_SUC "bc:57:29:0e:19:85" //sucção ckt 2

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:19:51" //endereço para a leitura do sensor de entrada da condensação

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:19:97" //endereço para a leitura do sensor de saida da condensação

#endif

9229 ckt 2

#ifndef _ENV_H

#define _ENV_H

/*********************** ### Circuito 2 Chiller CPD Braskem RS ### *********/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/********* ### Se atentar a página "initserver.cpp" e verificar se não tem nenhum envio de pacotes comentado ### ************/

/******** ### Esse circuito NÃO ENVIA TENSÃO, somente o circuito 1 envia tensão ### *************/

/******** ### Esse circuito NÃO ENVIA INSU E RET, somente o circuito 1 envia esses dados ### *************/

/******** ### Esse circuito NÃO ENVIA AS BATERIAS DOS SENSORES BLE, somente o circuito 1 envia esses dados ### *************/

#define NETWORK_CLIENT "SmartVac Telemetria"//nome da rede wifi do cliente

#define PASSW "procurar_no_gerenciador"//senha do wifi di cliente

#define VOLT_CAL 181.04 //calibracao do sensor de tensao 

#define VOLT_CAL_S 179.1 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 183.7 //calibracao do sensor de tensao

#define CURRENT_CAL 14.8 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14.79 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14.22 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9229b" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/SC0002b" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

//#define INS_SENSOR "s20924" //endereco sensor de saida 

//#define RET_SENSOR "s20925" //endereco sensor de retorno 

#define SUC_SENSOR "s20930" //endereco sensor de sucção 

#define LL_SENSOR "s20931" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20926" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s20932" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s20933" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20946" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s20947" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s20948" //endereco sensor de corrente ckt 1

//#define BAT_SENSOR_INS "s20942" //endereco sensor de corrente

//#define BAT_SENSOR_RET "s20943" //endereco sensor de corrente

//#define BAT_SENSOR_SUC "s20944" //endereco sensor de corrente

//#define BAT_SENSOR_LL "s20945" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20939" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20940" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20941" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:56" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:7c" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:26:17" //descarga ckt 2

#define SENS_TEMP_SUC "bc:57:29:0e:19:a6" //sucção ckt 2

#endif

12842

/*********************** ### 12842/AC-40-4 Braskem RS ### *********/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/********* ### Se atentar a página "initserver.cpp" e verificar se não tem nenhum envio de pacotes comentado ### ************/

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"//nome da rede wifi do cliente 

#define PASSW "procurar_no_gerenciador"// network password

#define VOLT_CAL 113.42 //calibracao do sensor de tensao 

#define VOLT_CAL_S 108.7 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 506.14 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 13.125 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "12842" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0517" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20949" //endereco sensor de saida 

#define RET_SENSOR "s20950" //endereco sensor de retorno 

#define SUC_SENSOR "s20951" //endereco sensor de sucção 

#define LL_SENSOR "s20952" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20953" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s20962" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s20963" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20954" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s20964" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s20965" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s20958" //endereco sensor de corrente

#define BAT_SENSOR_RET "s20959" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s20960" //endereco sensor de corrente

#define BAT_SENSOR_LL "s20961" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20955" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20956" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20957" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:2b" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:75" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:26:00" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:88" //sucção ckt 1

#endif

9945

/***************************##############################*******************************/

/*********************** ### Self 9945 Braskem RS ### **********************************/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/********************#################################################*******************/

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"//nome da rede wifi

#define PASSW "procurar_no_gerenciador"//senha da rede

#define VOLT_CAL 147.79 //calibracao do sensor de tensao 

#define VOLT_CAL_S 193.9 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 192.2 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9945" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0522" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21029" //endereco sensor de saida 

#define RET_SENSOR "s21030" //endereco sensor de retorno 

#define SUC_SENSOR "s21031" //endereco sensor de sucção 

#define LL_SENSOR "s21032" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21033" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21042" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21043" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21034" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21044" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21045" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21038" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21039" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21040" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21041" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21035" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21036" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21037" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:25:f9" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:fe" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:ac" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:4c" //sucção ckt 1

#endif

9312

/***************************##############################*******************************/

/*********************** ### Self 9312 Braskem RS ### **********************************/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/********************#################################################*******************/

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"//rede wifi

#define PASSW "procurar_no_gerenciador"//senha da rede

#define VOLT_CAL 212 //calibracao do sensor de tensao 

#define VOLT_CAL_S 94 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 208.39 //calibracao do sensor de tensao

#define CURRENT_CAL 14.28 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14.28 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14.28 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9312" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0521" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21004" //endereco sensor de saida 

#define RET_SENSOR "s21005" //endereco sensor de retorno 

#define SUC_SENSOR "s21008" //endereco sensor de sucção 

#define LL_SENSOR "s21009" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21006" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21012" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21013" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21007" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21014" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21015" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21022" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21023" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21024" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21025" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21016" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21017" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21018" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:35" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:e0" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:5b" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:2c" //sucção ckt 1

#endif

13318

/***************************##############################*******************************/

/*********************** ### Self 13318 Braskem RS ### **********************************/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/****************################# Monofásico ##################**************************/

/******************** ### Scomentar os envios em iniserver.cpp conforme os sensores na presente página. ### ********************/

/********************#################################################*******************/

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"//rede wifi

#define PASSW "procurar_no_gerenciador"//senha

#define VOLT_CAL 181.62 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0000 //ignorar 

#define VOLT_CAL_TT 00000 //ignorar

#define CURRENT_CAL 24.27 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0000 //ignorar

#define CURRENT_CAL_TT 0000000 //ignorar

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //ignorar 

#define PIN_CURRENT_TT 36 //ignorar 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //ignorar

#define PIN_VOLTAGE_TT 39 //ignorar

#define EQUIPAMENT_TAG "13318" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0520" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20991" //endereco sensor de saida 

#define RET_SENSOR "s20992" //endereco sensor de retorno 

#define SUC_SENSOR "s20993" //endereco sensor de sucção 

#define LL_SENSOR "s20994" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20995" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20996" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21000" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21001" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21002" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21003" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20997" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20998" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20999" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:9e" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:f6" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:b3" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:37" //sucção ckt 1

#endif

9229 ckt 1

/*********************** ### Circuito 1 Chiller 9229 Braskem RS ### *********/

/******************** ### Se atentar ás credenciais da rede Wi-Fi ### ********************/

/********* ### Se atentar a página "initserver.cpp" e verificar se não tem nenhum envio de pacotes comentado ### ************/

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"//rede

#define PASSW "procurar_no_gerenciador"//senha

#define VOLT_CAL 182.78 //calibracao do sensor de tensao 

#define VOLT_CAL_S 184.76 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 183.7 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9229" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/SC0002" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20924" //endereco sensor de saida 

#define RET_SENSOR "s20925" //endereco sensor de retorno 

#define SUC_SENSOR "s20928" //endereco sensor de sucção 

#define LL_SENSOR "s20929" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20926" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s20932" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s20933" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20927" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s20934" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s20935" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s20942" //endereco sensor de corrente

#define BAT_SENSOR_RET "s20943" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s20944" //endereco sensor de corrente

#define BAT_SENSOR_LL "s20945" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20936" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20937" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20938" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:56" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:7c" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:55" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:9a" //sucção ckt 1

#endif

17407

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"// rede

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxx"//senha da rede procurar no gerenciador

#define VOLT_CAL 520.88 //calibracao do sensor de tensao 

#define VOLT_CAL_S 452.75 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 462.42 //calibracao do sensor de tensao 

#define CURRENT_CAL 4.98 //calibracao do sensor de corrente

#define CURRENT_CAL_S 4.88 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 4.50 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "17407" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0516" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20890" //endereco sensor de saida 

#define RET_SENSOR "s20891" //endereco sensor de retorno 

#define SUC_SENSOR "s20892" //endereco sensor de sucção 

#define LL_SENSOR "s20893" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20894" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s20895" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s20896" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20897" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s20898" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s20899" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s20903" //endereco sensor de corrente

#define BAT_SENSOR_RET "s20904" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s20905" //endereco sensor de corrente

#define BAT_SENSOR_LL "s20906" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20900" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20901" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20902" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:8c" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2f:17" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:d9" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:eb" //sucção ckt 1

#endif

9147 ckt 1

#include <stdio.h>

#include <WiFi.h>

#include <MQTT.h>

#include <SPI.h>

#include "DallasTemperature.h"

#include "EmonLib.h"

#include <PubSubClient.h>

#include <time.h>

#include <ArduinoJson.h>

#include "ESPDateTime.h"

#include <esp_task_wdt.h> //Biblioteca do watchdog

//#define MDASH_APP_NAME "BLE_31364"

//#include <mDash.h>

#include <BLEDevice.h>

#include <BLEUtils.h>

#include <BLEScan.h>

#include <BLEAdvertisedDevice.h>

void BLE();

void connect2();

void HoraData1();

void HoraData2();

void Temperaturas();

void conectarEnviar();

void Correntes();

void Tensoes();

void DHCP();

//***********Define o nome da rede, senha para conexão e os endereços para conexão********************

const char* rede = "SmartVac Telemetria";

const char* senha = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; procurar no gerenciador

const char* SERVIDOR = "web.smartvac.app"; 

int PORTA = 1883;

 

//***************************************Define os itens do MQTT **************************************

WiFiClient Client;

PubSubClient MQTT(Client);

//***************Definição dos pinos para os sensores de temperatura, corrente e tensão****************

#define ONE_WIRE_BUS_PINA 14 // Temperatura

#define ONE_WIRE_BUS_PINB 36 // Temperatura

#define PIN_CURR_R 39 // Corrente R

#define PIN_CURR_S 33 // Corrente S

#define PIN_CURR_T 35 // Corrente T

#define PIN_VOLT_R 32 // Tensão R

#define PIN_VOLT_S 34 // Tensão S

#define PIN_VOLT_T 36 // Tensão T

//#define DEVICE_PASSWORD "oh099QByIVRdERWq4CRijnA"

//******************************Variaveis Globais******************************************************

 

float TempIns;

float TempRet;

float TempSuc;

float TempDes;

float TempExt;

float TempExt2;

float BLERet;

float BLESuc;

float BLEIns;

float BLELinha;

float BLEExt;

float BLEX;

float BLEY;

float BLEZ;

float Bat_ins;

float Bat_ret;

float Bat_linha;

float Bat_suc;

float Bat_ext;

uint16_t voltage;

int16_t accX;

int16_t accY;

int16_t accZ;

std::map<std::string, float> macTemperatures;

time_t timer;

time_t timeStemp;

int diferenca=0;

int difOitoHoras=0;

//***************************Abre a instância OneWire***************************************

OneWire oneWireA(ONE_WIRE_BUS_PINA);

OneWire oneWireB(ONE_WIRE_BUS_PINB);

//*****************Passagem de dados do one wire para o Dallas******************************

DallasTemperature sensorsA(&oneWireA);

DallasTemperature sensorsB(&oneWireB);

// Declaração das variaveis para medição de corrente e tensão

EnergyMonitor emon1,emon2,emon3,emon4,emon5,emon6;

double Irms1,Irms2, Irms3;

double Vrms4, Vrms5, Vrms6;

//****************************Calibração***************************************************

#define VOLT_CAL1 81.95 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL2 81.89 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL3 76.80 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL1 16.55 //17.7VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL2 16.55 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL3 19.04 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

//*****************Declaração endereço sensores de temperatura******************************

DeviceAddress Probe01 = { 0x28, 0x6F, 0x2A, 0x95, 0xF0, 0x01, 0x3C, 0x88 }; //Insuflamento

DeviceAddress Probe02 = { 0x28, 0xAD, 0xD3, 0x56, 0xB5, 0x01, 0x3C, 0x99 }; //Retorno

DeviceAddress Probe03 = { 0x28, 0x7D, 0x6D, 0x95, 0xF0, 0x01, 0x3C, 0x05 }; //Sucção 

DeviceAddress Probe04 = { 0x28, 0xC1, 0x30, 0x95, 0xF0, 0x01, 0x3C, 0x06 }; //Descarga

DeviceAddress Probe05 = { 0x28, 0x9C, 0x44, 0x56, 0xB5, 0x01, 0x3C, 0xA5 }; //Externa

DeviceAddress Probe06 = { 0x28, 0xC9, 0x27, 0x95, 0xF0, 0x01, 0x3C, 0x8A }; //Externa Reserva (entrada do condensador) 

//*****************Setup do hardware********************************************************

BLEScan* pBLEScan;

/*----------------------------------------------------------------------------------------------------------------

// Lista de sensores BLE. SEMPRE SEGUIR A ORDEM: Insuflamento, Retorno, Sucção, Linha de Líquido/Descarga, Externa.

--------------------------------------------------------------------------------------------------------------------*/

std::string macAddresses[] = {

 "bc:57:29:0e:2e:d8", //Insuflamento

 "bc:57:29:0e:25:e4", //Retorno

 "bc:57:29:0e:19:3d", // Sucção

 "bc:57:29:0e:19:ce", // Linha De Líquido/ Descarga

 "xx:xx:xx:xx:xx:xx" //Externa

};

// Keep track of the current MAC address index we are looking for

int currentMacIndex = 0;

const int numMacAddresses = sizeof(macAddresses) / sizeof(macAddresses[0]);

class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {

 void onResult(BLEAdvertisedDevice advertisedDevice) {

 std::string strServiceData = advertisedDevice.getServiceData();

 std::string mac = advertisedDevice.getAddress().toString();

 

 

 // Only proceed if the MAC address matches the current one we are looking for

 if(mac == macAddresses[currentMacIndex]){

 uint8_t* payload = (uint8_t*)strServiceData.c_str();

 int len = strServiceData.length();

 Serial.print("Received payload from ");

 Serial.print(mac.c_str());

 Serial.print(": ");

 for(int i = 0; i < len; i++){

 if(payload[i] < 16) Serial.print("0"); // If less than 16, prepend with '0' to maintain 2 hex digits

 Serial.print(payload[i], HEX);

 }

 Serial.println();

 int offset = 2; // Starting offset after frame type and version tag

 uint8_t sensorMask = payload[offset++];

 if(sensorMask & 0x01) { // Voltage

 uint16_t voltage = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Voltage: ");

 Serial.print(voltage);

 Serial.println(" mV");

 if (mac == macAddresses[0]) { //Insuflamento

 

 Bat_ins = voltage;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 Bat_ret = voltage;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 Bat_suc = voltage;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 Bat_linha = voltage;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 Bat_ext = voltage;

 }

 }

 if(sensorMask & 0x02) { // Temperature

 uint16_t tempRaw = (payload[offset] << 8) | payload[offset + 1];

 float temp = tempRaw / 256.0;

 offset += 2;

 Serial.print("Temperature: ");

 Serial.print(temp);

 Serial.println(" °C");

 if (mac == macAddresses[0]) { //Insuflamento

 // ArraySensores[0] = temp;

 BLEIns = temp;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 BLERet = temp;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 BLESuc = temp;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 BLELinha = temp;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 BLEExt = temp;

 }

 }

 if(sensorMask & 0x08) { // Acceleration

 int16_t accX = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accY = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accZ = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Acceleration - X: ");

 Serial.print(accX);

 Serial.println(" mg");

 Serial.print("Y: ");

 Serial.print(accY);

 Serial.println(" mg");

 Serial.print("Z: ");

 Serial.print(accZ);

 Serial.println(" mg");

 if (mac == macAddresses[3]) // Se for o sensor de sucção, lê as vibrações

 {

 

 BLEX = accX;

 BLEY = accY;

 BLEZ = accZ;

 

 }

 }

 

 Serial.println("--------------------"); // Separator for readability

 

 // Move to the next MAC address in the list

 currentMacIndex = (currentMacIndex + 1) % numMacAddresses;

 }

 }

 

};

void setup() {

 // Serial para leitura dos dados

 Serial.begin(115200);

 // Inicia o Wifi

 WiFi.mode(WIFI_STA);

 WiFi.begin(rede, senha);

 //Inicia o password do MDash

 //mDashBegin(DEVICE_PASSWORD);

 // Estabelece o DHCP para conexão com ip dinâmico

 DHCP();

 

 //Inicia sensores

 sensorsA.begin();

 sensorsB.begin(); 

 // Seta a resolução do sensor, menor mais rápido

 sensorsA.setResolution(Probe01, 12);

 sensorsA.setResolution(Probe02, 12);

 sensorsB.setResolution(Probe03, 12);

 sensorsB.setResolution(Probe04, 12);

 sensorsA.setResolution(Probe05, 12);

 sensorsB.setResolution(Probe06, 12);

 // Define os pinos e resolução do sensor de corrente 

 emon1.current(PIN_CURR_R, CURR_CAL1); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon2.current(PIN_CURR_S, CURR_CAL2); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon3.current(PIN_CURR_T, CURR_CAL3); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 

 // Definição do pino para tensão

 emon4.voltage(PIN_VOLT_R, VOLT_CAL1, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon5.voltage(PIN_VOLT_S, VOLT_CAL2, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon6.voltage(PIN_VOLT_T, VOLT_CAL3, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

//********************************************************************

 //Indica para o objeto "MQTT" em que servidor e em que porta iremos nos conectar

 

 MQTT.setServer(SERVIDOR,PORTA);

 MQTT.setCallback(mqtt_callback);

 connect2();

 // Inicia o timer

 HoraData1();

 //Watchdog

 esp_task_wdt_init(10800, true);

 esp_task_wdt_add(NULL);

 

 //BLE

 BLEDevice::init("");

 pBLEScan = BLEDevice::getScan();

 pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());

 pBLEScan->setActiveScan(true);

 pBLEScan->setInterval(100);

 pBLEScan->setWindow(99);

 }

//*****************Função loop***********************************************************

 

void loop() {

 conectarEnviar();

 

 }

//*****************Função do timer********************************************************

 

void HoraData1()

{

 const char tenn[]="CST-3";

 DateTime.setTimeZone(tenn);

 DateTime.setServer("ntp02.oal.ul.pt");

 DateTime.begin(); 

 int timer = DateTime.getTime();

 

 timeval tv;//Cria a estrutura temporaria para funcao abaixo.

 tv.tv_sec = timer;//Atribui minha data atual.

 settimeofday(&tv, NULL);//Atualiza a data e hora

 

 //String hora = String(String(dia) + String("/") + String(mes) + String("/") + String(ano) + String(" ") + String(hora) + String(":") + String(minuto) + String(":") + String(segundo));

}

//*****************Função do timer ****************************************************************************

void HoraData2()

{

 struct tm data;

 time_t tt = time(NULL);//Obtem o tempo atual em segundos. Utilize isso sempre que precisar obter o tempo atual

 //data = *gmtime(&tt);//Converte o tempo atual e atribui na estrutura

 diferenca=tt-timeStemp;//faz a conta para verificar se a diferença é de 2 segundos para os envios

 difOitoHoras=tt-timer; //faz a conta para verificar se a diferença é de 28800 segundos para os envios

 timeStemp=tt;

 

}

//*****************Função para publicar em formato JSON********************************************************

void Publish() {

 

JsonDocument doc1;

// StaticJsonDocument<300> doc;

doc1["t"] = timeStemp;

doc1["s21313"] = Irms1; 

doc1["s21320"] = Irms2; 

doc1["s21321"] = Irms3; 

doc1["s21312"] = Vrms4; 

doc1["s21318"] = Vrms5; 

doc1["s21319"] = Vrms6;

doc1["s21322"] = BLEX;

String STD1;

JsonDocument doc2;

doc2["t"] = timeStemp;

doc2["s21310"] = BLEIns;

doc2["s21311"] = BLERet;

doc2["s21314"] = BLESuc;

doc2["s21315"] = BLELinha; 

//doc2["BLEext"] = BLEExt;

doc2["s21323"] = BLEY;

doc2["s21324"] = BLEZ;

String STD2;

JsonDocument doc3;

doc3["t"] = timeStemp;

doc3["s21328"] = Bat_ins;

doc3["s21329"] = Bat_ret;

doc3["s21330"] = Bat_suc;

doc3["s21331"] = Bat_linha;

//doc3["bat_ext"] = Bat_ext;

String STD3;

serializeJson(doc1, STD1); 

serializeJson(doc2, STD2); 

serializeJson(doc3, STD3);

Serial.println (STD1);

Serial.println (STD2);

Serial.println (STD3);

//*****************MQTT.publish aceita apenas char, as próximas linhas convertem a string em char*****************

 int tamanho = STD1.length() + 1; //Define o tamanho da String

 char mensa1[tamanho]; //Cria um array de char com o tamanho da String

 STD1.toCharArray(mensa1, tamanho); //Converte a String para char e atribui os valores ao array

 

 int tamanho2 = STD2.length() + 1; //Define o tamanho da String

 char mensa2[tamanho2]; //Cria um array de char com o tamanho da String

 STD2.toCharArray(mensa2, tamanho2); //Converte a String para char e atribui os valores ao array

 

 int tamanho3 = STD3.length() + 1; //Define o tamanho da String

 char mensa3[tamanho3]; //Cria um array de char com o tamanho da String

 STD3.toCharArray(mensa3, tamanho3); //Converte a String para char e atribui os valores ao array

 

//****************************************************************************************************************

 MQTT.publish("v4/matr0539",mensa1); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0539",mensa2); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0539",mensa3); // Envio de dados para determinado lugar do tópico

 delay (1000);

 Serial.println("Enviou");

 delay(60000);

 }

//*****************Função de conexão no MQTT**********************************************************************

void conectarEnviar() {

 

 MQTT.loop();

 if (WiFi.status() == WL_CONNECTED && MQTT.connected()) {

 

 Serial.println("------------------");

 Serial.println("Wifi conectado e servidor conectados");

 Serial.println("------------------");

 // Calcula a ultima atualização horária e roda as leituras

 if(difOitoHoras > 28600)

 {

 

 HoraData1();

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 difOitoHoras=0;

 

 }

 else

 {

 

 HoraData2();

 if(diferenca>2)

 {

 

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 

 }

 }

 

 } 

 else if(WiFi.status() != WL_CONNECTED || !MQTT.connected())

 { 

 Serial.println("------------------");

 Serial.println("Wifi ou servidor desconectado");

 Serial.println("------------------");

 

 DHCP();

 connect2();

 

 }

 }

//*****************Função de leitura das temperaturas********************************************************

void Temperaturas() {

 

 sensorsA.requestTemperatures();

 sensorsB.requestTemperatures();

 // Serial.println("######TEMPERATURAS######");

 TempIns = (sensorsA.getTempC(Probe01));

 //Serial.print("Insuflamento: ");

 //Serial.print(TempIns);

 //Serial.println("°C");

 

 TempRet = (sensorsA.getTempC(Probe02));

 //Serial.print("Retorno: ");

 //Serial.print(TempRet);

 //Serial.println("°C");

 TempSuc = (sensorsB.getTempC(Probe03));

 //Serial.print("Sucção: ");

 //Serial.print(TempSuc);

 //Serial.println("°C");

 

 TempDes = (sensorsB.getTempC(Probe04));

 //Serial.print("Descarga: ");

 //Serial.print(TempDes);

 //Serial.println("°C");

 

 TempExt = (sensorsA.getTempC(Probe05));

 //Serial.print("Externa: ");

 //Serial.print(TempExt);

 //Serial.println("°C");

 

 TempExt2 = (sensorsB.getTempC(Probe06));

 //Serial.print("Retorno Condensador: ");

 //Serial.print(TempExt2);

 //Serial.println("°C");

} 

//*****************Função de leitura das correntes********************************************************

void Correntes() {

 

 Irms1 = emon1.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms2 = emon2.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms3 = emon3.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 

}

//*****************Função de leitura das tensões**********************************************************

void Tensoes() 

{

 

emon4.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms4 = emon4.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon5.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms5 = emon5.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon6.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms6 = emon6.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO 

}

//*********************Função de leitura BLE*************************************************************

void BLE() {

 // Início da varredura BLE

 BLEScanResults foundDevices = pBLEScan->start(5, false);

 // Limpa os resultados da varredura BLE

 pBLEScan->clearResults();

}

 

//*****************Função de login e conexão MQTT********************************************************

void connect2() {

int cont=0;

 

 while (!MQTT.connect("9147", "matr4", "canudos92sc")) 

 {

 Serial.println("* Tentando se conectar ao Broker MQTT: ");

 if (MQTT.connect("9147", "matr4", "canudos92sc")) 

 {

 Serial.println("Conectado com sucesso ao broker MQTT!");

 MQTT.subscribe("/v4/matr0539"); 

 } 

 else

 {

 Serial.println("Falha ao reconectar no broker.");

 Serial.println("Havera nova tentativa de conexao em 1s");

 delay(1000);

 

 cont++;

 if(WiFi.status() != WL_CONNECTED && cont<10)

 {

 DHCP();

 }

 else

 {

 cont=0;

 Serial.println("Teste");

 }

 }

 }

}

//*****************Função de callback do servidor********************************************************

void messageReceived(String &topic, String &payload) {

 Serial.println("incoming: " + topic + " - " + payload); // Lê o que o servidor envia

 MQTT.setCallback(mqtt_callback);

}

void mqtt_callback(char* topic, byte* payload, unsigned int length) 

{

 String msg;

 

 //obtem a string do payload recebido

 for(int i = 0; i < length; i++) 

 {

 char c = (char)payload[i];

 msg += c;

 }

 Serial.print("[MQTT] Mensagem recebida: ");

 Serial.println(msg); 

}

//*****************Função do DHCP IP Dinâmico********************************************************

void DHCP()

{

 

 if(WiFi.status() != WL_CONNECTED) {

 Serial.println("Reconectando no wifi...");

 WiFi.disconnect();

 WiFi.reconnect();

 delay(500);

 }

 else if(WiFi.status() == WL_CONNECTED)

 {

 return;

 }

}

//*****************************************

9147 ckt 2

#include <stdio.h>

#include <WiFi.h>

#include <MQTT.h>

#include <SPI.h>

#include "DallasTemperature.h"

#include "EmonLib.h"

#include <PubSubClient.h>

#include <time.h>

#include <ArduinoJson.h>

#include "ESPDateTime.h"

#include <esp_task_wdt.h> //Biblioteca do watchdog

//#define MDASH_APP_NAME "BLE_31364"

//#include <mDash.h>

#include <BLEDevice.h>

#include <BLEUtils.h>

#include <BLEScan.h>

#include <BLEAdvertisedDevice.h>

void BLE();

void connect2();

void HoraData1();

void HoraData2();

void Temperaturas();

void conectarEnviar();

void Correntes();

void Tensoes();

void DHCP();

//***********Define o nome da rede, senha para conexão e os endereços para conexão********************

const char* rede = "SmartVac Telemetria";

const char* senha = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";procurar no gerenciador

const char* SERVIDOR = "web.smartvac.app"; 

int PORTA = 1883;

 

//***************************************Define os itens do MQTT **************************************

WiFiClient Client;

PubSubClient MQTT(Client);

//***************Definição dos pinos para os sensores de temperatura, corrente e tensão****************

#define ONE_WIRE_BUS_PINA 14 // Temperatura

#define ONE_WIRE_BUS_PINB 36 // Temperatura

#define PIN_CURR_R 39 // Corrente R

#define PIN_CURR_S 33 // Corrente S

#define PIN_CURR_T 35 // Corrente T

#define PIN_VOLT_R 32 // Tensão R

#define PIN_VOLT_S 34 // Tensão S

#define PIN_VOLT_T 36 // Tensão T

//#define DEVICE_PASSWORD "oh099QByIVRdERWq4CRijnA"

//******************************Variaveis Globais******************************************************

 

float TempIns;

float TempRet;

float TempSuc;

float TempDes;

float TempExt;

float TempExt2;

float BLERet;

float BLESuc;

float BLEIns;

float BLELinha;

float BLEExt;

float BLEX;

float BLEY;

float BLEZ;

float Bat_ins;

float Bat_ret;

float Bat_linha;

float Bat_suc;

float Bat_ext;

uint16_t voltage;

int16_t accX;

int16_t accY;

int16_t accZ;

std::map<std::string, float> macTemperatures;

time_t timer;

time_t timeStemp;

int diferenca=0;

int difOitoHoras=0;

//***************************Abre a instância OneWire***************************************

OneWire oneWireA(ONE_WIRE_BUS_PINA);

OneWire oneWireB(ONE_WIRE_BUS_PINB);

//*****************Passagem de dados do one wire para o Dallas******************************

DallasTemperature sensorsA(&oneWireA);

DallasTemperature sensorsB(&oneWireB);

// Declaração das variaveis para medição de corrente e tensão

EnergyMonitor emon1,emon2,emon3,emon4,emon5,emon6;

double Irms1,Irms2, Irms3;

double Vrms4, Vrms5, Vrms6;

//****************************Calibração***************************************************

#define VOLT_CAL1 81.95 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL2 81.89 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL3 76.80 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL1 17 //17.7VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL2 17.07 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL3 16.53 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

//*****************Declaração endereço sensores de temperatura******************************

DeviceAddress Probe01 = { 0x28, 0x6F, 0x2A, 0x95, 0xF0, 0x01, 0x3C, 0x88 }; //Insuflamento

DeviceAddress Probe02 = { 0x28, 0xAD, 0xD3, 0x56, 0xB5, 0x01, 0x3C, 0x99 }; //Retorno

DeviceAddress Probe03 = { 0x28, 0x7D, 0x6D, 0x95, 0xF0, 0x01, 0x3C, 0x05 }; //Sucção 

DeviceAddress Probe04 = { 0x28, 0xC1, 0x30, 0x95, 0xF0, 0x01, 0x3C, 0x06 }; //Descarga

DeviceAddress Probe05 = { 0x28, 0x9C, 0x44, 0x56, 0xB5, 0x01, 0x3C, 0xA5 }; //Externa

DeviceAddress Probe06 = { 0x28, 0xC9, 0x27, 0x95, 0xF0, 0x01, 0x3C, 0x8A }; //Externa Reserva (entrada do condensador) 

//*****************Setup do hardware********************************************************

BLEScan* pBLEScan;

/*----------------------------------------------------------------------------------------------------------------

// Lista de sensores BLE. SEMPRE SEGUIR A ORDEM: Insuflamento, Retorno, Sucção, Linha de Líquido/Descarga, Externa.

--------------------------------------------------------------------------------------------------------------------*/

std::string macAddresses[] = {

 "bc:57:29:0e:2f:16", //Insuflamento

 "bc:57:29:0e:19:c4", //Retorno

 "bc:57:29:0e:19:b9", // Sucção

 "bc:57:29:0e:19:3e", // Linha De Líquido/ Descarga

 "xx:xx:xx:xx:xx:xx" //Externa

};

// Keep track of the current MAC address index we are looking for

int currentMacIndex = 0;

const int numMacAddresses = sizeof(macAddresses) / sizeof(macAddresses[0]);

class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {

 void onResult(BLEAdvertisedDevice advertisedDevice) {

 std::string strServiceData = advertisedDevice.getServiceData();

 std::string mac = advertisedDevice.getAddress().toString();

 

 

 // Only proceed if the MAC address matches the current one we are looking for

 if(mac == macAddresses[currentMacIndex]){

 uint8_t* payload = (uint8_t*)strServiceData.c_str();

 int len = strServiceData.length();

 Serial.print("Received payload from ");

 Serial.print(mac.c_str());

 Serial.print(": ");

 for(int i = 0; i < len; i++){

 if(payload[i] < 16) Serial.print("0"); // If less than 16, prepend with '0' to maintain 2 hex digits

 Serial.print(payload[i], HEX);

 }

 Serial.println();

 int offset = 2; // Starting offset after frame type and version tag

 uint8_t sensorMask = payload[offset++];

 if(sensorMask & 0x01) { // Voltage

 uint16_t voltage = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Voltage: ");

 Serial.print(voltage);

 Serial.println(" mV");

 if (mac == macAddresses[0]) { //Insuflamento

 

 Bat_ins = voltage;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 Bat_ret = voltage;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 Bat_suc = voltage;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 Bat_linha = voltage;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 Bat_ext = voltage;

 }

 }

 if(sensorMask & 0x02) { // Temperature

 uint16_t tempRaw = (payload[offset] << 8) | payload[offset + 1];

 float temp = tempRaw / 256.0;

 offset += 2;

 Serial.print("Temperature: ");

 Serial.print(temp);

 Serial.println(" °C");

 if (mac == macAddresses[0]) { //Insuflamento

 // ArraySensores[0] = temp;

 BLEIns = temp;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 BLERet = temp;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 BLESuc = temp;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 BLELinha = temp;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 BLEExt = temp;

 }

 }

 if(sensorMask & 0x08) { // Acceleration

 int16_t accX = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accY = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accZ = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Acceleration - X: ");

 Serial.print(accX);

 Serial.println(" mg");

 Serial.print("Y: ");

 Serial.print(accY);

 Serial.println(" mg");

 Serial.print("Z: ");

 Serial.print(accZ);

 Serial.println(" mg");

 if (mac == macAddresses[3]) // Se for o sensor de sucção, lê as vibrações

 {

 

 BLEX = accX;

 BLEY = accY;

 BLEZ = accZ;

 

 }

 }

 

 Serial.println("--------------------"); // Separator for readability

 

 // Move to the next MAC address in the list

 currentMacIndex = (currentMacIndex + 1) % numMacAddresses;

 }

 }

 

};

void setup() {

 // Serial para leitura dos dados

 Serial.begin(115200);

 // Inicia o Wifi

 WiFi.mode(WIFI_STA);

 WiFi.begin(rede, senha);

 //Inicia o password do MDash

 //mDashBegin(DEVICE_PASSWORD);

 // Estabelece o DHCP para conexão com ip dinâmico

 DHCP();

 

 //Inicia sensores

 sensorsA.begin();

 sensorsB.begin(); 

 // Seta a resolução do sensor, menor mais rápido

 sensorsA.setResolution(Probe01, 12);

 sensorsA.setResolution(Probe02, 12);

 sensorsB.setResolution(Probe03, 12);

 sensorsB.setResolution(Probe04, 12);

 sensorsA.setResolution(Probe05, 12);

 sensorsB.setResolution(Probe06, 12);

 // Define os pinos e resolução do sensor de corrente 

 emon1.current(PIN_CURR_R, CURR_CAL1); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon2.current(PIN_CURR_S, CURR_CAL2); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon3.current(PIN_CURR_T, CURR_CAL3); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 

 // Definição do pino para tensão

 emon4.voltage(PIN_VOLT_R, VOLT_CAL1, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon5.voltage(PIN_VOLT_S, VOLT_CAL2, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon6.voltage(PIN_VOLT_T, VOLT_CAL3, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

//********************************************************************

 //Indica para o objeto "MQTT" em que servidor e em que porta iremos nos conectar

 

 MQTT.setServer(SERVIDOR,PORTA);

 MQTT.setCallback(mqtt_callback);

 connect2();

 // Inicia o timer

 HoraData1();

 //Watchdog

 esp_task_wdt_init(10800, true);

 esp_task_wdt_add(NULL);

 

 //BLE

 BLEDevice::init("");

 pBLEScan = BLEDevice::getScan();

 pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());

 pBLEScan->setActiveScan(true);

 pBLEScan->setInterval(100);

 pBLEScan->setWindow(99);

 }

//*****************Função loop***********************************************************

 

void loop() {

 conectarEnviar();

 

 }

//*****************Função do timer********************************************************

 

void HoraData1()

{

 const char tenn[]="CST-3";

 DateTime.setTimeZone(tenn);

 DateTime.setServer("ntp02.oal.ul.pt");

 DateTime.begin(); 

 int timer = DateTime.getTime();

 

 timeval tv;//Cria a estrutura temporaria para funcao abaixo.

 tv.tv_sec = timer;//Atribui minha data atual.

 settimeofday(&tv, NULL);//Atualiza a data e hora

 

 //String hora = String(String(dia) + String("/") + String(mes) + String("/") + String(ano) + String(" ") + String(hora) + String(":") + String(minuto) + String(":") + String(segundo));

}

//*****************Função do timer ****************************************************************************

void HoraData2()

{

 struct tm data;

 time_t tt = time(NULL);//Obtem o tempo atual em segundos. Utilize isso sempre que precisar obter o tempo atual

 //data = *gmtime(&tt);//Converte o tempo atual e atribui na estrutura

 diferenca=tt-timeStemp;//faz a conta para verificar se a diferença é de 2 segundos para os envios

 difOitoHoras=tt-timer; //faz a conta para verificar se a diferença é de 28800 segundos para os envios

 timeStemp=tt;

 

}

//*****************Função para publicar em formato JSON********************************************************

void Publish() {

 

JsonDocument doc1;

// StaticJsonDocument<300> doc;

doc1["t"] = timeStemp;

doc1["s21332"] = Irms1; 

doc1["s21333"] = Irms2; 

doc1["s21334"] = Irms3; 

//doc1["s21312"] = Vrms4; 

//doc1["s21318"] = Vrms5; 

//doc1["s21319"] = Vrms6;

doc1["s21325"] = BLEX;

String STD1;

JsonDocument doc2;

doc2["t"] = timeStemp;

//doc2["s91335"] = BLEIns;

//doc2["s91336"] = BLERet;

doc2["s21316"] = BLESuc;

doc2["s21317"] = BLELinha; 

//doc2["BLEext"] = BLEExt;

doc2["s21326"] = BLEY;

doc2["s21327"] = BLEZ;

String STD2;

JsonDocument doc3;

doc3["t"] = timeStemp;

doc3["s21328"] = Bat_ins;

doc3["s21329"] = Bat_ret;

doc3["s21330"] = Bat_suc;

doc3["s21331"] = Bat_linha;

//doc3["bat_ext"] = Bat_ext;

String STD3;

serializeJson(doc1, STD1); 

serializeJson(doc2, STD2); 

serializeJson(doc3, STD3);

Serial.println (STD1);

Serial.println (STD2);

Serial.println (STD3);

//*****************MQTT.publish aceita apenas char, as próximas linhas convertem a string em char*****************

 int tamanho = STD1.length() + 1; //Define o tamanho da String

 char mensa1[tamanho]; //Cria um array de char com o tamanho da String

 STD1.toCharArray(mensa1, tamanho); //Converte a String para char e atribui os valores ao array

 

 int tamanho2 = STD2.length() + 1; //Define o tamanho da String

 char mensa2[tamanho2]; //Cria um array de char com o tamanho da String

 STD2.toCharArray(mensa2, tamanho2); //Converte a String para char e atribui os valores ao array

 

 int tamanho3 = STD3.length() + 1; //Define o tamanho da String

 char mensa3[tamanho3]; //Cria um array de char com o tamanho da String

 STD3.toCharArray(mensa3, tamanho3); //Converte a String para char e atribui os valores ao array

 

//****************************************************************************************************************

 MQTT.publish("v4/matr0539b",mensa1); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0539b",mensa2); // Envio de dados para determinado lugar do tópico

 delay (1000);

 //MQTT.publish("v4/matr0539",mensa3); // Envio de dados para determinado lugar do tópico

 delay (1000);

 Serial.println("Enviou");

 delay(60000);

 }

//*****************Função de conexão no MQTT**********************************************************************

void conectarEnviar() {

 

 MQTT.loop();

 if (WiFi.status() == WL_CONNECTED && MQTT.connected()) {

 

 Serial.println("------------------");

 Serial.println("Wifi conectado e servidor conectados");

 Serial.println("------------------");

 // Calcula a ultima atualização horária e roda as leituras

 if(difOitoHoras > 28600)

 {

 

 HoraData1();

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 difOitoHoras=0;

 

 }

 else

 {

 

 HoraData2();

 if(diferenca>2)

 {

 

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 

 }

 }

 

 } 

 else if(WiFi.status() != WL_CONNECTED || !MQTT.connected())

 { 

 Serial.println("------------------");

 Serial.println("Wifi ou servidor desconectado");

 Serial.println("------------------");

 

 DHCP();

 connect2();

 

 }

 }

//*****************Função de leitura das temperaturas********************************************************

void Temperaturas() {

 

 sensorsA.requestTemperatures();

 sensorsB.requestTemperatures();

 // Serial.println("######TEMPERATURAS######");

 TempIns = (sensorsA.getTempC(Probe01));

 //Serial.print("Insuflamento: ");

 //Serial.print(TempIns);

 //Serial.println("°C");

 

 TempRet = (sensorsA.getTempC(Probe02));

 //Serial.print("Retorno: ");

 //Serial.print(TempRet);

 //Serial.println("°C");

 TempSuc = (sensorsB.getTempC(Probe03));

 //Serial.print("Sucção: ");

 //Serial.print(TempSuc);

 //Serial.println("°C");

 

 TempDes = (sensorsB.getTempC(Probe04));

 //Serial.print("Descarga: ");

 //Serial.print(TempDes);

 //Serial.println("°C");

 

 TempExt = (sensorsA.getTempC(Probe05));

 //Serial.print("Externa: ");

 //Serial.print(TempExt);

 //Serial.println("°C");

 

 TempExt2 = (sensorsB.getTempC(Probe06));

 //Serial.print("Retorno Condensador: ");

 //Serial.print(TempExt2);

 //Serial.println("°C");

} 

//*****************Função de leitura das correntes********************************************************

void Correntes() {

 

 Irms1 = emon1.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms2 = emon2.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms3 = emon3.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 

}

//*****************Função de leitura das tensões**********************************************************

void Tensoes() 

{

 

emon4.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms4 = emon4.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon5.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms5 = emon5.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon6.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms6 = emon6.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO 

}

//*********************Função de leitura BLE*************************************************************

void BLE() {

 // Início da varredura BLE

 BLEScanResults foundDevices = pBLEScan->start(5, false);

 // Limpa os resultados da varredura BLE

 pBLEScan->clearResults();

}

 

//*****************Função de login e conexão MQTT********************************************************

void connect2() {

int cont=0;

 

 while (!MQTT.connect("9147", "matr4", "canudos92sc")) 

 {

 Serial.println("* Tentando se conectar ao Broker MQTT: ");

 if (MQTT.connect("9147", "matr4", "canudos92sc")) 

 {

 Serial.println("Conectado com sucesso ao broker MQTT!");

 MQTT.subscribe("/v4/matr0539b"); 

 } 

 else

 {

 Serial.println("Falha ao reconectar no broker.");

 Serial.println("Havera nova tentativa de conexao em 1s");

 delay(1000);

 

 cont++;

 if(WiFi.status() != WL_CONNECTED && cont<10)

 {

 DHCP();

 }

 else

 {

 cont=0;

 Serial.println("Teste");

 }

 }

 }

}

//*****************Função de callback do servidor********************************************************

void messageReceived(String &topic, String &payload) {

 Serial.println("incoming: " + topic + " - " + payload); // Lê o que o servidor envia

 MQTT.setCallback(mqtt_callback);

}

void mqtt_callback(char* topic, byte* payload, unsigned int length) 

{

 String msg;

 

 //obtem a string do payload recebido

 for(int i = 0; i < length; i++) 

 {

 char c = (char)payload[i];

 msg += c;

 }

 Serial.print("[MQTT] Mensagem recebida: ");

 Serial.println(msg); 

}

//*****************Função do DHCP IP Dinâmico********************************************************

void DHCP()

{

 

 if(WiFi.status() != WL_CONNECTED) {

 Serial.println("Reconectando no wifi...");

 WiFi.disconnect();

 WiFi.reconnect();

 delay(500);

 }

 else if(WiFi.status() == WL_CONNECTED)

 {

 return;

 }

}

//*****************************************

9312

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 212 //calibracao do sensor de tensao 

#define VOLT_CAL_S 94 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 208.39 //calibracao do sensor de tensao

#define CURRENT_CAL 14.28 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14.28 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14.28 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9312" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0521" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21004" //endereco sensor de saida 

#define RET_SENSOR "s21005" //endereco sensor de retorno 

#define SUC_SENSOR "s21008" //endereco sensor de sucção 

#define LL_SENSOR "s21009" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21006" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21012" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21013" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21007" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21014" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21015" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21022" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21023" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21024" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21025" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21016" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21017" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21018" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:35" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:e0" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:5b" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:2c" //sucção ckt 1

#endif

9433

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 216.94 //calibracao do sensor de tensao 

#define VOLT_CAL_S 180 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 180 //calibracao do sensor de tensao

#define CURRENT_CAL 12.22 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 36 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 39 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9433" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0581" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91569" //endereco sensor de insuflamento 

#define RET_SENSOR "s91570" //endereco sensor de retorno 

#define SUC_SENSOR "s91571" //endereco sensor de sucção 

#define LL_SENSOR "s91572" //endereco sensor de linha de liquido 

#define ENT_CONDES "s91582" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91573" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91574" //endereco sensor de corrente 

#define CURR_SENSOR_S "xxxxx" //endereco sensor de corrente 

#define CURR_SENSOR_TT "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91578" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91579" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91580" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91581" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91575" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91576" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91577" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:c7" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2f:94" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:26:36" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:5f" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:2e:e7" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9495

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 223.54 //calibracao do sensor de tensao 

#define VOLT_CAL_S 180 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 180 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 36 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 39 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9495" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0585" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91625" //endereco sensor de insuflamento 

#define RET_SENSOR "s91626" //endereco sensor de retorno 

#define SUC_SENSOR "s91627" //endereco sensor de sucção 

#define LL_SENSOR "s91628" //endereco sensor de linha de liquido 

//#define EXT_SENSOR "sTesteExt" //endereco sensor de externa 

#define ENT_CONDES "s91638" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91629" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91630" //endereco sensor de corrente 

#define CURR_SENSOR_S "xxxxx" //endereco sensor de corrente 

#define CURR_SENSOR_TT "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91634" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91635" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91636" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91637" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91631" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91632" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91633" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:b9" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:47" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:83" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:a8" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:19:c2" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9496

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 450 //calibracao do sensor de tensao 

#define VOLT_CAL_S 180 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 180 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 36 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 39 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9496" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0584" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91611" //endereco sensor de insuflamento 

#define RET_SENSOR "s91612" //endereco sensor de retorno 

#define SUC_SENSOR "s91613" //endereco sensor de sucção 

#define LL_SENSOR "s91614" //endereco sensor de linha de liquido 

//#define EXT_SENSOR "sTesteExt" //endereco sensor de externa 

#define ENT_CONDES "s91624" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91615" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91616" //endereco sensor de corrente 

#define CURR_SENSOR_S "xxxxx" //endereco sensor de corrente 

#define CURR_SENSOR_TT "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91620" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91621" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91622" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91623" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91617" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91618" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91619" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:0e" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:fb" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:4d" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:cb" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:19:c2" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9502

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 111.73 //calibracao do sensor de tensao 

#define VOLT_CAL_S 109.58 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 37.71 //calibracao do sensor de tensao

#define CURRENT_CAL 11.5 //calibracao do sensor de corrente

#define CURRENT_CAL_S 11.02 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 11.44 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9502" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0548" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91507" //endereco sensor de insuflamento 

#define RET_SENSOR "s91508" //endereco sensor de retorno 

#define SUC_SENSOR "s91509" //endereco sensor de sucção 

#define LL_SENSOR "s91510" //endereco sensor de linha de liquido 

//#define EXT_SENSOR "sTesteExt" //endereco sensor de externa 

#define ENT_CONDES "s91524" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91511" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s91512" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s91513" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91514" //endereco sensor de corrente 

#define CURR_SENSOR_S "s91515" //endereco sensor de corrente 

#define CURR_SENSOR_TT "s91516" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91520" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91521" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91522" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91523" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91517" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91518" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91519" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:06" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:e4" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:ab" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:25:dc" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:2e:b3" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9503

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxsxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 109.57 //calibracao do sensor de tensao 

#define VOLT_CAL_S 112.13 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 34.18 //calibracao do sensor de tensao

#define CURRENT_CAL 16.65 //calibracao do sensor de corrente

#define CURRENT_CAL_S 17.57 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 17.69 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9503" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0549" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91472" //endereco sensor de insuflamento 

#define RET_SENSOR "s91473" //endereco sensor de retorno 

#define SUC_SENSOR "s91474" //endereco sensor de sucção 

#define LL_SENSOR "s91475" //endereco sensor de linha de liquido 

//#define EXT_SENSOR "sTesteExt" //endereco sensor de externa 

#define ENT_CONDES "s91525" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91476" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s91477" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s91478" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91479" //endereco sensor de corrente 

#define CURR_SENSOR_S "s91480" //endereco sensor de corrente 

#define CURR_SENSOR_TT "s91481" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91485" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91486" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91487" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91488" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91482" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91483" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91484" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:08" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:58" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:26:13" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:94" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:2e:b3" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9504

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 106.63 //calibracao do sensor de tensao 

#define VOLT_CAL_S 107.23 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 35.52 //calibracao do sensor de tensao

#define CURRENT_CAL 12.17 //calibracao do sensor de corrente

#define CURRENT_CAL_S 12.41 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 11.84 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9504" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0547" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91489" //endereco sensor de insuflamento 

#define RET_SENSOR "s91490" //endereco sensor de retorno 

#define SUC_SENSOR "s91491" //endereco sensor de sucção 

#define LL_SENSOR "s91492" //endereco sensor de linha de liquido 

//#define EXT_SENSOR "sTesteExt" //endereco sensor de externa 

#define ENT_CONDES "s91506" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91493" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s91494" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s91495" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91496" //endereco sensor de corrente 

#define CURR_SENSOR_S "s91497" //endereco sensor de corrente 

#define CURR_SENSOR_TT "s91498" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91502" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91503" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91504" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91505" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91499" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91500" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91501" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:db" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:e0" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:cf" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:76" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:2e:b3" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9603

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 165.76 //calibracao do sensor de tensao 

#define VOLT_CAL_S 104.57 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 311.8 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9603" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0528" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21127" //endereco sensor de saida 

#define RET_SENSOR "s21128" //endereco sensor de retorno 

#define SUC_SENSOR "s21129" //endereco sensor de sucção 

#define LL_SENSOR "s21130" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21131" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21140" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21141" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21132" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21142" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21143" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21136" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21137" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21138" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21139" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21133" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21134" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21135" //endereco sensor de corrente

#define SENS_TEMP_RET "xx:xx:xx:xx:xx:xx" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:25:f8" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:40" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:c5" //sucção ckt 1

#endif

9604

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 305.9 //calibracao do sensor de tensao 

#define VOLT_CAL_S 98.61 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 153.57 //calibracao do sensor de tensao 

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 13 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9604" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0527" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21110" //endereco sensor de saida 

#define RET_SENSOR "s21111" //endereco sensor de retorno 

#define SUC_SENSOR "s21112" //endereco sensor de sucção 

#define LL_SENSOR "s21113" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21114" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21123" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21124" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21115" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21125" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21126" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21119" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21120" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21121" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21122" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21116" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21117" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21118" //endereco sensor de corrente

#define SENS_TEMP_RET "xx:xx:xx:xx:xx:xx" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:26:18" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:cd" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:7f" //sucção ckt 1

#endif

9606

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 83.22 //calibracao do sensor de tensao 

#define VOLT_CAL_S 82.4 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 75.85 //calibracao do sensor de tensao

#define CURRENT_CAL 17.72 //calibracao do sensor de corrente

#define CURRENT_CAL_S 16.18 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 15.7 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9606" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0530" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21161" //endereco sensor de saida 

#define RET_SENSOR "s21162" //endereco sensor de retorno 

#define SUC_SENSOR "s21163" //endereco sensor de sucção 

#define LL_SENSOR "s21164" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21165" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21174" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21175" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21166" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21176" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21177" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21170" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21171" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21172" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21173" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21167" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21168" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21169" //endereco sensor de corrente

#define SENS_TEMP_RET "xx:xx:xx:xx:xx:xx" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:d1" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:b8" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:3f" //sucção ckt 1

#endif

9607

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

#define VOLT_CAL 112.57 //calibracao do sensor de tensao 

#define VOLT_CAL_S 112.24 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 531 //calibracao do sensor de tensao 

#define CURRENT_CAL 13.31 //calibracao do sensor de corrente

#define CURRENT_CAL_S 16.08 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 10.9 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9607" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0524" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21059" //endereco sensor de saida 

#define RET_SENSOR "s21060" //endereco sensor de retorno 

#define SUC_SENSOR "s21061" //endereco sensor de sucção 

#define LL_SENSOR "s21062" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21063" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21072" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21073" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21064" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21074" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21075" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21068" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21069" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21070" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21071" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21065" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21066" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21067" //endereco sensor de corrente

#define SENS_TEMP_RET "xx:xx:xx:xx:xx:xx" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:b2" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:49" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:bb" //sucção ckt 1

#endif

9692

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar no gerenciador

#define VOLT_CAL 210.38 //calibracao do sensor de tensao 

#define VOLT_CAL_S 180 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 180 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 36 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 39 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9692" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0546" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91459" //endereco sensor de insuflamento 

#define RET_SENSOR "s91460" //endereco sensor de retorno 

#define SUC_SENSOR "s91461" //endereco sensor de sucção 

#define LL_SENSOR "s91462" //endereco sensor de linha de liquido 

#define ENT_CONDES "s91540" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91463" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91464" //endereco sensor de corrente 

#define CURR_SENSOR_S "xxxxx" //endereco sensor de corrente 

#define CURR_SENSOR_TT "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91468" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91469" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91470" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91471" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91465" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91466" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91467" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:32" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:ed" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:26:15" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:ad" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:19:7d" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9758

#include <stdio.h>

#include <WiFi.h>

#include <MQTT.h>

#include <SPI.h>

#include "DallasTemperature.h"

#include "EmonLib.h"

#include <PubSubClient.h>

#include <time.h>

#include <ArduinoJson.h>

#include "ESPDateTime.h"

#include <esp_task_wdt.h> //Biblioteca do watchdog

//#define MDASH_APP_NAME "BLE_31364"

//#include <mDash.h>

#include <BLEDevice.h>

#include <BLEUtils.h>

#include <BLEScan.h>

#include <BLEAdvertisedDevice.h>

void BLE();

void connect2();

void HoraData1();

void HoraData2();

void Temperaturas();

void conectarEnviar();

void Correntes();

void Tensoes();

void DHCP();

//***********Define o nome da rede, senha para conexão e os endereços para conexão********************

const char* rede = "SmartVac Telemetria";

const char* senha = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; procurar

const char* SERVIDOR = "web.smartvac.app"; 

int PORTA = 1883;

 

//***************************************Define os itens do MQTT **************************************

WiFiClient Client;

PubSubClient MQTT(Client);

//***************Definição dos pinos para os sensores de temperatura, corrente e tensão****************

#define ONE_WIRE_BUS_PINA 14 // Temperatura

#define ONE_WIRE_BUS_PINB 36 // Temperatura

#define PIN_CURR_R 34 // Corrente R

#define PIN_CURR_S 36 // Corrente S

#define PIN_CURR_T 39 // Corrente T

#define PIN_VOLT_R 35 // Tensão R

#define PIN_VOLT_S 32 // Tensão S

#define PIN_VOLT_T 33 // Tensão T

//#define DEVICE_PASSWORD "oh099QByIVRdERWq4CRijnA"

//******************************Variaveis Globais******************************************************

 

float TempIns;

float TempRet;

float TempSuc;

float TempDes;

float TempExt;

float TempExt2;

float BLERet;

float BLESuc;

float BLEIns;

float BLELinha;

float BLEExt;

float BLEX;

float BLEY;

float BLEZ;

float Bat_ins;

float Bat_ret;

float Bat_linha;

float Bat_suc;

float Bat_ext;

uint16_t voltage;

int16_t accX;

int16_t accY;

int16_t accZ;

std::map<std::string, float> macTemperatures;

time_t timer;

time_t timeStemp;

int diferenca=0;

int difOitoHoras=0;

//***************************Abre a instância OneWire***************************************

OneWire oneWireA(ONE_WIRE_BUS_PINA);

OneWire oneWireB(ONE_WIRE_BUS_PINB);

//*****************Passagem de dados do one wire para o Dallas******************************

DallasTemperature sensorsA(&oneWireA);

DallasTemperature sensorsB(&oneWireB);

// Declaração das variaveis para medição de corrente e tensão

EnergyMonitor emon1,emon2,emon3,emon4,emon5,emon6;

double Irms1,Irms2, Irms3;

double Vrms4, Vrms5, Vrms6;

//****************************Calibração***************************************************

#define VOLT_CAL1 263.38 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL2 0000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL3 0000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL1 17.88 //17.7VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL2 00000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL3 0000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

//*****************Declaração endereço sensores de temperatura******************************

DeviceAddress Probe01 = { 0x28, 0x6F, 0x2A, 0x95, 0xF0, 0x01, 0x3C, 0x88 }; //Insuflamento

DeviceAddress Probe02 = { 0x28, 0xAD, 0xD3, 0x56, 0xB5, 0x01, 0x3C, 0x99 }; //Retorno

DeviceAddress Probe03 = { 0x28, 0x7D, 0x6D, 0x95, 0xF0, 0x01, 0x3C, 0x05 }; //Sucção 

DeviceAddress Probe04 = { 0x28, 0xC1, 0x30, 0x95, 0xF0, 0x01, 0x3C, 0x06 }; //Descarga

DeviceAddress Probe05 = { 0x28, 0x9C, 0x44, 0x56, 0xB5, 0x01, 0x3C, 0xA5 }; //Externa

DeviceAddress Probe06 = { 0x28, 0xC9, 0x27, 0x95, 0xF0, 0x01, 0x3C, 0x8A }; //Externa Reserva (entrada do condensador) 

//*****************Setup do hardware********************************************************

BLEScan* pBLEScan;

/*----------------------------------------------------------------------------------------------------------------

// Lista de sensores BLE. SEMPRE SEGUIR A ORDEM: Insuflamento, Retorno, Sucção, Linha de Líquido/Descarga, Externa.

--------------------------------------------------------------------------------------------------------------------*/

std::string macAddresses[] = {

 "bc:57:29:0e:2e:c1", //Insuflamento

 "bc:57:29:0e:19:9d", //Retorno

 "bc:57:29:0e:25:e9", // Sucção

 "bc:57:29:0e:26:10", // Linha De Líquido/ Descarga

 "bc:57:29:0e:26:2b" //Externa

};

// Keep track of the current MAC address index we are looking for

int currentMacIndex = 0;

const int numMacAddresses = sizeof(macAddresses) / sizeof(macAddresses[0]);

class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {

 void onResult(BLEAdvertisedDevice advertisedDevice) {

 std::string strServiceData = advertisedDevice.getServiceData();

 std::string mac = advertisedDevice.getAddress().toString();

 

 

 // Only proceed if the MAC address matches the current one we are looking for

 if(mac == macAddresses[currentMacIndex]){

 uint8_t* payload = (uint8_t*)strServiceData.c_str();

 int len = strServiceData.length();

 Serial.print("Received payload from ");

 Serial.print(mac.c_str());

 Serial.print(": ");

 for(int i = 0; i < len; i++){

 if(payload[i] < 16) Serial.print("0"); // If less than 16, prepend with '0' to maintain 2 hex digits

 Serial.print(payload[i], HEX);

 }

 Serial.println();

 int offset = 2; // Starting offset after frame type and version tag

 uint8_t sensorMask = payload[offset++];

 if(sensorMask & 0x01) { // Voltage

 uint16_t voltage = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Voltage: ");

 Serial.print(voltage);

 Serial.println(" mV");

 if (mac == macAddresses[0]) { //Insuflamento

 

 Bat_ins = voltage;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 Bat_ret = voltage;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 Bat_suc = voltage;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 Bat_linha = voltage;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 Bat_ext = voltage;

 }

 }

 if(sensorMask & 0x02) { // Temperature

 uint16_t tempRaw = (payload[offset] << 8) | payload[offset + 1];

 float temp = tempRaw / 256.0;

 offset += 2;

 Serial.print("Temperature: ");

 Serial.print(temp);

 Serial.println(" °C");

 if (mac == macAddresses[0]) { //Insuflamento

 // ArraySensores[0] = temp;

 BLEIns = temp;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 BLERet = temp;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 BLESuc = temp;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 BLELinha = temp;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 BLEExt = temp;

 }

 }

 if(sensorMask & 0x08) { // Acceleration

 int16_t accX = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accY = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accZ = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Acceleration - X: ");

 Serial.print(accX);

 Serial.println(" mg");

 Serial.print("Y: ");

 Serial.print(accY);

 Serial.println(" mg");

 Serial.print("Z: ");

 Serial.print(accZ);

 Serial.println(" mg");

 if (mac == macAddresses[3]) // Se for o sensor de sucção, lê as vibrações

 {

 

 BLEX = accX;

 BLEY = accY;

 BLEZ = accZ;

 

 }

 }

 

 Serial.println("--------------------"); // Separator for readability

 

 // Move to the next MAC address in the list

 currentMacIndex = (currentMacIndex + 1) % numMacAddresses;

 }

 }

 

};

void setup() {

 // Serial para leitura dos dados

 Serial.begin(115200);

 // Inicia o Wifi

 WiFi.mode(WIFI_STA);

 WiFi.begin(rede, senha);

 //Inicia o password do MDash

 //mDashBegin(DEVICE_PASSWORD);

 // Estabelece o DHCP para conexão com ip dinâmico

 DHCP();

 

 //Inicia sensores

 sensorsA.begin();

 sensorsB.begin(); 

 // Seta a resolução do sensor, menor mais rápido

 sensorsA.setResolution(Probe01, 12);

 sensorsA.setResolution(Probe02, 12);

 sensorsB.setResolution(Probe03, 12);

 sensorsB.setResolution(Probe04, 12);

 sensorsA.setResolution(Probe05, 12);

 sensorsB.setResolution(Probe06, 12);

 // Define os pinos e resolução do sensor de corrente 

 emon1.current(PIN_CURR_R, CURR_CAL1); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon2.current(PIN_CURR_S, CURR_CAL2); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon3.current(PIN_CURR_T, CURR_CAL3); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 

 // Definição do pino para tensão

 emon4.voltage(PIN_VOLT_R, VOLT_CAL1, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon5.voltage(PIN_VOLT_S, VOLT_CAL2, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon6.voltage(PIN_VOLT_T, VOLT_CAL3, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

//********************************************************************

 //Indica para o objeto "MQTT" em que servidor e em que porta iremos nos conectar

 

 MQTT.setServer(SERVIDOR,PORTA);

 MQTT.setCallback(mqtt_callback);

 connect2();

 // Inicia o timer

 HoraData1();

 //Watchdog

 esp_task_wdt_init(10800, true);

 esp_task_wdt_add(NULL);

 

 //BLE

 BLEDevice::init("");

 pBLEScan = BLEDevice::getScan();

 pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());

 pBLEScan->setActiveScan(true);

 pBLEScan->setInterval(100);

 pBLEScan->setWindow(99);

 }

//*****************Função loop***********************************************************

 

void loop() {

 conectarEnviar();

 

 }

//*****************Função do timer********************************************************

 

void HoraData1()

{

 const char tenn[]="CST-3";

 DateTime.setTimeZone(tenn);

 DateTime.setServer("ntp02.oal.ul.pt");

 DateTime.begin(); 

 int timer = DateTime.getTime();

 

 timeval tv;//Cria a estrutura temporaria para funcao abaixo.

 tv.tv_sec = timer;//Atribui minha data atual.

 settimeofday(&tv, NULL);//Atualiza a data e hora

 

 //String hora = String(String(dia) + String("/") + String(mes) + String("/") + String(ano) + String(" ") + String(hora) + String(":") + String(minuto) + String(":") + String(segundo));

}

//*****************Função do timer ****************************************************************************

void HoraData2()

{

 struct tm data;

 time_t tt = time(NULL);//Obtem o tempo atual em segundos. Utilize isso sempre que precisar obter o tempo atual

 //data = *gmtime(&tt);//Converte o tempo atual e atribui na estrutura

 diferenca=tt-timeStemp;//faz a conta para verificar se a diferença é de 2 segundos para os envios

 difOitoHoras=tt-timer; //faz a conta para verificar se a diferença é de 28800 segundos para os envios

 timeStemp=tt;

 

}

//*****************Função para publicar em formato JSON********************************************************

void Publish() {

 

JsonDocument doc1;

// StaticJsonDocument<300> doc;

doc1["t"] = timeStemp;

doc1["s91372"] = Irms1; 

//doc1["s91345"] = Irms2; 

//doc1["s91346"] = Irms3; 

doc1["s91371"] = Vrms4; 

//doc1["s91342"] = Vrms5; 

//doc1["s91343"] = Vrms6;

doc1["s91373"] = BLEX;

String STD1;

JsonDocument doc2;

doc2["t"] = timeStemp;

doc2["s91367"] = BLEIns;

doc2["s91368"] = BLERet;

doc2["s91369"] = BLESuc;

doc2["s91370"] = BLELinha; 

doc2["s91380"] = BLEExt;

doc2["s91374"] = BLEY;

doc2["s91375"] = BLEZ;

String STD2;

JsonDocument doc3;

doc3["t"] = timeStemp;

doc3["s91376"] = Bat_ins;

doc3["s91377c"] = Bat_ret;

doc3["s91378"] = Bat_suc;

doc3["s91379"] = Bat_linha;

//doc3["bat_ext"] = Bat_ext;

String STD3;

serializeJson(doc1, STD1); 

serializeJson(doc2, STD2); 

serializeJson(doc3, STD3);

Serial.println (STD1);

Serial.println (STD2);

Serial.println (STD3);

//*****************MQTT.publish aceita apenas char, as próximas linhas convertem a string em char*****************

 int tamanho = STD1.length() + 1; //Define o tamanho da String

 char mensa1[tamanho]; //Cria um array de char com o tamanho da String

 STD1.toCharArray(mensa1, tamanho); //Converte a String para char e atribui os valores ao array

 

 int tamanho2 = STD2.length() + 1; //Define o tamanho da String

 char mensa2[tamanho2]; //Cria um array de char com o tamanho da String

 STD2.toCharArray(mensa2, tamanho2); //Converte a String para char e atribui os valores ao array

 

 int tamanho3 = STD3.length() + 1; //Define o tamanho da String

 char mensa3[tamanho3]; //Cria um array de char com o tamanho da String

 STD3.toCharArray(mensa3, tamanho3); //Converte a String para char e atribui os valores ao array

 

//****************************************************************************************************************

 MQTT.publish("v4/matr0541",mensa1); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0541",mensa2); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0541",mensa3); // Envio de dados para determinado lugar do tópico

 delay (1000);

 Serial.println("Enviou");

 delay(60000);

 }

//*****************Função de conexão no MQTT**********************************************************************

void conectarEnviar() {

 

 MQTT.loop();

 if (WiFi.status() == WL_CONNECTED && MQTT.connected()) {

 

 Serial.println("------------------");

 Serial.println("Wifi conectado e servidor conectados");

 Serial.println("------------------");

 // Calcula a ultima atualização horária e roda as leituras

 if(difOitoHoras > 28600)

 {

 

 HoraData1();

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 difOitoHoras=0;

 

 }

 else

 {

 

 HoraData2();

 if(diferenca>2)

 {

 

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 

 }

 }

 

 } 

 else if(WiFi.status() != WL_CONNECTED || !MQTT.connected())

 { 

 Serial.println("------------------");

 Serial.println("Wifi ou servidor desconectado");

 Serial.println("------------------");

 

 DHCP();

 connect2();

 

 }

 }

//*****************Função de leitura das temperaturas********************************************************

void Temperaturas() {

 

 sensorsA.requestTemperatures();

 sensorsB.requestTemperatures();

 // Serial.println("######TEMPERATURAS######");

 TempIns = (sensorsA.getTempC(Probe01));

 //Serial.print("Insuflamento: ");

 //Serial.print(TempIns);

 //Serial.println("°C");

 

 TempRet = (sensorsA.getTempC(Probe02));

 //Serial.print("Retorno: ");

 //Serial.print(TempRet);

 //Serial.println("°C");

 TempSuc = (sensorsB.getTempC(Probe03));

 //Serial.print("Sucção: ");

 //Serial.print(TempSuc);

 //Serial.println("°C");

 

 TempDes = (sensorsB.getTempC(Probe04));

 //Serial.print("Descarga: ");

 //Serial.print(TempDes);

 //Serial.println("°C");

 

 TempExt = (sensorsA.getTempC(Probe05));

 //Serial.print("Externa: ");

 //Serial.print(TempExt);

 //Serial.println("°C");

 

 TempExt2 = (sensorsB.getTempC(Probe06));

 //Serial.print("Retorno Condensador: ");

 //Serial.print(TempExt2);

 //Serial.println("°C");

} 

//*****************Função de leitura das correntes********************************************************

void Correntes() {

 

 Irms1 = emon1.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms2 = emon2.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms3 = emon3.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 

}

//*****************Função de leitura das tensões**********************************************************

void Tensoes() 

{

 

emon4.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms4 = emon4.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon5.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms5 = emon5.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon6.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms6 = emon6.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO 

}

//*********************Função de leitura BLE*************************************************************

void BLE() {

 // Início da varredura BLE

 BLEScanResults foundDevices = pBLEScan->start(5, false);

 // Limpa os resultados da varredura BLE

 pBLEScan->clearResults();

}

 

//*****************Função de login e conexão MQTT********************************************************

void connect2() {

int cont=0;

 

 while (!MQTT.connect("9758", "matr4", "canudos92sc")) 

 {

 Serial.println("* Tentando se conectar ao Broker MQTT: ");

 if (MQTT.connect("9758", "matr4", "canudos92sc")) 

 {

 Serial.println("Conectado com sucesso ao broker MQTT!");

 MQTT.subscribe("/v4/matr0541"); 

 } 

 else

 {

 Serial.println("Falha ao reconectar no broker.");

 Serial.println("Havera nova tentativa de conexao em 1s");

 delay(1000);

 

 cont++;

 if(WiFi.status() != WL_CONNECTED && cont<10)

 {

 DHCP();

 }

 else

 {

 cont=0;

 Serial.println("Teste");

 }

 }

 }

}

//*****************Função de callback do servidor********************************************************

void messageReceived(String &topic, String &payload) {

 Serial.println("incoming: " + topic + " - " + payload); // Lê o que o servidor envia

 MQTT.setCallback(mqtt_callback);

}

void mqtt_callback(char* topic, byte* payload, unsigned int length) 

{

 String msg;

 

 //obtem a string do payload recebido

 for(int i = 0; i < length; i++) 

 {

 char c = (char)payload[i];

 msg += c;

 }

 Serial.print("[MQTT] Mensagem recebida: ");

 Serial.println(msg); 

}

//*****************Função do DHCP IP Dinâmico********************************************************

void DHCP()

{

 

 if(WiFi.status() != WL_CONNECTED) {

 Serial.println("Reconectando no wifi...");

 WiFi.disconnect();

 WiFi.reconnect();

 delay(500);

 }

 else if(WiFi.status() == WL_CONNECTED)

 {

 return;

 }

}

//*****************************************

9905

//*********************************************************************************************

//************* Equipamento monofásico *********************************************************

//*************************************************************************************************

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 253 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 0 //calibracao do sensor de tensao

#define CURRENT_CAL 16.7 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 0 //calibracao do sensor de corrente

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 36 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 39 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9905" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0583" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91597" //endereco sensor de insuflamento 

#define RET_SENSOR "s91598" //endereco sensor de retorno 

#define SUC_SENSOR "s91599" //endereco sensor de sucção 

#define LL_SENSOR "s91600" //endereco sensor de linha de liquido 

#define ENT_CONDES "s91610" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91601" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91602" //endereco sensor de corrente 

#define CURR_SENSOR_S "xxxxx" //endereco sensor de corrente 

#define CURR_SENSOR_TT "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91606" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91607" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91608" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91609" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91603" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91604" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91605" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:d6" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:de" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:43" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:3b" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:19:8a" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

9906

#include <stdio.h>

#include <WiFi.h>

#include <MQTT.h>

#include <SPI.h>

#include "DallasTemperature.h"

#include "EmonLib.h"

#include <PubSubClient.h>

#include <time.h>

#include <ArduinoJson.h>

#include "ESPDateTime.h"

#include <esp_task_wdt.h> //Biblioteca do watchdog

//#define MDASH_APP_NAME "BLE_31364"

//#include <mDash.h>

#include <BLEDevice.h>

#include <BLEUtils.h>

#include <BLEScan.h>

#include <BLEAdvertisedDevice.h>

void BLE();

void connect2();

void HoraData1();

void HoraData2();

void Temperaturas();

void conectarEnviar();

void Correntes();

void Tensoes();

void DHCP();

//***********Define o nome da rede, senha para conexão e os endereços para conexão********************

const char* rede = "SmartVac Telemetria";

const char* senha = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; procurar

const char* SERVIDOR = "web.smartvac.app"; 

int PORTA = 1883;

 

//***************************************Define os itens do MQTT **************************************

WiFiClient Client;

PubSubClient MQTT(Client);

//***************Definição dos pinos para os sensores de temperatura, corrente e tensão****************

#define ONE_WIRE_BUS_PINA 14 // Temperatura

#define ONE_WIRE_BUS_PINB 36 // Temperatura

#define PIN_CURR_R 34 // Corrente R

#define PIN_CURR_S 36 // Corrente S

#define PIN_CURR_T 39 // Corrente T

#define PIN_VOLT_R 35 // Tensão R

#define PIN_VOLT_S 32 // Tensão S

#define PIN_VOLT_T 33 // Tensão T

//#define DEVICE_PASSWORD "oh099QByIVRdERWq4CRijnA"

//******************************Variaveis Globais******************************************************

 

float TempIns;

float TempRet;

float TempSuc;

float TempDes;

float TempExt;

float TempExt2;

float BLERet;

float BLESuc;

float BLEIns;

float BLELinha;

float BLEExt;

float BLEX;

float BLEY;

float BLEZ;

float Bat_ins;

float Bat_ret;

float Bat_linha;

float Bat_suc;

float Bat_ext;

uint16_t voltage;

int16_t accX;

int16_t accY;

int16_t accZ;

std::map<std::string, float> macTemperatures;

time_t timer;

time_t timeStemp;

int diferenca=0;

int difOitoHoras=0;

//***************************Abre a instância OneWire***************************************

OneWire oneWireA(ONE_WIRE_BUS_PINA);

OneWire oneWireB(ONE_WIRE_BUS_PINB);

//*****************Passagem de dados do one wire para o Dallas******************************

DallasTemperature sensorsA(&oneWireA);

DallasTemperature sensorsB(&oneWireB);

// Declaração das variaveis para medição de corrente e tensão

EnergyMonitor emon1,emon2,emon3,emon4,emon5,emon6;

double Irms1,Irms2, Irms3;

double Vrms4, Vrms5, Vrms6;

//****************************Calibração***************************************************

#define VOLT_CAL1 227.87 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL2 000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL3 000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL1 15.94 //17.7VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL2 000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL3 000 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

//*****************Declaração endereço sensores de temperatura******************************

DeviceAddress Probe01 = { 0x28, 0x6F, 0x2A, 0x95, 0xF0, 0x01, 0x3C, 0x88 }; //Insuflamento

DeviceAddress Probe02 = { 0x28, 0xAD, 0xD3, 0x56, 0xB5, 0x01, 0x3C, 0x99 }; //Retorno

DeviceAddress Probe03 = { 0x28, 0x7D, 0x6D, 0x95, 0xF0, 0x01, 0x3C, 0x05 }; //Sucção 

DeviceAddress Probe04 = { 0x28, 0xC1, 0x30, 0x95, 0xF0, 0x01, 0x3C, 0x06 }; //Descarga

DeviceAddress Probe05 = { 0x28, 0x9C, 0x44, 0x56, 0xB5, 0x01, 0x3C, 0xA5 }; //Externa

DeviceAddress Probe06 = { 0x28, 0xC9, 0x27, 0x95, 0xF0, 0x01, 0x3C, 0x8A }; //Externa Reserva (entrada do condensador) 

//*****************Setup do hardware********************************************************

BLEScan* pBLEScan;

/*----------------------------------------------------------------------------------------------------------------

// Lista de sensores BLE. SEMPRE SEGUIR A ORDEM: Insuflamento, Retorno, Sucção, Linha de Líquido/Descarga, Externa.

--------------------------------------------------------------------------------------------------------------------*/

std::string macAddresses[] = {

 "bc:57:29:0e:19:74", //Insuflamento

 "bc:57:29:0e:26:25", //Retorno

 "bc:57:29:0e:26:38", // Sucção

 "bc:57:29:0e:19:8b", // Linha De Líquido/ Descarga

 "xx:xx:xx:xx:xx:xx" //Externa

};

// Keep track of the current MAC address index we are looking for

int currentMacIndex = 0;

const int numMacAddresses = sizeof(macAddresses) / sizeof(macAddresses[0]);

class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {

 void onResult(BLEAdvertisedDevice advertisedDevice) {

 std::string strServiceData = advertisedDevice.getServiceData();

 std::string mac = advertisedDevice.getAddress().toString();

 

 

 // Only proceed if the MAC address matches the current one we are looking for

 if(mac == macAddresses[currentMacIndex]){

 uint8_t* payload = (uint8_t*)strServiceData.c_str();

 int len = strServiceData.length();

 Serial.print("Received payload from ");

 Serial.print(mac.c_str());

 Serial.print(": ");

 for(int i = 0; i < len; i++){

 if(payload[i] < 16) Serial.print("0"); // If less than 16, prepend with '0' to maintain 2 hex digits

 Serial.print(payload[i], HEX);

 }

 Serial.println();

 int offset = 2; // Starting offset after frame type and version tag

 uint8_t sensorMask = payload[offset++];

 if(sensorMask & 0x01) { // Voltage

 uint16_t voltage = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Voltage: ");

 Serial.print(voltage);

 Serial.println(" mV");

 if (mac == macAddresses[0]) { //Insuflamento

 

 Bat_ins = voltage;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 Bat_ret = voltage;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 Bat_suc = voltage;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 Bat_linha = voltage;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 Bat_ext = voltage;

 }

 }

 if(sensorMask & 0x02) { // Temperature

 uint16_t tempRaw = (payload[offset] << 8) | payload[offset + 1];

 float temp = tempRaw / 256.0;

 offset += 2;

 Serial.print("Temperature: ");

 Serial.print(temp);

 Serial.println(" °C");

 if (mac == macAddresses[0]) { //Insuflamento

 // ArraySensores[0] = temp;

 BLEIns = temp;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 BLERet = temp;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 BLESuc = temp;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 BLELinha = temp;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 BLEExt = temp;

 }

 }

 if(sensorMask & 0x08) { // Acceleration

 int16_t accX = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accY = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accZ = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Acceleration - X: ");

 Serial.print(accX);

 Serial.println(" mg");

 Serial.print("Y: ");

 Serial.print(accY);

 Serial.println(" mg");

 Serial.print("Z: ");

 Serial.print(accZ);

 Serial.println(" mg");

 if (mac == macAddresses[3]) // Se for o sensor de sucção, lê as vibrações

 {

 

 BLEX = accX;

 BLEY = accY;

 BLEZ = accZ;

 

 }

 }

 

 Serial.println("--------------------"); // Separator for readability

 

 // Move to the next MAC address in the list

 currentMacIndex = (currentMacIndex + 1) % numMacAddresses;

 }

 }

 

};

void setup() {

 // Serial para leitura dos dados

 Serial.begin(115200);

 // Inicia o Wifi

 WiFi.mode(WIFI_STA);

 WiFi.begin(rede, senha);

 //Inicia o password do MDash

 //mDashBegin(DEVICE_PASSWORD);

 // Estabelece o DHCP para conexão com ip dinâmico

 DHCP();

 

 //Inicia sensores

 sensorsA.begin();

 sensorsB.begin(); 

 // Seta a resolução do sensor, menor mais rápido

 sensorsA.setResolution(Probe01, 12);

 sensorsA.setResolution(Probe02, 12);

 sensorsB.setResolution(Probe03, 12);

 sensorsB.setResolution(Probe04, 12);

 sensorsA.setResolution(Probe05, 12);

 sensorsB.setResolution(Probe06, 12);

 // Define os pinos e resolução do sensor de corrente 

 emon1.current(PIN_CURR_R, CURR_CAL1); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon2.current(PIN_CURR_S, CURR_CAL2); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon3.current(PIN_CURR_T, CURR_CAL3); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 

 // Definição do pino para tensão

 emon4.voltage(PIN_VOLT_R, VOLT_CAL1, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon5.voltage(PIN_VOLT_S, VOLT_CAL2, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon6.voltage(PIN_VOLT_T, VOLT_CAL3, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

//********************************************************************

 //Indica para o objeto "MQTT" em que servidor e em que porta iremos nos conectar

 

 MQTT.setServer(SERVIDOR,PORTA);

 MQTT.setCallback(mqtt_callback);

 connect2();

 // Inicia o timer

 HoraData1();

 //Watchdog

 esp_task_wdt_init(10800, true);

 esp_task_wdt_add(NULL);

 

 //BLE

 BLEDevice::init("");

 pBLEScan = BLEDevice::getScan();

 pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());

 pBLEScan->setActiveScan(true);

 pBLEScan->setInterval(100);

 pBLEScan->setWindow(99);

 }

//*****************Função loop***********************************************************

 

void loop() {

 conectarEnviar();

 

 }

//*****************Função do timer********************************************************

 

void HoraData1()

{

 const char tenn[]="CST-3";

 DateTime.setTimeZone(tenn);

 DateTime.setServer("ntp02.oal.ul.pt");

 DateTime.begin(); 

 int timer = DateTime.getTime();

 

 timeval tv;//Cria a estrutura temporaria para funcao abaixo.

 tv.tv_sec = timer;//Atribui minha data atual.

 settimeofday(&tv, NULL);//Atualiza a data e hora

 

 //String hora = String(String(dia) + String("/") + String(mes) + String("/") + String(ano) + String(" ") + String(hora) + String(":") + String(minuto) + String(":") + String(segundo));

}

//*****************Função do timer ****************************************************************************

void HoraData2()

{

 struct tm data;

 time_t tt = time(NULL);//Obtem o tempo atual em segundos. Utilize isso sempre que precisar obter o tempo atual

 //data = *gmtime(&tt);//Converte o tempo atual e atribui na estrutura

 diferenca=tt-timeStemp;//faz a conta para verificar se a diferença é de 2 segundos para os envios

 difOitoHoras=tt-timer; //faz a conta para verificar se a diferença é de 28800 segundos para os envios

 timeStemp=tt;

 

}

//*****************Função para publicar em formato JSON********************************************************

void Publish() {

 

JsonDocument doc1;

// StaticJsonDocument<300> doc;

doc1["t"] = timeStemp;

doc1["s21289"] = Irms1; 

//doc1["s91345"] = Irms2; 

//doc1["s91346"] = Irms3; 

doc1["s21288"] = Vrms4; 

//doc1["s91342"] = Vrms5; 

//doc1["s91343"] = Vrms6;

doc1["s21290"] = BLEX;

String STD1;

JsonDocument doc2;

doc2["t"] = timeStemp;

doc2["s21284"] = BLEIns;

doc2["s21285"] = BLERet;

doc2["s21286"] = BLESuc;

doc2["s21287"] = BLELinha; 

//doc2["BLEext"] = BLEExt;

doc2["s21291"] = BLEY;

doc2["s21292"] = BLEZ;

String STD2;

JsonDocument doc3;

doc3["t"] = timeStemp;

doc3["s21293"] = Bat_ins;

doc3["s21294"] = Bat_ret;

doc3["s21295"] = Bat_suc;

doc3["s21296"] = Bat_linha;

//doc3["bat_ext"] = Bat_ext;

String STD3;

serializeJson(doc1, STD1); 

serializeJson(doc2, STD2); 

serializeJson(doc3, STD3);

Serial.println (STD1);

Serial.println (STD2);

Serial.println (STD3);

//*****************MQTT.publish aceita apenas char, as próximas linhas convertem a string em char*****************

 int tamanho = STD1.length() + 1; //Define o tamanho da String

 char mensa1[tamanho]; //Cria um array de char com o tamanho da String

 STD1.toCharArray(mensa1, tamanho); //Converte a String para char e atribui os valores ao array

 

 int tamanho2 = STD2.length() + 1; //Define o tamanho da String

 char mensa2[tamanho2]; //Cria um array de char com o tamanho da String

 STD2.toCharArray(mensa2, tamanho2); //Converte a String para char e atribui os valores ao array

 

 int tamanho3 = STD3.length() + 1; //Define o tamanho da String

 char mensa3[tamanho3]; //Cria um array de char com o tamanho da String

 STD3.toCharArray(mensa3, tamanho3); //Converte a String para char e atribui os valores ao array

 

//****************************************************************************************************************

 MQTT.publish("v4/matr0537",mensa1); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0537",mensa2); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0537",mensa3); // Envio de dados para determinado lugar do tópico

 delay (1000);

 Serial.println("Enviou");

 delay(60000);

 }

//*****************Função de conexão no MQTT**********************************************************************

void conectarEnviar() {

 

 MQTT.loop();

 if (WiFi.status() == WL_CONNECTED && MQTT.connected()) {

 

 Serial.println("------------------");

 Serial.println("Wifi conectado e servidor conectados");

 Serial.println("------------------");

 // Calcula a ultima atualização horária e roda as leituras

 if(difOitoHoras > 28600)

 {

 

 HoraData1();

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 difOitoHoras=0;

 

 }

 else

 {

 

 HoraData2();

 if(diferenca>2)

 {

 

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 

 }

 }

 

 } 

 else if(WiFi.status() != WL_CONNECTED || !MQTT.connected())

 { 

 Serial.println("------------------");

 Serial.println("Wifi ou servidor desconectado");

 Serial.println("------------------");

 

 DHCP();

 connect2();

 

 }

 }

//*****************Função de leitura das temperaturas********************************************************

void Temperaturas() {

 

 sensorsA.requestTemperatures();

 sensorsB.requestTemperatures();

 // Serial.println("######TEMPERATURAS######");

 TempIns = (sensorsA.getTempC(Probe01));

 //Serial.print("Insuflamento: ");

 //Serial.print(TempIns);

 //Serial.println("°C");

 

 TempRet = (sensorsA.getTempC(Probe02));

 //Serial.print("Retorno: ");

 //Serial.print(TempRet);

 //Serial.println("°C");

 TempSuc = (sensorsB.getTempC(Probe03));

 //Serial.print("Sucção: ");

 //Serial.print(TempSuc);

 //Serial.println("°C");

 

 TempDes = (sensorsB.getTempC(Probe04));

 //Serial.print("Descarga: ");

 //Serial.print(TempDes);

 //Serial.println("°C");

 

 TempExt = (sensorsA.getTempC(Probe05));

 //Serial.print("Externa: ");

 //Serial.print(TempExt);

 //Serial.println("°C");

 

 TempExt2 = (sensorsB.getTempC(Probe06));

 //Serial.print("Retorno Condensador: ");

 //Serial.print(TempExt2);

 //Serial.println("°C");

} 

//*****************Função de leitura das correntes********************************************************

void Correntes() {

 

 Irms1 = emon1.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms2 = emon2.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms3 = emon3.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 

}

//*****************Função de leitura das tensões**********************************************************

void Tensoes() 

{

 

emon4.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms4 = emon4.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon5.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms5 = emon5.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon6.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms6 = emon6.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO 

}

//*********************Função de leitura BLE*************************************************************

void BLE() {

 // Início da varredura BLE

 BLEScanResults foundDevices = pBLEScan->start(5, false);

 // Limpa os resultados da varredura BLE

 pBLEScan->clearResults();

}

 

//*****************Função de login e conexão MQTT********************************************************

void connect2() {

int cont=0;

 

 while (!MQTT.connect("9906", "matr4", "canudos92sc")) 

 {

 Serial.println("* Tentando se conectar ao Broker MQTT: ");

 if (MQTT.connect("9906", "matr4", "canudos92sc")) 

 {

 Serial.println("Conectado com sucesso ao broker MQTT!");

 MQTT.subscribe("/v4/matr0537"); 

 } 

 else

 {

 Serial.println("Falha ao reconectar no broker.");

 Serial.println("Havera nova tentativa de conexao em 1s");

 delay(1000);

 

 cont++;

 if(WiFi.status() != WL_CONNECTED && cont<10)

 {

 DHCP();

 }

 else

 {

 cont=0;

 Serial.println("Teste");

 }

 }

 }

}

//*****************Função de callback do servidor********************************************************

void messageReceived(String &topic, String &payload) {

 Serial.println("incoming: " + topic + " - " + payload); // Lê o que o servidor envia

 MQTT.setCallback(mqtt_callback);

}

void mqtt_callback(char* topic, byte* payload, unsigned int length) 

{

 String msg;

 

 //obtem a string do payload recebido

 for(int i = 0; i < length; i++) 

 {

 char c = (char)payload[i];

 msg += c;

 }

 Serial.print("[MQTT] Mensagem recebida: ");

 Serial.println(msg); 

}

//*****************Função do DHCP IP Dinâmico********************************************************

void DHCP()

{

 

 if(WiFi.status() != WL_CONNECTED) {

 Serial.println("Reconectando no wifi...");

 WiFi.disconnect();

 WiFi.reconnect();

 delay(500);

 }

 else if(WiFi.status() == WL_CONNECTED)

 {

 return;

 }

}

//*****************************************

9955 CKT 1

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" PROCURAR

#define VOLT_CAL 182.78 //calibracao do sensor de tensao 

#define VOLT_CAL_S 184.76 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 183.7 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "9955" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0535a" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21234" //endereco sensor de saida 

#define RET_SENSOR "s21235" //endereco sensor de retorno 

#define SUC_SENSOR "s21238" //endereco sensor de sucção 

#define LL_SENSOR "s21239" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21236" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21242" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21243" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21237" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21244" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21245" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21252" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21253" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21254" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21255" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21246" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21247" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21248" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:56" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:7c" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:55" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:9a" //sucção ckt 1

#endif

9955 CKT 2

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "XXXXXXXXXXXXXXXXXXXXXXXXXX" PROCURAR

#define VOLT_CAL 71.47 //calibracao do sensor de tensao 

#define VOLT_CAL_S 72.23 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 79.51 //calibracao do sensor de tensao

#define CURRENT_CAL 18.11 //calibracao do sensor de corrente

#define CURRENT_CAL_S 17.29 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 16.09 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE 

#define EQUIPAMENT_TAG "9955" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0535" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "xxxxxx" //endereco sensor de saida 

#define RET_SENSOR "xxxxxxx" //endereco sensor de retorno 

#define SUC_SENSOR "s21240" //endereco sensor de sucção 

#define LL_SENSOR "s21241" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21256" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21257" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21258" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_RET "xxxxxx" //endereco sensor de corrente

#define BAT_SENSOR_SUC "xxxxxx" //endereco sensor de corrente

#define BAT_SENSOR_LL "xxxxxxx" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21249" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21250" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21251" //endereco sensor de corrente

#define SENS_TEMP_RET "xx:xx:xx:xx:xx:xx" //entrada de água 

#define SENS_TEMP_INSU "xx:xx:xx:xx:xx:xx" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:26:34" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:26:2c" //sucção ckt 1

#endif

10026

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 244.53 //calibracao do sensor de tensao 

#define VOLT_CAL_S 180 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 180 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 36 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 39 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "10026" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0578" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91526" //endereco sensor de insuflamento 

#define RET_SENSOR "s91527" //endereco sensor de retorno 

#define SUC_SENSOR "s91528" //endereco sensor de sucção 

#define LL_SENSOR "s91529" //endereco sensor de linha de liquido 

//#define EXT_SENSOR "sTesteExt" //endereco sensor de externa 

#define ENT_CONDES "s91539" //endereco sensor de externa 

#define SAD_CONDES "xxxxxx" //

#define VOLT_SENSOR_R "s91530" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91531" //endereco sensor de corrente 

#define CURR_SENSOR_S "xxxxx" //endereco sensor de corrente 

#define CURR_SENSOR_TT "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_INS "s91535" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91536" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91537" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91538" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91532" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91533" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91534" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:f4" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:c0" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:a3" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:b7" //sucção ckt 1

#define SENS_TEMP_ENT_CONDENS "bc:57:29:0e:19:81" //externa

#define SENS_TEMP_SAD_CONDENS "bc:57:29:0e:xx:xx" //endereço para a leitura do sensor de saida da condensação

#endif

10108

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 244.2 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0000 //ignorar 

#define VOLT_CAL_TT 00000 //ignorar

#define CURRENT_CAL 17.22 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0000 //ignorar

#define CURRENT_CAL_TT 0000000 //ignorar

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //ignorar 

#define PIN_CURRENT_TT 36 //ignorar 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //ignorar

#define PIN_VOLTAGE_TT 39 //ignorar

#define EQUIPAMENT_TAG "10108" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0538" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21297" //endereco sensor de saida 

#define RET_SENSOR "s21298" //endereco sensor de retorno 

#define SUC_SENSOR "s21299" //endereco sensor de sucção 

#define LL_SENSOR "s21300" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21301" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21302" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21306" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21307" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21308" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21309" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21303" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21304" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21305" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:b1" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:26:09" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:96" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:6e" //sucção ckt 1

#endif

10254

#include <stdio.h>

#include <WiFi.h>

#include <MQTT.h>

#include <SPI.h>

#include "DallasTemperature.h"

#include "EmonLib.h"

#include <PubSubClient.h>

#include <time.h>

#include <ArduinoJson.h>

#include "ESPDateTime.h"

#include <esp_task_wdt.h> //Biblioteca do watchdog

//#define MDASH_APP_NAME "BLE_31364"

//#include <mDash.h>

#include <BLEDevice.h>

#include <BLEUtils.h>

#include <BLEScan.h>

#include <BLEAdvertisedDevice.h>

void BLE();

void connect2();

void HoraData1();

void HoraData2();

void Temperaturas();

void conectarEnviar();

void Correntes();

void Tensoes();

void DHCP();

//***********Define o nome da rede, senha para conexão e os endereços para conexão********************

const char* rede = "SmartVac Telemetria";

const char* senha = "xxxxxxxxxxxxxxxxxxxxxx";

const char* SERVIDOR = "web.smartvac.app"; 

int PORTA = 1883;

 

//***************************************Define os itens do MQTT **************************************

WiFiClient Client;

PubSubClient MQTT(Client);

//***************Definição dos pinos para os sensores de temperatura, corrente e tensão****************

#define ONE_WIRE_BUS_PINA 14 // Temperatura

#define ONE_WIRE_BUS_PINB 36 // Temperatura

#define PIN_CURR_R 32 // Corrente R

#define PIN_CURR_S 36 // Corrente S

#define PIN_CURR_T 39 // Corrente T

#define PIN_VOLT_R 33 // Tensão R

#define PIN_VOLT_S 34 // Tensão S

#define PIN_VOLT_T 35 // Tensão T

//#define DEVICE_PASSWORD "oh099QByIVRdERWq4CRijnA"

//******************************Variaveis Globais******************************************************

 

float TempIns;

float TempRet;

float TempSuc;

float TempDes;

float TempExt;

float TempExt2;

float BLERet;

float BLESuc;

float BLEIns;

float BLELinha;

float BLEExt;

float BLEX;

float BLEY;

float BLEZ;

float Bat_ins;

float Bat_ret;

float Bat_linha;

float Bat_suc;

float Bat_ext;

uint16_t voltage;

int16_t accX;

int16_t accY;

int16_t accZ;

std::map<std::string, float> macTemperatures;

time_t timer;

time_t timeStemp;

int diferenca=0;

int difOitoHoras=0;

//***************************Abre a instância OneWire***************************************

OneWire oneWireA(ONE_WIRE_BUS_PINA);

OneWire oneWireB(ONE_WIRE_BUS_PINB);

//*****************Passagem de dados do one wire para o Dallas******************************

DallasTemperature sensorsA(&oneWireA);

DallasTemperature sensorsB(&oneWireB);

// Declaração das variaveis para medição de corrente e tensão

EnergyMonitor emon1,emon2,emon3,emon4,emon5,emon6;

double Irms1,Irms2, Irms3;

double Vrms4, Vrms5, Vrms6;

//****************************Calibração***************************************************

#define VOLT_CAL1 191.34 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL2 179.68 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define VOLT_CAL3 177.89 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL1 14.25 //17.7VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL2 13.04 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

#define CURR_CAL3 16.41 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO)

//*****************Declaração endereço sensores de temperatura******************************

DeviceAddress Probe01 = { 0x28, 0x6F, 0x2A, 0x95, 0xF0, 0x01, 0x3C, 0x88 }; //Insuflamento

DeviceAddress Probe02 = { 0x28, 0xAD, 0xD3, 0x56, 0xB5, 0x01, 0x3C, 0x99 }; //Retorno

DeviceAddress Probe03 = { 0x28, 0x7D, 0x6D, 0x95, 0xF0, 0x01, 0x3C, 0x05 }; //Sucção 

DeviceAddress Probe04 = { 0x28, 0xC1, 0x30, 0x95, 0xF0, 0x01, 0x3C, 0x06 }; //Descarga

DeviceAddress Probe05 = { 0x28, 0x9C, 0x44, 0x56, 0xB5, 0x01, 0x3C, 0xA5 }; //Externa

DeviceAddress Probe06 = { 0x28, 0xC9, 0x27, 0x95, 0xF0, 0x01, 0x3C, 0x8A }; //Externa Reserva (entrada do condensador) 

//*****************Setup do hardware********************************************************

BLEScan* pBLEScan;

/*----------------------------------------------------------------------------------------------------------------

// Lista de sensores BLE. SEMPRE SEGUIR A ORDEM: Insuflamento, Retorno, Sucção, Linha de Líquido/Descarga, Externa.

--------------------------------------------------------------------------------------------------------------------*/

std::string macAddresses[] = {

 "bc:57:29:0e:2e:f2", //Insuflamento

 "bc:57:29:0e:2e:c4", //Retorno

 "bc:57:29:0e:19:71", // Sucção

 "bc:57:29:0e:19:cc", // Linha De Líquido/ Descarga

 "xx:xx:xx:xx:xx:xx" //Externa

};

// Keep track of the current MAC address index we are looking for

int currentMacIndex = 0;

const int numMacAddresses = sizeof(macAddresses) / sizeof(macAddresses[0]);

class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {

 void onResult(BLEAdvertisedDevice advertisedDevice) {

 std::string strServiceData = advertisedDevice.getServiceData();

 std::string mac = advertisedDevice.getAddress().toString();

 

 

 // Only proceed if the MAC address matches the current one we are looking for

 if(mac == macAddresses[currentMacIndex]){

 uint8_t* payload = (uint8_t*)strServiceData.c_str();

 int len = strServiceData.length();

 Serial.print("Received payload from ");

 Serial.print(mac.c_str());

 Serial.print(": ");

 for(int i = 0; i < len; i++){

 if(payload[i] < 16) Serial.print("0"); // If less than 16, prepend with '0' to maintain 2 hex digits

 Serial.print(payload[i], HEX);

 }

 Serial.println();

 int offset = 2; // Starting offset after frame type and version tag

 uint8_t sensorMask = payload[offset++];

 if(sensorMask & 0x01) { // Voltage

 uint16_t voltage = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Voltage: ");

 Serial.print(voltage);

 Serial.println(" mV");

 if (mac == macAddresses[0]) { //Insuflamento

 

 Bat_ins = voltage;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 Bat_ret = voltage;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 Bat_suc = voltage;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 Bat_linha = voltage;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 Bat_ext = voltage;

 }

 }

 if(sensorMask & 0x02) { // Temperature

 uint16_t tempRaw = (payload[offset] << 8) | payload[offset + 1];

 float temp = tempRaw / 256.0;

 offset += 2;

 Serial.print("Temperature: ");

 Serial.print(temp);

 Serial.println(" °C");

 if (mac == macAddresses[0]) { //Insuflamento

 // ArraySensores[0] = temp;

 BLEIns = temp;

 }

 else if (mac == macAddresses[1]) { //Retorno

 

 BLERet = temp;

 }

 else if (mac == macAddresses[2]) { //Sucção

 

 BLESuc = temp;

 }

 else if (mac == macAddresses[3]) { //Linha de liquido

 

 BLELinha = temp;

 }

 else if (mac == macAddresses[4]) { //Externa

 

 BLEExt = temp;

 }

 }

 if(sensorMask & 0x08) { // Acceleration

 int16_t accX = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accY = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 int16_t accZ = (payload[offset] << 8) | payload[offset + 1];

 offset += 2;

 Serial.print("Acceleration - X: ");

 Serial.print(accX);

 Serial.println(" mg");

 Serial.print("Y: ");

 Serial.print(accY);

 Serial.println(" mg");

 Serial.print("Z: ");

 Serial.print(accZ);

 Serial.println(" mg");

 if (mac == macAddresses[3]) // Se for o sensor de sucção, lê as vibrações

 {

 

 BLEX = accX;

 BLEY = accY;

 BLEZ = accZ;

 

 }

 }

 

 Serial.println("--------------------"); // Separator for readability

 

 // Move to the next MAC address in the list

 currentMacIndex = (currentMacIndex + 1) % numMacAddresses;

 }

 }

 

};

void setup() {

 // Serial para leitura dos dados

 Serial.begin(115200);

 // Inicia o Wifi

 WiFi.mode(WIFI_STA);

 WiFi.begin(rede, senha);

 //Inicia o password do MDash

 //mDashBegin(DEVICE_PASSWORD);

 // Estabelece o DHCP para conexão com ip dinâmico

 DHCP();

 

 //Inicia sensores

 sensorsA.begin();

 sensorsB.begin(); 

 // Seta a resolução do sensor, menor mais rápido

 sensorsA.setResolution(Probe01, 12);

 sensorsA.setResolution(Probe02, 12);

 sensorsB.setResolution(Probe03, 12);

 sensorsB.setResolution(Probe04, 12);

 sensorsA.setResolution(Probe05, 12);

 sensorsB.setResolution(Probe06, 12);

 // Define os pinos e resolução do sensor de corrente 

 emon1.current(PIN_CURR_R, CURR_CAL1); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon2.current(PIN_CURR_S, CURR_CAL2); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 emon3.current(PIN_CURR_T, CURR_CAL3); // Current: input pin, calibration. Cur Const= Ratio/BurdenR. 1800/62 = 29.

 

 // Definição do pino para tensão

 emon4.voltage(PIN_VOLT_R, VOLT_CAL1, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon5.voltage(PIN_VOLT_S, VOLT_CAL2, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

 emon6.voltage(PIN_VOLT_T, VOLT_CAL3, 1.7); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO / MUDANÇA DE FASE) 

//********************************************************************

 //Indica para o objeto "MQTT" em que servidor e em que porta iremos nos conectar

 

 MQTT.setServer(SERVIDOR,PORTA);

 MQTT.setCallback(mqtt_callback);

 connect2();

 // Inicia o timer

 HoraData1();

 //Watchdog

 esp_task_wdt_init(10800, true);

 esp_task_wdt_add(NULL);

 

 //BLE

 BLEDevice::init("");

 pBLEScan = BLEDevice::getScan();

 pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());

 pBLEScan->setActiveScan(true);

 pBLEScan->setInterval(100);

 pBLEScan->setWindow(99);

 }

//*****************Função loop***********************************************************

 

void loop() {

 conectarEnviar();

 

 }

//*****************Função do timer********************************************************

 

void HoraData1()

{

 const char tenn[]="CST-3";

 DateTime.setTimeZone(tenn);

 DateTime.setServer("ntp02.oal.ul.pt");

 DateTime.begin(); 

 int timer = DateTime.getTime();

 

 timeval tv;//Cria a estrutura temporaria para funcao abaixo.

 tv.tv_sec = timer;//Atribui minha data atual.

 settimeofday(&tv, NULL);//Atualiza a data e hora

 

 //String hora = String(String(dia) + String("/") + String(mes) + String("/") + String(ano) + String(" ") + String(hora) + String(":") + String(minuto) + String(":") + String(segundo));

}

//*****************Função do timer ****************************************************************************

void HoraData2()

{

 struct tm data;

 time_t tt = time(NULL);//Obtem o tempo atual em segundos. Utilize isso sempre que precisar obter o tempo atual

 //data = *gmtime(&tt);//Converte o tempo atual e atribui na estrutura

 diferenca=tt-timeStemp;//faz a conta para verificar se a diferença é de 2 segundos para os envios

 difOitoHoras=tt-timer; //faz a conta para verificar se a diferença é de 28800 segundos para os envios

 timeStemp=tt;

 

}

//*****************Função para publicar em formato JSON********************************************************

void Publish() {

 

JsonDocument doc1;

// StaticJsonDocument<300> doc;

doc1["t"] = timeStemp;

doc1["s91344"] = Irms1; 

doc1["s91345"] = Irms2; 

doc1["s91346"] = Irms3; 

doc1["s91341"] = Vrms4; 

doc1["s91342"] = Vrms5; 

doc1["s91343"] = Vrms6;

doc1["s91347"] = BLEX;

String STD1;

JsonDocument doc2;

doc2["t"] = timeStemp;

doc2["s91337"] = BLEIns;

doc2["s91338"] = BLERet;

doc2["s91339"] = BLESuc;

doc2["s91340"] = BLELinha; 

//doc2["BLEext"] = BLEExt;

doc2["s91348"] = BLEY;

doc2["s91349"] = BLEZ;

String STD2;

JsonDocument doc3;

doc3["t"] = timeStemp;

doc3["s91350"] = Bat_ins;

doc3["s91351"] = Bat_ret;

doc3["s91352"] = Bat_suc;

doc3["s91353"] = Bat_linha;

//doc3["bat_ext"] = Bat_ext;

String STD3;

serializeJson(doc1, STD1); 

serializeJson(doc2, STD2); 

serializeJson(doc3, STD3);

Serial.println (STD1);

Serial.println (STD2);

Serial.println (STD3);

//*****************MQTT.publish aceita apenas char, as próximas linhas convertem a string em char*****************

 int tamanho = STD1.length() + 1; //Define o tamanho da String

 char mensa1[tamanho]; //Cria um array de char com o tamanho da String

 STD1.toCharArray(mensa1, tamanho); //Converte a String para char e atribui os valores ao array

 

 int tamanho2 = STD2.length() + 1; //Define o tamanho da String

 char mensa2[tamanho2]; //Cria um array de char com o tamanho da String

 STD2.toCharArray(mensa2, tamanho2); //Converte a String para char e atribui os valores ao array

 

 int tamanho3 = STD3.length() + 1; //Define o tamanho da String

 char mensa3[tamanho3]; //Cria um array de char com o tamanho da String

 STD3.toCharArray(mensa3, tamanho3); //Converte a String para char e atribui os valores ao array

 

//****************************************************************************************************************

 MQTT.publish("v4/matr0540",mensa1); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0540",mensa2); // Envio de dados para determinado lugar do tópico

 delay (1000);

 MQTT.publish("v4/matr0540",mensa3); // Envio de dados para determinado lugar do tópico

 delay (1000);

 Serial.println("Enviou");

 delay(60000);

 }

//*****************Função de conexão no MQTT**********************************************************************

void conectarEnviar() {

 

 MQTT.loop();

 if (WiFi.status() == WL_CONNECTED && MQTT.connected()) {

 

 Serial.println("------------------");

 Serial.println("Wifi conectado e servidor conectados");

 Serial.println("------------------");

 // Calcula a ultima atualização horária e roda as leituras

 if(difOitoHoras > 28600)

 {

 

 HoraData1();

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 difOitoHoras=0;

 

 }

 else

 {

 

 HoraData2();

 if(diferenca>2)

 {

 

 Tensoes();

 Temperaturas();

 Correntes();

 BLE();

 Publish();

 

 }

 }

 

 } 

 else if(WiFi.status() != WL_CONNECTED || !MQTT.connected())

 { 

 Serial.println("------------------");

 Serial.println("Wifi ou servidor desconectado");

 Serial.println("------------------");

 

 DHCP();

 connect2();

 

 }

 }

//*****************Função de leitura das temperaturas********************************************************

void Temperaturas() {

 

 sensorsA.requestTemperatures();

 sensorsB.requestTemperatures();

 // Serial.println("######TEMPERATURAS######");

 TempIns = (sensorsA.getTempC(Probe01));

 //Serial.print("Insuflamento: ");

 //Serial.print(TempIns);

 //Serial.println("°C");

 

 TempRet = (sensorsA.getTempC(Probe02));

 //Serial.print("Retorno: ");

 //Serial.print(TempRet);

 //Serial.println("°C");

 TempSuc = (sensorsB.getTempC(Probe03));

 //Serial.print("Sucção: ");

 //Serial.print(TempSuc);

 //Serial.println("°C");

 

 TempDes = (sensorsB.getTempC(Probe04));

 //Serial.print("Descarga: ");

 //Serial.print(TempDes);

 //Serial.println("°C");

 

 TempExt = (sensorsA.getTempC(Probe05));

 //Serial.print("Externa: ");

 //Serial.print(TempExt);

 //Serial.println("°C");

 

 TempExt2 = (sensorsB.getTempC(Probe06));

 //Serial.print("Retorno Condensador: ");

 //Serial.print(TempExt2);

 //Serial.println("°C");

} 

//*****************Função de leitura das correntes********************************************************

void Correntes() {

 

 Irms1 = emon1.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms2 = emon2.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 Irms3 = emon3.calcIrms(1996);//Para 50Hz 1480 e para 60Hz 1996

 

}

//*****************Função de leitura das tensões**********************************************************

void Tensoes() 

{

 

emon4.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms4 = emon4.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon5.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms5 = emon5.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO

 emon6.calcVI(17,1000); //FUNÇÃO DE CÁLCULO (17 SEMICICLOS, TEMPO LIMITE PARA FAZER A MEDIÇÃO)

 Vrms6 = emon6.Vrms; //VARIÁVEL RECEBE O VALOR DE TENSÃO RMS OBTIDO 

}

//*********************Função de leitura BLE*************************************************************

void BLE() {

 // Início da varredura BLE

 BLEScanResults foundDevices = pBLEScan->start(5, false);

 // Limpa os resultados da varredura BLE

 pBLEScan->clearResults();

}

 

//*****************Função de login e conexão MQTT********************************************************

void connect2() {

int cont=0;

 

 while (!MQTT.connect("10254", "matr4", "canudos92sc")) 

 {

 Serial.println("* Tentando se conectar ao Broker MQTT: ");

 if (MQTT.connect("10254", "matr4", "canudos92sc")) 

 {

 Serial.println("Conectado com sucesso ao broker MQTT!");

 MQTT.subscribe("/v4/matr0540"); 

 } 

 else

 {

 Serial.println("Falha ao reconectar no broker.");

 Serial.println("Havera nova tentativa de conexao em 1s");

 delay(1000);

 

 cont++;

 if(WiFi.status() != WL_CONNECTED && cont<10)

 {

 DHCP();

 }

 else

 {

 cont=0;

 Serial.println("Teste");

 }

 }

 }

}

//*****************Função de callback do servidor********************************************************

void messageReceived(String &topic, String &payload) {

 Serial.println("incoming: " + topic + " - " + payload); // Lê o que o servidor envia

 MQTT.setCallback(mqtt_callback);

}

void mqtt_callback(char* topic, byte* payload, unsigned int length) 

{

 String msg;

 

 //obtem a string do payload recebido

 for(int i = 0; i < length; i++) 

 {

 char c = (char)payload[i];

 msg += c;

 }

 Serial.print("[MQTT] Mensagem recebida: ");

 Serial.println(msg); 

}

//*****************Função do DHCP IP Dinâmico********************************************************

void DHCP()

{

 

 if(WiFi.status() != WL_CONNECTED) {

 Serial.println("Reconectando no wifi...");

 WiFi.disconnect();

 WiFi.reconnect();

 delay(500);

 }

 else if(WiFi.status() == WL_CONNECTED)

 {

 return;

 }

}

//*****************************************

12837

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 495.52 //calibracao do sensor de tensao 

#define VOLT_CAL_S 10 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 10 //calibracao do sensor de tensao

#define CURRENT_CAL 17.69 //calibracao do sensor de corrente

#define CURRENT_CAL_S 10 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 10 //calibracao do sensor de corrente

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 32 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 36 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 39 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "12837" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0531" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21178" //endereco sensor de saida 

#define RET_SENSOR "s21179" //endereco sensor de retorno 

#define SUC_SENSOR "s21180" //endereco sensor de sucção 

#define LL_SENSOR "s21181" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21182" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21183" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21187" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21188" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21189" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21190" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21184" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21185" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21186" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:98" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:4b" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:95" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:3c" //sucção ckt 1

#endif

12838

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 509.22 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0000 //ignorar 

#define VOLT_CAL_TT 00000 //ignorar

#define CURRENT_CAL 17.24 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0000 //ignorar

#define CURRENT_CAL_TT 0000000 //ignorar

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //ignorar 

#define PIN_CURRENT_TT 36 //ignorar 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //ignorar

#define PIN_VOLTAGE_TT 39 //ignorar

#define EQUIPAMENT_TAG "12838" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0533" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21221" //endereco sensor de saida 

#define RET_SENSOR "s21222" //endereco sensor de retorno 

#define SUC_SENSOR "s21223" //endereco sensor de sucção 

#define LL_SENSOR "s21224" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21225" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21226" //endereco sensor de corrente ckt 1 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21230" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21231" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21232" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21233" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21227" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21228" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21229" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:df" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:d1" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:25:f2" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:ba" //sucção ckt 1

#endif

12842

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 113.42 //calibracao do sensor de tensao 

#define VOLT_CAL_S 108.7 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 506.14 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 13.125 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "12842" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0517" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20949" //endereco sensor de saida 

#define RET_SENSOR "s20950" //endereco sensor de retorno 

#define SUC_SENSOR "s20951" //endereco sensor de sucção 

#define LL_SENSOR "s20952" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20953" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s20962" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s20963" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20954" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s20964" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s20965" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s20958" //endereco sensor de corrente

#define BAT_SENSOR_RET "s20959" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s20960" //endereco sensor de corrente

#define BAT_SENSOR_LL "s20961" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20955" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20956" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20957" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:2b" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:75" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:26:00" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:88" //sucção ckt 1

#endif

12845

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 228.9 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0000 //ignorar 

#define VOLT_CAL_TT 00000 //ignorar

#define CURRENT_CAL 17.27 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0000 //ignorar

#define CURRENT_CAL_TT 0000000 //ignorar

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //ignorar 

#define PIN_CURRENT_TT 36 //ignorar 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //ignorar

#define PIN_VOLTAGE_TT 39 //ignorar

#define EQUIPAMENT_TAG "12845" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0523" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21046" //endereco sensor de saida 

#define RET_SENSOR "s21047" //endereco sensor de retorno 

#define SUC_SENSOR "s21048" //endereco sensor de sucção 

#define LL_SENSOR "s21049" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21050" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21051" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21055" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21056" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21057" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21058" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21052" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21053" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21054" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:f9" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:25:fc" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:c9" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:26:27" //sucção ckt 1

#endif

13132 ckt 2

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 72.59 //calibracao do sensor de tensao 

#define VOLT_CAL_S 68 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 80 //calibracao do sensor de tensao

#define CURRENT_CAL 15.42 //calibracao do sensor de corrente

#define CURRENT_CAL_S 16.05 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 16.33 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE 

#define EQUIPAMENT_TAG "13132" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0536" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "xxxxxx" //endereco sensor de saida 

#define RET_SENSOR "xxxxxxx" //endereco sensor de retorno 

#define SUC_SENSOR "s21265" //endereco sensor de sucção 

#define LL_SENSOR "s21266" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21281" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21282" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21283" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "xxxxx" //endereco sensor de corrente

#define BAT_SENSOR_RET "xxxxxx" //endereco sensor de corrente

#define BAT_SENSOR_SUC "xxxxxx" //endereco sensor de corrente

#define BAT_SENSOR_LL "xxxxxxx" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21274" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21275" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21276" //endereco sensor de corrente

#define SENS_TEMP_RET "xx:xx:xx:xx:xx:xx" //entrada de água 

#define SENS_TEMP_INSU "xx:xx:xx:xx:xx:xx" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:be" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:2e:df" //sucção ckt 1

#endif

13318

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#" procurar

#define VOLT_CAL 181.62 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0000 //ignorar 

#define VOLT_CAL_TT 00000 //ignorar

#define CURRENT_CAL 24.27 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0000 //ignorar

#define CURRENT_CAL_TT 0000000 //ignorar

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //ignorar 

#define PIN_CURRENT_TT 36 //ignorar 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //ignorar

#define PIN_VOLTAGE_TT 39 //ignorar

#define EQUIPAMENT_TAG "13318" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0520" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20991" //endereco sensor de saida 

#define RET_SENSOR "s20992" //endereco sensor de retorno 

#define SUC_SENSOR "s20993" //endereco sensor de sucção 

#define LL_SENSOR "s20994" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20995" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20996" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21000" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21001" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21002" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21003" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20997" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20998" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20999" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:9e" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:f6" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:b3" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:37" //sucção ckt 1

#endif

17406

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

#define VOLT_CAL 81.8 //calibracao do sensor de tensao 

#define VOLT_CAL_S 80.91 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 76.55 //calibracao do sensor de tensao

#define CURRENT_CAL 18.08 //calibracao do sensor de corrente

#define CURRENT_CAL_S 16.38 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14.8 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "17406" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0532" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21204" //endereco sensor de saida 

#define RET_SENSOR "s21205" //endereco sensor de retorno 

#define SUC_SENSOR "s21206" //endereco sensor de sucção 

#define LL_SENSOR "s21207" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21208" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21209" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21210" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21211" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21212" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21213" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21217" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21218" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21219" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21220" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21214" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21215" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21216" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:79" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:d7" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:5d" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:dc" //sucção ckt 1

#endif

17407

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

#define VOLT_CAL 79.21 //calibracao do sensor de tensao 

#define VOLT_CAL_S 80.81 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 75.66 //calibracao do sensor de tensao

#define CURRENT_CAL 18.03 //calibracao do sensor de corrente

#define CURRENT_CAL_S 16.16 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14.54 //calibracao do sensor de corrente

#define PIN_CURRENT 39 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 35 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 32 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 36 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "17407" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0516" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s20890" //endereco sensor de saida 

#define RET_SENSOR "s20891" //endereco sensor de retorno 

#define SUC_SENSOR "s20892" //endereco sensor de sucção 

#define LL_SENSOR "s20893" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s20894" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s20895" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s20896" //endereco sensor de tensao 

#define CURR_SENSOR_R "s20897" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s20898" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s20899" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s20903" //endereco sensor de corrente

#define BAT_SENSOR_RET "s20904" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s20905" //endereco sensor de corrente

#define BAT_SENSOR_LL "s20906" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s20900" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s20901" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s20902" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:2e:d2" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2f:17" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:53" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:aa" //sucção ckt 1

#endif

23916

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 354.03 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0000 //ignorar 

#define VOLT_CAL_TT 00000 //ignorar

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0000 //ignorar

#define CURRENT_CAL_TT 0000000 //ignorar

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //ignorar 

#define PIN_CURRENT_TT 36 //ignorar 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //ignorar

#define PIN_VOLTAGE_TT 39 //ignorar

#define EQUIPAMENT_TAG "23916" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0544" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91433" //endereco sensor de saida 

#define RET_SENSOR "s91434" //endereco sensor de retorno 

#define SUC_SENSOR "s91435" //endereco sensor de sucção 

#define LL_SENSOR "s91436" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s91437" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91438" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s91442" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91443" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91444" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91445" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91439" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91440" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91441" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:0c" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:ff" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:87" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:64" //sucção ckt 1

#endif

36512

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 174.38 //calibracao do sensor de tensao 

#define VOLT_CAL_S 193 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 187.33 //calibracao do sensor de tensao

#define CURRENT_CAL 14.32 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14.21 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 15.28 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "36512" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0529" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21144" //endereco sensor de saida 

#define RET_SENSOR "s21145" //endereco sensor de retorno 

#define SUC_SENSOR "s21146" //endereco sensor de sucção 

#define LL_SENSOR "s21147" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21148" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21157" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21158" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21149" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21159" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21160" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21153" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21154" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21155" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21156" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21150" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21151" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21152" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:26:29" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:26:26" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:b5" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:26:01" //sucção ckt 1

#endif

36514

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 195.62 //calibracao do sensor de tensao 

#define VOLT_CAL_S 176.52 //calibracao do sensor de tensao 

#define VOLT_CAL_TT 178.58 //calibracao do sensor de tensao

#define CURRENT_CAL 14 //calibracao do sensor de corrente

#define CURRENT_CAL_S 14 //calibracao do sensor de corrente

#define CURRENT_CAL_TT 14 //calibracao do sensor de corrente

#define PIN_CURRENT 32 //pino para a leitura de corrente 

#define PIN_CURRENT_S 36 //pino para a leitura de corrente 

#define PIN_CURRENT_TT 39 //pino para a leitura de corrente 

#define PIN_TEMPE 16 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 33 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 34 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_TT 35 //pino para a leitura da tensao PIN_VOLTAGE

#define EQUIPAMENT_TAG "36514" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0525" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s21076" //endereco sensor de saida 

#define RET_SENSOR "s21077" //endereco sensor de retorno 

#define SUC_SENSOR "s21078" //endereco sensor de sucção 

#define LL_SENSOR "s21079" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s21080" //endereco sensor de tensao 

#define VOLT_SENSOR_S "s21089" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "s21090" //endereco sensor de tensao 

#define CURR_SENSOR_R "s21081" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "s21091" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "s21092" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s21085" //endereco sensor de corrente

#define BAT_SENSOR_RET "s21086" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s21087" //endereco sensor de corrente

#define BAT_SENSOR_LL "s21088" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s21082" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s21083" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s21084" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:19:e2" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:19:86" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:b6" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:19:39" //sucção ckt 1

#endif

36627

#ifndef _ENV_H

#define _ENV_H

#define NETWORK_CLIENT "SmartVac Telemetria"

#define PASSW "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" procurar

#define VOLT_CAL 165.09 //calibracao do sensor de tensao 

#define VOLT_CAL_S 0000 //ignorar 

#define VOLT_CAL_TT 00000 //ignorar

#define CURRENT_CAL 16.32 //calibracao do sensor de corrente

#define CURRENT_CAL_S 0000 //ignorar

#define CURRENT_CAL_TT 0000000 //ignorar

#define PIN_CURRENT 34 //pino para a leitura de corrente 

#define PIN_CURRENT_S 33 //ignorar 

#define PIN_CURRENT_TT 36 //ignorar 

#define PIN_TEMPE 15 //pino para a leitura temperatura D5 no hard

#define PIN_VOLTAGE 35 //pino para a leitura da tensao PIN_VOLTAGE

#define PIN_VOLTAGE_S 32 //ignorar

#define PIN_VOLTAGE_TT 39 //ignorar

#define EQUIPAMENT_TAG "36627" //tag do equipamento, deve ser fornecido pelo spo EQUIPAMENT_TAG

#define EQUIPAMENT_TOPIC "v4/matr0545" //topico de envio, fornecido pelo spo EQUIPAMENT_TOPIC

#define INS_SENSOR "s91446" //endereco sensor de saida 

#define RET_SENSOR "s91447" //endereco sensor de retorno 

#define SUC_SENSOR "s91448" //endereco sensor de sucção 

#define LL_SENSOR "s91449" //endereco sensor de linha de liquido 

#define VOLT_SENSOR_R "s91450" //endereco sensor de tensao 

#define VOLT_SENSOR_S "xxxxxxx" //endereco sensor de tensao 

#define VOLT_SENSOR_TT "xxxxxx" //endereco sensor de tensao 

#define CURR_SENSOR_R "s91451" //endereco sensor de corrente ckt 1 

#define CURR_SENSOR_S "xxxxxx" //endereco sensor de corrente ckt 1

#define CURR_SENSOR_TT "xxxxxx" //endereco sensor de corrente ckt 1

#define BAT_SENSOR_INS "s91455" //endereco sensor de corrente

#define BAT_SENSOR_RET "s91456" //endereco sensor de corrente

#define BAT_SENSOR_SUC "s91457" //endereco sensor de corrente

#define BAT_SENSOR_LL "s91458" //endereco sensor de corrente

#define VIBR_SENSOR_X_SUC "s91452" //endereco sensor de corrente

#define VIBR_SENSOR_Y_SUC "s91453" //endereco sensor de corrente

#define VIBR_SENSOR_Z_SUC "s91454" //endereco sensor de corrente

#define SENS_TEMP_RET "bc:57:29:0e:25:f5" //entrada de água 

#define SENS_TEMP_INSU "bc:57:29:0e:2e:b8" // saída de água

#define SENS_TEMP_LL "bc:57:29:0e:19:82" //descarga ckt 1

#define SENS_TEMP_SUC "bc:57:29:0e:26:28" //sucção ckt 1

#endif

9575

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9575";

 constexpr char TOPIC[] = "v4/matr0569";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 80.57;

 static constexpr float CAL_S = 81.87;

 static constexpr float CAL_TT = 79.3;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 18.83;

 static constexpr int CAL_S = 19.17;

 static constexpr int CAL_TT = 19.09;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000243";

 constexpr char RET[] = "s100000244";

 constexpr char SUC[] = "s100000245";

 constexpr char LL[] = "s100000246";

 constexpr char ENT_CONDES[] = "s100000260";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000247";

 constexpr char VOLT_S[] = "s100000256";

 constexpr char VOLT_TT[] = "s100000257";

 constexpr char CURR_R[] = "s100000248";

 constexpr char CURR_S[] = "s100000258";

 constexpr char CURR_TT[] = "s100000259";

 constexpr char BAT_INS[] = "s100000252";

 constexpr char BAT_RET[] = "s100000253";

 constexpr char BAT_SUC[] = "s100000254";

 constexpr char BAT_LL[] = "s100000255";

 constexpr char VIBR_X_SUC[] = "s100000249";

 constexpr char VIBR_Y_SUC[] = "s100000250";

 constexpr char VIBR_Z_SUC[] = "s100000251";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:c8"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:13"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:7f"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:80"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:c6"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9824 ckt 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9824";

 constexpr char TOPIC[] = "v4/matr0568b";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 214.28;

 static constexpr float CAL_S = 226.59;

 static constexpr float CAL_TT = 101.09;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14.39;

 static constexpr int CAL_S = 15.84;

 static constexpr int CAL_TT = 13.71;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "xxxx";

 constexpr char RET[] = "xxx";

 constexpr char SUC[] = "s100000220";

 constexpr char LL[] = "s100000221";

 constexpr char ENT_CONDES[] = "s100000239";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "xxx";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s100000236";

 constexpr char CURR_S[] = "s100000237";

 constexpr char CURR_TT[] = "s100000238";

 constexpr char BAT_INS[] = "xxx";

 constexpr char BAT_RET[] = "xxx";

 constexpr char BAT_SUC[] = "xxx";

 constexpr char BAT_LL[] = "xxx";

 constexpr char VIBR_X_SUC[] = "s100000229";

 constexpr char VIBR_Y_SUC[] = "s100000230";

 constexpr char VIBR_Z_SUC[] = "s100000231";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:xx:xx"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:xx:xx"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:e8"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:fd"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:5c"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9824 ckt 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9824";

 constexpr char TOPIC[] = "v4/matr0568";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = xxxx;

 static constexpr float CAL_S = xxx;

 static constexpr float CAL_TT = xxx;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = xxx;

 static constexpr int CAL_S = xxx;

 static constexpr int CAL_TT = xxx;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000214";

 constexpr char RET[] = "s100000215";

 constexpr char SUC[] = "s100000218";

 constexpr char LL[] = "s100000220";

 constexpr char ENT_CONDES[] = "s100000239";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000240";

 constexpr char VOLT_S[] = "s100000241";

 constexpr char VOLT_TT[] = "s100000242";

 constexpr char CURR_R[] = "s100000217";

 constexpr char CURR_S[] = "s100000224";

 constexpr char CURR_TT[] = "s100000225";

 constexpr char BAT_INS[] = "s100000232";

 constexpr char BAT_RET[] = "s100000233";

 constexpr char BAT_SUC[] = "s100000234";

 constexpr char BAT_LL[] = "s100000235";

 constexpr char VIBR_X_SUC[] = "s100000226";

 constexpr char VIBR_Y_SUC[] = "s100000227";

 constexpr char VIBR_Z_SUC[] = "s100000228";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:xx:xx"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:xx:xx"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:xx:xx"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:xx:xx"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:xx:xx"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9571

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9571";

 constexpr char TOPIC[] = "v4/matr0567";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 424.03;

 static constexpr float CAL_S = 125.77;

 static constexpr float CAL_TT = 116;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.53;

 static constexpr int CAL_S = 14.75;

 static constexpr int CAL_TT = 14.37;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000196";

 constexpr char RET[] = "s100000197";

 constexpr char SUC[] = "s100000198";

 constexpr char LL[] = "s100000199";

 constexpr char ENT_CONDES[] = "s100000213";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000200";

 constexpr char VOLT_S[] = "s100000209";

 constexpr char VOLT_TT[] = "s100000210";

 constexpr char CURR_R[] = "s100000201";

 constexpr char CURR_S[] = "s100000211";

 constexpr char CURR_TT[] = "s100000212";

 constexpr char BAT_INS[] = "s100000205";

 constexpr char BAT_RET[] = "s100000206";

 constexpr char BAT_SUC[] = "s100000207";

 constexpr char BAT_LL[] = "s100000208";

 constexpr char VIBR_X_SUC[] = "s100000202";

 constexpr char VIBR_Y_SUC[] = "s100000203";

 constexpr char VIBR_Z_SUC[] = "s100000204";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:ff:87"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:21"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:f8"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:7d"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:c6"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10246

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10246";

 constexpr char TOPIC[] = "v4/matr0565";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 162.62;

 static constexpr float CAL_S = 313.56;

 static constexpr float CAL_TT = 103.93;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 14;

 static constexpr int CAL_TT = 14;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000178";

 constexpr char RET[] = "s100000179";

 constexpr char SUC[] = "s100000180";

 constexpr char LL[] = "s100000181";

 constexpr char ENT_CONDES[] = "s100000195";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000182";

 constexpr char VOLT_S[] = "s100000191";

 constexpr char VOLT_TT[] = "s100000192";

 constexpr char CURR_R[] = "s100000183";

 constexpr char CURR_S[] = "s100000193";

 constexpr char CURR_TT[] = "s100000194";

 constexpr char BAT_INS[] = "s100000187";

 constexpr char BAT_RET[] = "s100000188";

 constexpr char BAT_SUC[] = "s100000189";

 constexpr char BAT_LL[] = "s100000190";

 constexpr char VIBR_X_SUC[] = "s100000184";

 constexpr char VIBR_Y_SUC[] = "s100000185";

 constexpr char VIBR_Z_SUC[] = "s100000186";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:51"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:59"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:13"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:e6"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:54"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10243

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10243";

 constexpr char TOPIC[] = "v4/matr0564";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 491.29;

 static constexpr float CAL_S = 103.06;

 static constexpr float CAL_TT = 104.82;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13;

 static constexpr int CAL_S = 13.17;

 static constexpr int CAL_TT = 13.5;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000160";

 constexpr char RET[] = "s100000161";

 constexpr char SUC[] = "s100000162";

 constexpr char LL[] = "s100000163";

 constexpr char ENT_CONDES[] = "s100000177";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000164";

 constexpr char VOLT_S[] = "s100000173";

 constexpr char VOLT_TT[] = "s100000174";

 constexpr char CURR_R[] = "s100000165";

 constexpr char CURR_S[] = "s100000175";

 constexpr char CURR_TT[] = "s100000176";

 constexpr char BAT_INS[] = "s100000169";

 constexpr char BAT_RET[] = "s100000170";

 constexpr char BAT_SUC[] = "s100000171";

 constexpr char BAT_LL[] = "s100000172";

 constexpr char VIBR_X_SUC[] = "s100000166";

 constexpr char VIBR_Y_SUC[] = "s100000167";

 constexpr char VIBR_Z_SUC[] = "s100000168";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fc:f4"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fc:f7"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:6a"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:85"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:d7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

12388

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "12388";

 constexpr char TOPIC[] = "v4/matr0563";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 82.29;

 static constexpr float CAL_S = 83.92;

 static constexpr float CAL_TT = 76.44;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 18.92;

 static constexpr int CAL_S = 18.30;

 static constexpr int CAL_TT = 18.74;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000142";

 constexpr char RET[] = "s100000143";

 constexpr char SUC[] = "s100000144";

 constexpr char LL[] = "s100000145";

 constexpr char ENT_CONDES[] = "s100000159";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000146";

 constexpr char VOLT_S[] = "s100000155";

 constexpr char VOLT_TT[] = "s100000156";

 constexpr char CURR_R[] = "s100000147";

 constexpr char CURR_S[] = "s100000157";

 constexpr char CURR_TT[] = "s100000158";

 constexpr char BAT_INS[] = "s100000151";

 constexpr char BAT_RET[] = "s100000152";

 constexpr char BAT_SUC[] = "s100000153";

 constexpr char BAT_LL[] = "s100000154";

 constexpr char VIBR_X_SUC[] = "s100000148";

 constexpr char VIBR_Y_SUC[] = "s100000149";

 constexpr char VIBR_Z_SUC[] = "s100000150";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:b2"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:b1"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:8a"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:8c"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:ad"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9314

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9314";

 constexpr char TOPIC[] = "v4/matr0562";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 77.66;

 static constexpr float CAL_S = 77.55;

 static constexpr float CAL_TT = 68.82;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.28;

 static constexpr int CAL_S = 16.99;

 static constexpr int CAL_TT = 16.49;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s92068";

 constexpr char RET[] = "s92069";

 constexpr char SUC[] = "s92070";

 constexpr char LL[] = "s92071";

 constexpr char ENT_CONDES[] = "s92085";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s92072";

 constexpr char VOLT_S[] = "s92073";

 constexpr char VOLT_TT[] = "s92074";

 constexpr char CURR_R[] = "s92075";

 constexpr char CURR_S[] = "s92076";

 constexpr char CURR_TT[] = "s92077";

 constexpr char BAT_INS[] = "s92081";

 constexpr char BAT_RET[] = "s92082";

 constexpr char BAT_SUC[] = "s92083";

 constexpr char BAT_LL[] = "s92084";

 constexpr char VIBR_X_SUC[] = "s92078";

 constexpr char VIBR_Y_SUC[] = "s92079";

 constexpr char VIBR_Z_SUC[] = "s92080";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:ff:94"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:86"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:ff:ff:95"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:ff:ff:93"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:88"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10245

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10245";

 constexpr char TOPIC[] = "v4/matr0561";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 79.03;

 static constexpr float CAL_S = 929.02;

 static constexpr float CAL_TT = 71.21;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 16.49;

 static constexpr int CAL_S = 16.7;

 static constexpr int CAL_TT = 16.86;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000124";

 constexpr char RET[] = "s100000125";

 constexpr char SUC[] = "s100000126";

 constexpr char LL[] = "s100000127";

 constexpr char ENT_CONDES[] = "s100000141";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000128";

 constexpr char VOLT_S[] = "s100000137";

 constexpr char VOLT_TT[] = "s100000138";

 constexpr char CURR_R[] = "s100000129";

 constexpr char CURR_S[] = "s100000139";

 constexpr char CURR_TT[] = "s100000140";

 constexpr char BAT_INS[] = "s100000133";

 constexpr char BAT_RET[] = "s100000134";

 constexpr char BAT_SUC[] = "s100000135";

 constexpr char BAT_LL[] = "s100000136";

 constexpr char VIBR_X_SUC[] = "s100000130";

 constexpr char VIBR_Y_SUC[] = "s100000131";

 constexpr char VIBR_Z_SUC[] = "s100000132";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fc:f4"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fc:f7"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:6a"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:85"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:d7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

36516

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "36516";

 constexpr char TOPIC[] = "v4/matr0560";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 174.54;

 static constexpr float CAL_S = 176.09;

 static constexpr float CAL_TT = 172.11;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.46;

 static constexpr int CAL_S = 13.75;

 static constexpr int CAL_TT = 15.9;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000106";

 constexpr char RET[] = "s100000107";

 constexpr char SUC[] = "s100000108";

 constexpr char LL[] = "s100000109";

 constexpr char ENT_CONDES[] = "s100000123";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000110";

 constexpr char VOLT_S[] = "s100000119";

 constexpr char VOLT_TT[] = "s100000120";

 constexpr char CURR_R[] = "s100000111";

 constexpr char CURR_S[] = "s100000121";

 constexpr char CURR_TT[] = "s100000122";

 constexpr char BAT_INS[] = "s100000115";

 constexpr char BAT_RET[] = "s100000116";

 constexpr char BAT_SUC[] = "s100000117";

 constexpr char BAT_LL[] = "s100000118";

 constexpr char VIBR_X_SUC[] = "s100000112";

 constexpr char VIBR_Y_SUC[] = "s100000113";

 constexpr char VIBR_Z_SUC[] = "s100000114";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:c5"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:ab"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:78"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:89"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:aa"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10244

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10244";

 constexpr char TOPIC[] = "v4/matr0559";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 206.8;

 static constexpr float CAL_S = 220.83;

 static constexpr float CAL_TT = 1051;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 14;

 static constexpr int CAL_TT = 14;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000088";

 constexpr char RET[] = "s100000089";

 constexpr char SUC[] = "s100000090";

 constexpr char LL[] = "s100000091";

 constexpr char ENT_CONDES[] = "s100000105";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000092";

 constexpr char VOLT_S[] = "s100000101";

 constexpr char VOLT_TT[] = "s100000102";

 constexpr char CURR_R[] = "s100000093";

 constexpr char CURR_S[] = "s100000103";

 constexpr char CURR_TT[] = "s100000104";

 constexpr char BAT_INS[] = "s100000097";

 constexpr char BAT_RET[] = "s100000098";

 constexpr char BAT_SUC[] = "s100000099";

 constexpr char BAT_LL[] = "s100000100";

 constexpr char VIBR_X_SUC[] = "s100000094";

 constexpr char VIBR_Y_SUC[] = "s100000095";

 constexpr char VIBR_Z_SUC[] = "s100000096";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:c4"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:b3"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:72"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:6b"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:d7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9825 ckt 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9825";

 constexpr char TOPIC[] = "v4/matr0558";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 79.11;

 static constexpr float CAL_S = 79.88;

 static constexpr float CAL_TT = 939.88;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14.24;

 static constexpr int CAL_S = 14.35;

 static constexpr int CAL_TT = 14.55;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000062";

 constexpr char RET[] = "s100000063";

 constexpr char SUC[] = "s100000068";

 constexpr char LL[] = "s100000069";

 constexpr char ENT_CONDES[] = "s100000087";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "xxxxxxxxxxx";

 constexpr char VOLT_S[] = "xxxxxxxxxxx";

 constexpr char VOLT_TT[] = "xxxxxxxxxxxxxxx";

 constexpr char CURR_R[] = "s100000084";

 constexpr char CURR_S[] = "s100000085";

 constexpr char CURR_TT[] = "s100000086";

 constexpr char BAT_INS[] = "xxxxxxxxxxxxxxxxxx";

 constexpr char BAT_RET[] = "xxxxxxxxxxxxxxxx";

 constexpr char BAT_SUC[] = "xxxxxxxxxxxxxxx";

 constexpr char BAT_LL[] = "xxxxxxxxxxxxxx";

 constexpr char VIBR_X_SUC[] = "s100000078";

 constexpr char VIBR_Y_SUC[] = "s100000079";

 constexpr char VIBR_Z_SUC[] = "s100000080";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:ff:77"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:4f"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:2e"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fd:9c"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:5c"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9428

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9428";

 constexpr char TOPIC[] = "v4/matr0557";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 177.45;

 static constexpr float CAL_S = 176.21;

 static constexpr float CAL_TT = 177.27;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.41;

 static constexpr int CAL_S = 13.83;

 static constexpr int CAL_TT = 13.32;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000036";

 constexpr char RET[] = "s100000037";

 constexpr char SUC[] = "S100000042";

 constexpr char LL[] = "S100000043";

 constexpr char ENT_CONDES[] = "s100000061";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "XXXXX";

 constexpr char VOLT_S[] = "XXXXX";

 constexpr char VOLT_TT[] = "XXXXXX";

 constexpr char CURR_R[] = "S100000058";

 constexpr char CURR_S[] = "S100000059";

 constexpr char CURR_TT[] = "S100000060";

 constexpr char BAT_INS[] = "XXXXX";

 constexpr char BAT_RET[] = "XXXXXX";

 constexpr char BAT_SUC[] = "XXXXXX";

 constexpr char BAT_LL[] = "XXXXX";

 constexpr char VIBR_X_SUC[] = "S100000051";

 constexpr char VIBR_Y_SUC[] = "S100000052";

 constexpr char VIBR_Z_SUC[] = "S100000053";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:58"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:57"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:ef"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:eb"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:56"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9825 ckt 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9825";

 constexpr char TOPIC[] = "v4/matr0558";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 236.78;

 static constexpr float CAL_S = 101;

 static constexpr float CAL_TT = 212.77;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15.8;

 static constexpr int CAL_S = 13.5;

 static constexpr int CAL_TT = 14.13;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000062";

 constexpr char RET[] = "s100000063";

 constexpr char SUC[] = "s100000066";

 constexpr char LL[] = "s100000067";

 constexpr char ENT_CONDES[] = "s100000087";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000064";

 constexpr char VOLT_S[] = "s100000070";

 constexpr char VOLT_TT[] = "s100000071";

 constexpr char CURR_R[] = "s100000065";

 constexpr char CURR_S[] = "s100000072";

 constexpr char CURR_TT[] = "s100000073";

 constexpr char BAT_INS[] = "s100000080";

 constexpr char BAT_RET[] = "s100000081";

 constexpr char BAT_SUC[] = "s100000082";

 constexpr char BAT_LL[] = "s100000083";

 constexpr char VIBR_X_SUC[] = "s100000074";

 constexpr char VIBR_Y_SUC[] = "s100000075";

 constexpr char VIBR_Z_SUC[] = "s100000076";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:ff:77"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:4f"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:e2"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:09"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:5c"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9428 ckt 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9428";

 constexpr char TOPIC[] = "v4/matr0557";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 177.45;

 static constexpr float CAL_S = 176.21;

 static constexpr float CAL_TT = 177.27;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.14;

 static constexpr int CAL_S = 13.06;

 static constexpr int CAL_TT = 13.46;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000036";

 constexpr char RET[] = "s100000037";

 constexpr char SUC[] = "s100000040";

 constexpr char LL[] = "s100000041";

 constexpr char ENT_CONDES[] = "s100000061";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000038";

 constexpr char VOLT_S[] = "s100000044";

 constexpr char VOLT_TT[] = "s100000045";

 constexpr char CURR_R[] = "s100000039";

 constexpr char CURR_S[] = "s100000046";

 constexpr char CURR_TT[] = "s100000047";

 constexpr char BAT_INS[] = "s100000054";

 constexpr char BAT_RET[] = "s100000055";

 constexpr char BAT_SUC[] = "s100000056";

 constexpr char BAT_LL[] = "s100000057";

 constexpr char VIBR_X_SUC[] = "s100000048";

 constexpr char VIBR_Y_SUC[] = "s100000049";

 constexpr char VIBR_Z_SUC[] = "s100000050";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:58"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:57"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:e5"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:ec"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:56"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

36513

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "36513";

 constexpr char TOPIC[] = "v4/matr0553";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 169.46;

 static constexpr float CAL_S = 194.06;

 static constexpr float CAL_TT = 187.86;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14.36;

 static constexpr int CAL_S = 13.73;

 static constexpr int CAL_TT = 14.54;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91979";

 constexpr char RET[] = "s91980";

 constexpr char SUC[] = "s91981";

 constexpr char LL[] = "s91982";

 constexpr char ENT_CONDES[] = "s91996";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91983";

 constexpr char VOLT_S[] = "s91992";

 constexpr char VOLT_TT[] = "s91993";

 constexpr char CURR_R[] = "s91984";

 constexpr char CURR_S[] = "s91994";

 constexpr char CURR_TT[] = "s91995";

 constexpr char BAT_INS[] = "s91988";

 constexpr char BAT_RET[] = "s91989";

 constexpr char BAT_SUC[] = "s91990";

 constexpr char BAT_LL[] = "s91991";

 constexpr char VIBR_X_SUC[] = "s91985";

 constexpr char VIBR_Y_SUC[] = "s91986";

 constexpr char VIBR_Z_SUC[] = "s91987";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fe:b8"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:87"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:2f"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:31"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:ff:3b"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

17336

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "17336";

 constexpr char TOPIC[] = "v4/matr0556";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 424.03;

 static constexpr float CAL_S = 125.77;

 static constexpr float CAL_TT = 116;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.53;

 static constexpr int CAL_S = 14.75;

 static constexpr int CAL_TT = 14.37;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000018";

 constexpr char RET[] = "s100000019";

 constexpr char SUC[] = "s100000020";

 constexpr char LL[] = "s100000021";

 constexpr char ENT_CONDES[] = "s100000035";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000022";

 constexpr char VOLT_S[] = "s100000031";

 constexpr char VOLT_TT[] = "s100000032";

 constexpr char CURR_R[] = "s100000023";

 constexpr char CURR_S[] = "s100000033";

 constexpr char CURR_TT[] = "s100000034";

 constexpr char BAT_INS[] = "s100000027";

 constexpr char BAT_RET[] = "s100000028";

 constexpr char BAT_SUC[] = "s100000029";

 constexpr char BAT_LL[] = "s100000030";

 constexpr char VIBR_X_SUC[] = "s100000024";

 constexpr char VIBR_Y_SUC[] = "s100000025";

 constexpr char VIBR_Z_SUC[] = "s100000026";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:5a"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:5d"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:18"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:2a"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:55"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

36515

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "36515";

 constexpr char TOPIC[] = "v4/matr0555";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 174.54;

 static constexpr float CAL_S = 176.09;

 static constexpr float CAL_TT = 172.11;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.46;

 static constexpr int CAL_S = 13.75;

 static constexpr int CAL_TT = 15.9;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000000";

 constexpr char RET[] = "s100000001";

 constexpr char SUC[] = "s100000002";

 constexpr char LL[] = "s100000003";

 constexpr char ENT_CONDES[] = "s100000017";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000004";

 constexpr char VOLT_S[] = "s100000013";

 constexpr char VOLT_TT[] = "s100000014";

 constexpr char CURR_R[] = "s100000005";

 constexpr char CURR_S[] = "s100000015";

 constexpr char CURR_TT[] = "s100000016";

 constexpr char BAT_INS[] = "s100000009";

 constexpr char BAT_RET[] = "s100000010";

 constexpr char BAT_SUC[] = "s100000011";

 constexpr char BAT_LL[] = "s100000012";

 constexpr char VIBR_X_SUC[] = "s100000006";

 constexpr char VIBR_Y_SUC[] = "s100000007";

 constexpr char VIBR_Z_SUC[] = "s100000008";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:78"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:84"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:fb"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:01"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:50"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9736 ckt 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9736";

 constexpr char TOPIC[] = "v4/matr0561";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 175.18;

 static constexpr float CAL_S = 174.09;

 static constexpr float CAL_TT = 171.36;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.8;

 static constexpr int CAL_S = 13.8;

 static constexpr int CAL_TT = 13.8;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s92065";

 constexpr char RET[] = "s92045";

 constexpr char SUC[] = "s92053";

 constexpr char LL[] = "s92054";

 constexpr char ENT_CONDES[] = "s92046";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "XXX";

 constexpr char VOLT_S[] = "XXX";

 constexpr char VOLT_TT[] = "XXX";

 constexpr char CURR_R[] = "s92047";

 constexpr char CURR_S[] = "s92048";

 constexpr char CURR_TT[] = "s92049";

 constexpr char BAT_INS[] = "xxxx";

 constexpr char BAT_RET[] = "xxxxx";

 constexpr char BAT_SUC[] = "xxxxx";

 constexpr char BAT_LL[] = "xxxxx";

 constexpr char VIBR_X_SUC[] = "s92058";

 constexpr char VIBR_Y_SUC[] = "s92059";

 constexpr char VIBR_Z_SUC[] = "s92060";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:b6"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:af"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:70"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:88"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:2e:b4"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9441 ckt 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9441";

 constexpr char TOPIC[] = "v4/matr0550";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 199.23;

 static constexpr float CAL_S = 199.96;

 static constexpr float CAL_TT = 1047.7;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 12.57;

 static constexpr int CAL_S = 13.87;

 static constexpr int CAL_TT = 12.43;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91953";

 constexpr char RET[] = "s91933";

 constexpr char SUC[] = "s91954";

 constexpr char LL[] = "s91955";

 constexpr char ENT_CONDES[] = "s91934";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91943";

 constexpr char VOLT_S[] = "s91944";

 constexpr char VOLT_TT[] = "s91945";

 constexpr char CURR_R[] = "s91938";

 constexpr char CURR_S[] = "s91939";

 constexpr char CURR_TT[] = "s91940";

 constexpr char BAT_INS[] = "xxxx";

 constexpr char BAT_RET[] = "xxxxx";

 constexpr char BAT_SUC[] = "xxxx";

 constexpr char BAT_LL[] = "xxxx";

 constexpr char VIBR_X_SUC[] = "s91949";

 constexpr char VIBR_Y_SUC[] = "s91950";

 constexpr char VIBR_Z_SUC[] = "s91951";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:c2"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:a4"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:00"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:0f"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:c7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9441 ckt 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9441";

 constexpr char TOPIC[] = "v4/matr0550";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 199.23;

 static constexpr float CAL_S = 199.96;

 static constexpr float CAL_TT = 1047.7;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 12.38;

 static constexpr int CAL_S = 14.18;

 static constexpr int CAL_TT = 13.21;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91953";

 constexpr char RET[] = "s91933";

 constexpr char SUC[] = "s91941";

 constexpr char LL[] = "s91942";

 constexpr char ENT_CONDES[] = "s91934";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91943";

 constexpr char VOLT_S[] = "s91944";

 constexpr char VOLT_TT[] = "s91945";

 constexpr char CURR_R[] = "s91935";

 constexpr char CURR_S[] = "s91936";

 constexpr char CURR_TT[] = "s91937";

 constexpr char BAT_INS[] = "xxxx";

 constexpr char BAT_RET[] = "xxxxx";

 constexpr char BAT_SUC[] = "xxxx";

 constexpr char BAT_LL[] = "xxxx";

 constexpr char VIBR_X_SUC[] = "s91946";

 constexpr char VIBR_Y_SUC[] = "s91947";

 constexpr char VIBR_Z_SUC[] = "s91948";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:c2"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:a4"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:32"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:1a"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:c7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9443 ckt 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9443";

 constexpr char TOPIC[] = "v4/matr0551";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 200.07;

 static constexpr float CAL_S = 147.2;

 static constexpr float CAL_TT = 169.78;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14.48;

 static constexpr int CAL_S = 12.30;

 static constexpr int CAL_TT = 13.61;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s92017";

 constexpr char RET[] = "s91997";

 constexpr char SUC[] = "s92005";

 constexpr char LL[] = "s92006";

 constexpr char ENT_CONDES[] = "s91998";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s92007";

 constexpr char VOLT_S[] = "s92008";

 constexpr char VOLT_TT[] = "s92009";

 constexpr char CURR_R[] = "s91999";

 constexpr char CURR_S[] = "s92000";

 constexpr char CURR_TT[] = "s92001";

 constexpr char BAT_INS[] = "xxxx";

 constexpr char BAT_RET[] = "xxxxx";

 constexpr char BAT_SUC[] = "xxxx";

 constexpr char BAT_LL[] = "xxxx";

 constexpr char VIBR_X_SUC[] = "s92010";

 constexpr char VIBR_Y_SUC[] = "s92011";

 constexpr char VIBR_Z_SUC[] = "s92012";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:bf"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:dc"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:6d"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:8b"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:c7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9736 ckt 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9736";

 constexpr char TOPIC[] = "v4/matr0561";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 175.18;

 static constexpr float CAL_S = 174.09;

 static constexpr float CAL_TT = 171.36;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.45;

 static constexpr int CAL_S = 14.05;

 static constexpr int CAL_TT = 13.43;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s92065";

 constexpr char RET[] = "s92045";

 constexpr char SUC[] = "s92066";

 constexpr char LL[] = "s92067";

 constexpr char ENT_CONDES[] = "s92046";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s92055";

 constexpr char VOLT_S[] = "s92056";

 constexpr char VOLT_TT[] = "s92057";

 constexpr char CURR_R[] = "s92050";

 constexpr char CURR_S[] = "s92051";

 constexpr char CURR_TT[] = "92052";

 constexpr char BAT_INS[] = "xxxx";

 constexpr char BAT_RET[] = "xxxxx";

 constexpr char BAT_SUC[] = "xxxxx";

 constexpr char BAT_LL[] = "xxxxx";

 constexpr char VIBR_X_SUC[] = "s92061";

 constexpr char VIBR_Y_SUC[] = "s92062";

 constexpr char VIBR_Z_SUC[] = "s92063";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:b6"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:af"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:86"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:6f"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:2e:b4"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9439 ckt 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9439";

 constexpr char TOPIC[] = "v4/sc0005";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 174.43;

 static constexpr float CAL_S = 155.87;

 static constexpr float CAL_TT = 155.87;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 12.64;

 static constexpr int CAL_S = 13.54;

 static constexpr int CAL_TT = 13.93;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91930";

 constexpr char RET[] = "s451";

 constexpr char SUC[] = "s462";

 constexpr char LL[] = "s463";

 constexpr char ENT_CONDES[] = "s452";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s464";

 constexpr char VOLT_S[] = "s465";

 constexpr char VOLT_TT[] = "s466";

 constexpr char CURR_R[] = "s456";

 constexpr char CURR_S[] = "s457";

 constexpr char CURR_TT[] = "s458";

 constexpr char BAT_INS[] = "xxxx";

 constexpr char BAT_RET[] = "xxxxx";

 constexpr char BAT_SUC[] = "xxxx";

 constexpr char BAT_LL[] = "xxxx";

 constexpr char VIBR_X_SUC[] = "s467";

 constexpr char VIBR_Y_SUC[] = "s468";

 constexpr char VIBR_Z_SUC[] = "s469";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fe:84"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:a4"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:fe"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:ff"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:c7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9999

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9999";

 constexpr char TOPIC[] = "v4/matr0596";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 271.58;

 static constexpr float CAL_S = 0;

 static constexpr float CAL_TT = 0;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 16;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 32;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 36;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91832";

 constexpr char RET[] = "s91833";

 constexpr char SUC[] = "s91834";

 constexpr char LL[] = "s91835";

 constexpr char ENT_CONDES[] = "s91845";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91836";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s91837";

 constexpr char CURR_S[] = "xxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s91841";

 constexpr char BAT_RET[] = "s91842";

 constexpr char BAT_SUC[] = "s91843";

 constexpr char BAT_LL[] = "s91844";

 constexpr char VIBR_X_SUC[] = "s91838";

 constexpr char VIBR_Y_SUC[] = "s91839";

 constexpr char VIBR_Z_SUC[] = "s91840";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:26:2a"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:19:e7"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:93"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:62"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:41"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9998

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9998";

 constexpr char TOPIC[] = "v4/matr0593";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 236.53;

 static constexpr float CAL_S = 0;

 static constexpr float CAL_TT = 0;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 16.2;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 32;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 36;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91790";

 constexpr char RET[] = "s91791";

 constexpr char SUC[] = "s91792";

 constexpr char LL[] = "s91793";

 constexpr char ENT_CONDES[] = "s91803";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91794";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s91795";

 constexpr char CURR_S[] = "xxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s91799";

 constexpr char BAT_RET[] = "s91800";

 constexpr char BAT_SUC[] = "s91801";

 constexpr char BAT_LL[] = "s91802";

 constexpr char VIBR_X_SUC[] = "s91796";

 constexpr char VIBR_Y_SUC[] = "s91797";

 constexpr char VIBR_Z_SUC[] = "s91798";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:e5"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2e:be"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:5c"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:25:ed"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:41"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9994

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9994";

 constexpr char TOPIC[] = "v4/matr0597";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 173.05;

 static constexpr float CAL_S = 0;

 static constexpr float CAL_TT = 0;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14.89;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 32;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 36;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91846";

 constexpr char RET[] = "s91847";

 constexpr char SUC[] = "s91848";

 constexpr char LL[] = "s91849";

 constexpr char ENT_CONDES[] = "s91859";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91850";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s91851";

 constexpr char CURR_S[] = "xxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s91855";

 constexpr char BAT_RET[] = "s91856";

 constexpr char BAT_SUC[] = "s91857";

 constexpr char BAT_LL[] = "s91858";

 constexpr char VIBR_X_SUC[] = "s91852";

 constexpr char VIBR_Y_SUC[] = "s91853";

 constexpr char VIBR_Z_SUC[] = "s91854";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:19:7b"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2e:c9"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:26:03"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:7e"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:41"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9955

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9955b";

 constexpr char TOPIC[] = "v4/matr0535b";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 71.90;

 static constexpr float CAL_S = 72.69;

 static constexpr float CAL_TT = 79.15;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.50;

 static constexpr int CAL_S = 17.08;

 static constexpr int CAL_TT = 16.48;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "xxxx";

 constexpr char RET[] = "xxxx";

 constexpr char SUC[] = "s21240";

 constexpr char LL[] = "s21241";

 constexpr char ENT_CONDES[] = "xxxx";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s21236";

 constexpr char VOLT_S[] = "s21242";

 constexpr char VOLT_TT[] = "s21243";

 constexpr char CURR_R[] = "s21256";

 constexpr char CURR_S[] = "s21257";

 constexpr char CURR_TT[] = "s21258";

 constexpr char BAT_INS[] = "xxx";

 constexpr char BAT_RET[] = "xxx";

 constexpr char BAT_SUC[] = "xxx";

 constexpr char BAT_LL[] = "xxx";

 constexpr char VIBR_X_SUC[] = "s21249";

 constexpr char VIBR_Y_SUC[] = "s21250";

 constexpr char VIBR_Z_SUC[] = "s21251";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "xx:xx:29:0e:xx:xx"; //Ble2

 constexpr char TEMP_RET[] = "xx:xx:29:0e:xx:xx"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:26:2c"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:26:34"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:xx:xx:xx"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9955 ckt 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9955";

 constexpr char TOPIC[] = "v4/matr0535a";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 182.78;

 static constexpr float CAL_S = 184.76;

 static constexpr float CAL_TT = 183.7;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 14;

 static constexpr int CAL_TT = 14;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s21234";

 constexpr char RET[] = "s21235";

 constexpr char SUC[] = "s21238";

 constexpr char LL[] = "s21239";

 constexpr char ENT_CONDES[] = "xxxx";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s21236";

 constexpr char VOLT_S[] = "s21242";

 constexpr char VOLT_TT[] = "s21243";

 constexpr char CURR_R[] = "s21237";

 constexpr char CURR_S[] = "s21244";

 constexpr char CURR_TT[] = "s21245";

 constexpr char BAT_INS[] = "s21252";

 constexpr char BAT_RET[] = "s21253";

 constexpr char BAT_SUC[] = "s21254";

 constexpr char BAT_LL[] = "s21255";

 constexpr char VIBR_X_SUC[] = "s21246";

 constexpr char VIBR_Y_SUC[] = "s21247";

 constexpr char VIBR_Z_SUC[] = "s21248";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:19:7c"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:19:56"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:9a"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:55"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:xx"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9945

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9945";

 constexpr char TOPIC[] = "v4/matr0522";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 171.72;

 static constexpr float CAL_S = 183.22;

 static constexpr float CAL_TT = 185.47;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 14;

 static constexpr int CAL_TT = 14;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s21029";

 constexpr char RET[] = "s21030";

 constexpr char SUC[] = "s21031";

 constexpr char LL[] = "s21032";

 constexpr char ENT_CONDES[] = "xxxx";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s21033";

 constexpr char VOLT_S[] = "s21042";

 constexpr char VOLT_TT[] = "s21043";

 constexpr char CURR_R[] = "s21034";

 constexpr char CURR_S[] = "s21044";

 constexpr char CURR_TT[] = "s21045";

 constexpr char BAT_INS[] = "s21038";

 constexpr char BAT_RET[] = "s21039";

 constexpr char BAT_SUC[] = "s21040";

 constexpr char BAT_LL[] = "s21041";

 constexpr char VIBR_X_SUC[] = "s21035";

 constexpr char VIBR_Y_SUC[] = "s21036";

 constexpr char VIBR_Z_SUC[] = "s21037";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:fe"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:25:f9"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:4c"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:ac"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:xx"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9906

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9906";

 constexpr char TOPIC[] = "v4/matr0537";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 227.87;

 static constexpr float CAL_S = 115.4;

 static constexpr float CAL_TT = 115.5;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15.94;

 static constexpr int CAL_S = 10;

 static constexpr int CAL_TT = 10.6;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 33;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s21284";

 constexpr char RET[] = "s21285";

 constexpr char SUC[] = "s21286";

 constexpr char LL[] = "s21287";

 constexpr char ENT_CONDES[] = "xxxxx";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s21289";

 constexpr char VOLT_S[] = "XXX";

 constexpr char VOLT_TT[] = "XXX";

 constexpr char CURR_R[] = "s21288";

 constexpr char CURR_S[] = "XXX";

 constexpr char CURR_TT[] = "XXX";

 constexpr char BAT_INS[] = "s21293";

 constexpr char BAT_RET[] = "s21294";

 constexpr char BAT_SUC[] = "s21295";

 constexpr char BAT_LL[] = "s21296";

 constexpr char VIBR_X_SUC[] = "s21290";

 constexpr char VIBR_Y_SUC[] = "s21291";

 constexpr char VIBR_Z_SUC[] = "s21292";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:19:74"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:26:25"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:26:38"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:8b"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:xx"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9905

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9905";

 constexpr char TOPIC[] = "v4/matr0583";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 253;

 static constexpr float CAL_S = 0;

 static constexpr float CAL_TT = 0;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 16.7;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 33;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91597";

 constexpr char RET[] = "s91598";

 constexpr char SUC[] = "s91599";

 constexpr char LL[] = "s91600";

 constexpr char ENT_CONDES[] = "s91610";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91601";

 constexpr char VOLT_S[] = "XXX";

 constexpr char VOLT_TT[] = "XXX";

 constexpr char CURR_R[] = "s91602";

 constexpr char CURR_S[] = "XXX";

 constexpr char CURR_TT[] = "XXX";

 constexpr char BAT_INS[] = "s91606";

 constexpr char BAT_RET[] = "s91607";

 constexpr char BAT_SUC[] = "s91608";

 constexpr char BAT_LL[] = "s91609";

 constexpr char VIBR_X_SUC[] = "s91603";

 constexpr char VIBR_Y_SUC[] = "s91604";

 constexpr char VIBR_Z_SUC[] = "s91605";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:de"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2e:d6"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:3b"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:43"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:8a"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9758

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9758";

 constexpr char TOPIC[] = "v4/matr0541";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 205.55;

 static constexpr float CAL_S = 0;

 static constexpr float CAL_TT = 0;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.05;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 33;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91367";

 constexpr char RET[] = "s91368";

 constexpr char SUC[] = "s91369";

 constexpr char LL[] = "s91370";

 constexpr char ENT_CONDES[] = "s91380";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91371";

 constexpr char VOLT_S[] = "XXX";

 constexpr char VOLT_TT[] = "XXX";

 constexpr char CURR_R[] = "s91372";

 constexpr char CURR_S[] = "XXX";

 constexpr char CURR_TT[] = "XXX";

 constexpr char BAT_INS[] = "s91376";

 constexpr char BAT_RET[] = "s91377";

 constexpr char BAT_SUC[] = "s91378";

 constexpr char BAT_LL[] = "s91379";

 constexpr char VIBR_X_SUC[] = "s91373";

 constexpr char VIBR_Y_SUC[] = "s91374";

 constexpr char VIBR_Z_SUC[] = "s91375";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:c1"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:19:9d"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:25:e9"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:26:10"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:26:2b"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9330

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9330";

 constexpr char TOPIC[] = "v4/matr0601";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 173.80;

 static constexpr float CAL_S = 176.84;

 static constexpr float CAL_TT = 175.87;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 29.13;

 static constexpr int CAL_S = 30.58;

 static constexpr int CAL_TT = 29.26;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000422";

 constexpr char RET[] = "s100000423";

 constexpr char SUC[] = "s100000437"; // externa

 constexpr char LL[] = "xxx";

 constexpr char ENT_CONDES[] = "";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000427";

 constexpr char VOLT_S[] = "s100000428";

 constexpr char VOLT_TT[] = "s100000429";

 constexpr char CURR_R[] = "s100000424";

 constexpr char CURR_S[] = "s100000425";

 constexpr char CURR_TT[] = "s100000426";

 constexpr char BAT_INS[] = "s100000433";

 constexpr char BAT_RET[] = "s100000435";

 constexpr char BAT_SUC[] = "s100000436";//externa

 constexpr char BAT_LL[] = "xxx";

 constexpr char VIBR_X_SUC[] = "s100000430";

 constexpr char VIBR_Y_SUC[] = "s100000431";

 constexpr char VIBR_Z_SUC[] = "s100000432";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:ff:22"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:ff:45"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fc:fd"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:xx:xx"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:xx:xx"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10139 CKT 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10139";

 constexpr char TOPIC[] = "v4/matr0577";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 164.54;

 static constexpr float CAL_S = 172.91;

 static constexpr float CAL_TT = 205.07;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.4;

 static constexpr int CAL_S = 12.53;

 static constexpr int CAL_TT = 13.27;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000393";

 constexpr char RET[] = "s100000394";

 constexpr char SUC[] = "s100000399";

 constexpr char LL[] = "s100000400";

 constexpr char ENT_CONDES[] = "s100000418";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000395";

 constexpr char VOLT_S[] = "s100000401";

 constexpr char VOLT_TT[] = "s100000402";

 constexpr char CURR_R[] = "s100000415";

 constexpr char CURR_S[] = "s100000416";

 constexpr char CURR_TT[] = "s100000417";

 constexpr char BAT_INS[] = "s100000411";

 constexpr char BAT_RET[] = "s100000412";

 constexpr char BAT_SUC[] = "s100000413";

 constexpr char BAT_LL[] = "s100000414";

 constexpr char VIBR_X_SUC[] = "s100000408";

 constexpr char VIBR_Y_SUC[] = "s100000409";

 constexpr char VIBR_Z_SUC[] = "s100000410";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fe:e3"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fe:e7"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:de"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:db"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fc:fb"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10139 CKT 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10139";

 constexpr char TOPIC[] = "v4/matr0577b";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 150.16;

 static constexpr float CAL_S = 241.39;

 static constexpr float CAL_TT = 174.93;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 12.45;

 static constexpr int CAL_S = 11.67;

 static constexpr int CAL_TT = 11.93;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000393";

 constexpr char RET[] = "s100000394";

 constexpr char SUC[] = "s100000397";

 constexpr char LL[] = "s100000398";

 constexpr char ENT_CONDES[] = "s100000418";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000419";

 constexpr char VOLT_S[] = "s100000420";

 constexpr char VOLT_TT[] = "s100000421";

 constexpr char CURR_R[] = "s100000396";

 constexpr char CURR_S[] = "s100000403";

 constexpr char CURR_TT[] = "s100000404";

 constexpr char BAT_INS[] = "xxx";

 constexpr char BAT_RET[] = "xxx";

 constexpr char BAT_SUC[] = "xxx";

 constexpr char BAT_LL[] = "xxx";

 constexpr char VIBR_X_SUC[] = "s100000405";

 constexpr char VIBR_Y_SUC[] = "s100000406";

 constexpr char VIBR_Z_SUC[] = "s100000407";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fe:e3"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fe:e7"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:97"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:96"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fc:fb"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9904

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9904";

 constexpr char TOPIC[] = "v4/matr0576";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 191.88;

 static constexpr float CAL_S = 10;

 static constexpr float CAL_TT = 10;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.42;

 static constexpr int CAL_S = 10;

 static constexpr int CAL_TT = 10;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 33;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000379";

 constexpr char RET[] = "s100000380";

 constexpr char SUC[] = "s100000381";

 constexpr char LL[] = "s100000382";

 constexpr char ENT_CONDES[] = "s100000392";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000383";

 constexpr char VOLT_S[] = "xxxx";

 constexpr char VOLT_TT[] = "xxxx";

 constexpr char CURR_R[] = "s100000384";

 constexpr char CURR_S[] = "xxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s100000388";

 constexpr char BAT_RET[] = "s100000389";

 constexpr char BAT_SUC[] = "s100000390";

 constexpr char BAT_LL[] = "s100000391";

 constexpr char VIBR_X_SUC[] = "s100000385";

 constexpr char VIBR_Y_SUC[] = "s100000386";

 constexpr char VIBR_Z_SUC[] = "s100000387";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:ff:0e"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:9a"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:eb"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:26:24"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:5e"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif9338

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9338";

 constexpr char TOPIC[] = "v4/matr0575";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 223.09;

 static constexpr float CAL_S = 10;

 static constexpr float CAL_TT = 10;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15.55;

 static constexpr int CAL_S = 10;

 static constexpr int CAL_TT = 10;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 33;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000365";

 constexpr char RET[] = "s100000366";

 constexpr char SUC[] = "s100000367";

 constexpr char LL[] = "s100000368";

 constexpr char ENT_CONDES[] = "s100000378";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000369";

 constexpr char VOLT_S[] = "xxxx";

 constexpr char VOLT_TT[] = "xxxx";

 constexpr char CURR_R[] = "s100000370";

 constexpr char CURR_S[] = "xxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s100000374";

 constexpr char BAT_RET[] = "s100000375";

 constexpr char BAT_SUC[] = "s100000376";

 constexpr char BAT_LL[] = "s100000377";

 constexpr char VIBR_X_SUC[] = "s100000371";

 constexpr char VIBR_Y_SUC[] = "s100000372";

 constexpr char VIBR_Z_SUC[] = "s100000373";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:ff:11"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:19:e5"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:60"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:e3"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:26:1b"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif9436

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9436";

 constexpr char TOPIC[] = "v4/matr0574";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 235.64;

 static constexpr float CAL_S = 167.26;

 static constexpr float CAL_TT = 185.11;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 13.3;

 static constexpr int CAL_S = 12.81;

 static constexpr int CAL_TT = 13.12;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000339";

 constexpr char RET[] = "s100000340";

 constexpr char SUC[] = "s100000345";

 constexpr char LL[] = "s100000346";

 constexpr char ENT_CONDES[] = "s100000364";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000341";

 constexpr char VOLT_S[] = "s100000347";

 constexpr char VOLT_TT[] = "s100000348";

 constexpr char CURR_R[] = "s100000361";

 constexpr char CURR_S[] = "s100000362";

 constexpr char CURR_TT[] = "s100000363";

 constexpr char BAT_INS[] = "s100000357";

 constexpr char BAT_RET[] = "s100000358";

 constexpr char BAT_SUC[] = "s100000359";

 constexpr char BAT_LL[] = "s100000360";

 constexpr char VIBR_X_SUC[] = "s100000354";

 constexpr char VIBR_Y_SUC[] = "s100000355";

 constexpr char VIBR_Z_SUC[] = "s100000356";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:27"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:a4"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:54"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:9e"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:c7"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif9494

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9494";

 constexpr char TOPIC[] = "v4/matr0588";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 400;

 static constexpr float CAL_S = 000;

 static constexpr float CAL_TT = 000;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 36;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91712";

 constexpr char RET[] = "s91713";

 constexpr char SUC[] = "s91714";

 constexpr char LL[] = "s91715";

 constexpr char ENT_CONDES[] = "s91725";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91716";

 constexpr char VOLT_S[] = "xxxxx";

 constexpr char VOLT_TT[] = "xxxxxxx";

 constexpr char CURR_R[] = "s91717";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxxxxxx";

 constexpr char BAT_INS[] = "s91721";

 constexpr char BAT_RET[] = "s91722";

 constexpr char BAT_SUC[] = "s91723";

 constexpr char BAT_LL[] = "s91724";

 constexpr char VIBR_X_SUC[] = "s91718";

 constexpr char VIBR_Y_SUC[] = "s91719";

 constexpr char VIBR_Z_SUC[] = "s91720";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:19:66"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:19:69"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:26:05"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:ca"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:c2"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9497

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9497";

 constexpr char TOPIC[] = "v4/matr0590";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 233;

 static constexpr float CAL_S = 000;

 static constexpr float CAL_TT = 000;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 36;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91740";

 constexpr char RET[] = "s91741";

 constexpr char SUC[] = "s91742";

 constexpr char LL[] = "s91743";

 constexpr char ENT_CONDES[] = "s91753";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91744";

 constexpr char VOLT_S[] = "xxxxx";

 constexpr char VOLT_TT[] = "xxxxxxx";

 constexpr char CURR_R[] = "s91745";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxxxxxx";

 constexpr char BAT_INS[] = "s91749";

 constexpr char BAT_RET[] = "s91750";

 constexpr char BAT_SUC[] = "s91751";

 constexpr char BAT_LL[] = "s91752";

 constexpr char VIBR_X_SUC[] = "s91746";

 constexpr char VIBR_Y_SUC[] = "s91747";

 constexpr char VIBR_Z_SUC[] = "s91748";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:fa"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2f:03"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:29"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:26:16"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:c2"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9498

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9498";

 constexpr char TOPIC[] = "v4/matr0589";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 295.39;

 static constexpr float CAL_S = 000;

 static constexpr float CAL_TT = 000;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.67;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 36;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91726";

 constexpr char RET[] = "s91727";

 constexpr char SUC[] = "s91728";

 constexpr char LL[] = "s91729";

 constexpr char ENT_CONDES[] = "s91739";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91730";

 constexpr char VOLT_S[] = "xxxxx";

 constexpr char VOLT_TT[] = "xxxxxxx";

 constexpr char CURR_R[] = "s91731";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxxxxxx";

 constexpr char BAT_INS[] = "s91735";

 constexpr char BAT_RET[] = "s91736";

 constexpr char BAT_SUC[] = "s91737";

 constexpr char BAT_LL[] = "s91738";

 constexpr char VIBR_X_SUC[] = "s91732";

 constexpr char VIBR_Y_SUC[] = "s91733";

 constexpr char VIBR_Z_SUC[] = "s91734";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:ce"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:25:e8"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:26:3a"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:bc"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:c2"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9978

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9978";

 constexpr char TOPIC[] = "v4/matr0572";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 100.34;

 static constexpr float CAL_S = 229.81;

 static constexpr float CAL_TT = 135.08;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 14;

 static constexpr int CAL_TT = 14;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000313";

 constexpr char RET[] = "s100000314";

 constexpr char SUC[] = "s100000317";

 constexpr char LL[] = "s100000318";

 constexpr char ENT_CONDES[] = "s100000338";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000315";

 constexpr char VOLT_S[] = "s100000321";

 constexpr char VOLT_TT[] = "s100000322";

 constexpr char CURR_R[] = "s100000316";

 constexpr char CURR_S[] = "s100000323";

 constexpr char CURR_TT[] = "s100000324";

 constexpr char BAT_INS[] = "s100000331";

 constexpr char BAT_RET[] = "s100000332";

 constexpr char BAT_SUC[] = "s100000333";

 constexpr char BAT_LL[] = "s100000334";

 constexpr char VIBR_X_SUC[] = "s100000325";

 constexpr char VIBR_Y_SUC[] = "s100000326";

 constexpr char VIBR_Z_SUC[] = "s100000327";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fc:eb"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fc:fa"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:84"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:ff:83"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:0c"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif9980

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9980";

 constexpr char TOPIC[] = "v4/matr0570";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 79.02;

 static constexpr float CAL_S = 71.36;

 static constexpr float CAL_TT = 69.67;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15.49;

 static constexpr int CAL_S = 17.5;

 static constexpr int CAL_TT = 16.55;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000261";

 constexpr char RET[] = "s100000262";

 constexpr char SUC[] = "s100000265";

 constexpr char LL[] = "s100000266";

 constexpr char ENT_CONDES[] = "s100000286";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000263";

 constexpr char VOLT_S[] = "s100000269";

 constexpr char VOLT_TT[] = "s100000270";

 constexpr char CURR_R[] = "s100000264";

 constexpr char CURR_S[] = "s100000271";

 constexpr char CURR_TT[] = "s100000272";

 constexpr char BAT_INS[] = "s100000279";

 constexpr char BAT_RET[] = "s100000280";

 constexpr char BAT_SUC[] = "s100000281";

 constexpr char BAT_LL[] = "s100000282";

 constexpr char VIBR_X_SUC[] = "s100000273";

 constexpr char VIBR_Y_SUC[] = "s100000274";

 constexpr char VIBR_Z_SUC[] = "s100000275";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:07"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:0b"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:f4"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:f7"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:0c"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif9980 CKT 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9980";

 constexpr char TOPIC[] = "v4/matr0570";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 79.02;

 static constexpr float CAL_S = 71.36;

 static constexpr float CAL_TT = 69.67;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.31;

 static constexpr int CAL_S = 17.53;

 static constexpr int CAL_TT = 17.92;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000261";

 constexpr char RET[] = "s100000262";

 constexpr char SUC[] = "s100000267";

 constexpr char LL[] = "s100000268";

 constexpr char ENT_CONDES[] = "s100000286";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "xxxxxxxxxxxx";

 constexpr char VOLT_S[] = "xxxxxxxxxxxxxxxx";

 constexpr char VOLT_TT[] = "xxxxxxxxxxxxxxx";

 constexpr char CURR_R[] = "s100000283";

 constexpr char CURR_S[] = "s100000284";

 constexpr char CURR_TT[] = "s100000285";

 constexpr char BAT_INS[] = "xxxxx";

 constexpr char BAT_RET[] = "xx";

 constexpr char BAT_SUC[] = "x";

 constexpr char BAT_LL[] = "xxx";

 constexpr char VIBR_X_SUC[] = "s100000276";

 constexpr char VIBR_Y_SUC[] = "s100000277";

 constexpr char VIBR_Z_SUC[] = "s100000278";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:XX:XX"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:XX:XX"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:ff:81"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:f3"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:XX:XX"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif9996

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9996";

 constexpr char TOPIC[] = "v4/matr0595";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 520.88;

 static constexpr float CAL_S = 452.75;

 static constexpr float CAL_TT = 462.42;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 4.98;

 static constexpr int CAL_S = 4.88;

 static constexpr int CAL_TT = 4.50;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91818";

 constexpr char RET[] = "s91819";

 constexpr char SUC[] = "s91820";

 constexpr char LL[] = "s91821";

 constexpr char ENT_CONDES[] = "s91831";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91822";

 constexpr char VOLT_S[] = "xxxx";

 constexpr char VOLT_TT[] = "xxxxx";

 constexpr char CURR_R[] = "s91823";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxxx";

 constexpr char BAT_INS[] = "s91827";

 constexpr char BAT_RET[] = "s91828";

 constexpr char BAT_SUC[] = "s91829";

 constexpr char BAT_LL[] = "s91830";

 constexpr char VIBR_X_SUC[] = "s91824";

 constexpr char VIBR_Y_SUC[] = "s91825";

 constexpr char VIBR_Z_SUC[] = "s91826";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:xx:xx"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:xx:xx"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:xx:xx"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:xx:xx"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:41"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9605

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9605";

 constexpr char TOPIC[] = "v4/matr0526";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 308.03;

 static constexpr float CAL_S = 100.51;

 static constexpr float CAL_TT = 162.54;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 16.21;

 static constexpr int CAL_TT = 12.44;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s21093";

 constexpr char RET[] = "s21094";

 constexpr char SUC[] = "s21095";

 constexpr char LL[] = "s21096";

 constexpr char ENT_CONDES[] = "xxxx";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s21097";

 constexpr char VOLT_S[] = "s21106";

 constexpr char VOLT_TT[] = "s21107";

 constexpr char CURR_R[] = "s21098";

 constexpr char CURR_S[] = "s21108";

 constexpr char CURR_TT[] = "s21109";

 constexpr char BAT_INS[] = "s21102";

 constexpr char BAT_RET[] = "s21103";

 constexpr char BAT_SUC[] = "s21104";

 constexpr char BAT_LL[] = "s21105";

 constexpr char VIBR_X_SUC[] = "s21099";

 constexpr char VIBR_Y_SUC[] = "s21100";

 constexpr char VIBR_Z_SUC[] = "s21101";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:da"; //Ble2

 constexpr char TEMP_RET[] = ""; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:dd"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:6d"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = ""; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

9321

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "9321";

 constexpr char TOPIC[] = "v4/matr0586";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 103.78;

 static constexpr float CAL_S = 106.34;

 static constexpr float CAL_TT = 33.45;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.28;

 static constexpr int CAL_S = 16.99;

 static constexpr int CAL_TT = 16.49;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91666";

 constexpr char RET[] = "s91667";

 constexpr char SUC[] = "s91668";

 constexpr char LL[] = "s91669";

 constexpr char ENT_CONDES[] = "s91683";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91670";

 constexpr char VOLT_S[] = "s91671";

 constexpr char VOLT_TT[] = "s91672";

 constexpr char CURR_R[] = "s91673";

 constexpr char CURR_S[] = "s91674";

 constexpr char CURR_TT[] = "s91675";

 constexpr char BAT_INS[] = "s91679";

 constexpr char BAT_RET[] = "s91680";

 constexpr char BAT_SUC[] = "s91681";

 constexpr char BAT_LL[] = "s91682";

 constexpr char VIBR_X_SUC[] = "s91676";

 constexpr char VIBR_Y_SUC[] = "s91677";

 constexpr char VIBR_Z_SUC[] = "s91678";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:19:32"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:26:0d"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:2e"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:26:37"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:26:1f"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10052 CKT 1

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10052";

 constexpr char TOPIC[] = "v4/matr0571";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 489.37;

 static constexpr float CAL_S = 107.04;

 static constexpr float CAL_TT = 110.62;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 14;

 static constexpr int CAL_TT = 14;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s100000287";

 constexpr char RET[] = "s100000288";

 constexpr char SUC[] = "s100000291";

 constexpr char LL[] = "s100000292";

 constexpr char ENT_CONDES[] = "s100000312";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s100000289";

 constexpr char VOLT_S[] = "s100000295";

 constexpr char VOLT_TT[] = "s100000296";

 constexpr char CURR_R[] = "s100000290";

 constexpr char CURR_S[] = "s100000297";

 constexpr char CURR_TT[] = "s100000298";

 constexpr char BAT_INS[] = "s100000305";

 constexpr char BAT_RET[] = "s100000306";

 constexpr char BAT_SUC[] = "s100000307";

 constexpr char BAT_LL[] = "s100000308";

 constexpr char VIBR_X_SUC[] = "s100000299";

 constexpr char VIBR_Y_SUC[] = "s100000300";

 constexpr char VIBR_Z_SUC[] = "s100000301";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:0d"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:bd"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:f2"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:dd"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:23"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif10052 CKT 2

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac_Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10052";

 constexpr char TOPIC[] = "v4/matr0571b";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 489.37;

 static constexpr float CAL_S = 107.04;

 static constexpr float CAL_TT = 110.62;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14;

 static constexpr int CAL_S = 14;

 static constexpr int CAL_TT = 14;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 32;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 33;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 35;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "xxx";

 constexpr char RET[] = "xxx";

 constexpr char SUC[] = "xxx";

 constexpr char LL[] = "s100000293";

 constexpr char ENT_CONDES[] = "s100000294";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "xxx";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s100000309";

 constexpr char CURR_S[] = "s100000310";

 constexpr char CURR_TT[] = "ss100000311";

 constexpr char BAT_INS[] = "xxx";

 constexpr char BAT_RET[] = "xxx";

 constexpr char BAT_SUC[] = "xxx";

 constexpr char BAT_LL[] = "xxx";

 constexpr char VIBR_X_SUC[] = "s100000302";

 constexpr char VIBR_Y_SUC[] = "s100000303";

 constexpr char VIBR_Z_SUC[] = "s100000304";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:13:fd:0d"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:13:fd:bd"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:13:fe:e4"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:13:fe:d9"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:13:fd:23"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif12826

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "12826";

 constexpr char TOPIC[] = "v4/matr0591";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 107.19;

 static constexpr float CAL_S = 108.02;

 static constexpr float CAL_TT = 32.95;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.39;

 static constexpr int CAL_S = 17.04;

 static constexpr int CAL_TT = 17.06;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91754";

 constexpr char RET[] = "s91755";

 constexpr char SUC[] = "s91756";

 constexpr char LL[] = "s91757";

 constexpr char ENT_CONDES[] = "s91771";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91758";

 constexpr char VOLT_S[] = "s91759";

 constexpr char VOLT_TT[] = "s91760";

 constexpr char CURR_R[] = "s91761";

 constexpr char CURR_S[] = "s91762";

 constexpr char CURR_TT[] = "s91763";

 constexpr char BAT_INS[] = "s91767";

 constexpr char BAT_RET[] = "s91768";

 constexpr char BAT_SUC[] = "s91769";

 constexpr char BAT_LL[] = "s91770";

 constexpr char VIBR_X_SUC[] = "s91764";

 constexpr char VIBR_Y_SUC[] = "s91765";

 constexpr char VIBR_Z_SUC[] = "s91766";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:d0"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2e:d3"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:73"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:2f"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:68"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

12828

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "12828";

 constexpr char TOPIC[] = "v4/matr0592";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 111;

 static constexpr float CAL_S = 109.77;

 static constexpr float CAL_TT = 31.63;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 16.75 ;

 static constexpr int CAL_S = 17.40 ;

 static constexpr int CAL_TT = 16.21;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 39;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 35;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 32;

 static constexpr int VOLTAGE_S = 34;

 static constexpr int VOLTAGE_TT = 36;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91772";

 constexpr char RET[] = "s91773";

 constexpr char SUC[] = "s91774";

 constexpr char LL[] = "s91775";

 constexpr char ENT_CONDES[] = "s91789";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91776";

 constexpr char VOLT_S[] = "s91777";

 constexpr char VOLT_TT[] = "s91778";

 constexpr char CURR_R[] = "s91779";

 constexpr char CURR_S[] = "s91780";

 constexpr char CURR_TT[] = "s91781";

 constexpr char BAT_INS[] = "s91785";

 constexpr char BAT_RET[] = "s91786";

 constexpr char BAT_SUC[] = "s91787";

 constexpr char BAT_LL[] = "s91788";

 constexpr char VIBR_X_SUC[] = "s91782";

 constexpr char VIBR_Y_SUC[] = "s91783";

 constexpr char VIBR_Z_SUC[] = "s91784";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:e6"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:19:34"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:26:39"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:70"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:68"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

12862

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "12862";

 constexpr char TOPIC[] = "v4/matr0580";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 162.75;

 static constexpr float CAL_S = 000;

 static constexpr float CAL_TT = 000;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15.42;

 static constexpr int CAL_S = 000;

 static constexpr int CAL_TT = 000;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 36;

 static constexpr int CURRENT_TT = 39;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 33;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91555";

 constexpr char RET[] = "s91556";

 constexpr char SUC[] = "s91557";

 constexpr char LL[] = "s91558";

 constexpr char ENT_CONDES[] = "s91568";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91559";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s91560";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxxx";

 constexpr char BAT_INS[] = "s91564";

 constexpr char BAT_RET[] = "s91565";

 constexpr char BAT_SUC[] = "s91566";

 constexpr char BAT_LL[] = "s91567";

 constexpr char VIBR_X_SUC[] = "s91561";

 constexpr char VIBR_Y_SUC[] = "s91562";

 constexpr char VIBR_Z_SUC[] = "s91563";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:fd"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:19:d4"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:84"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:26:37"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:26:1f"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

13217

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "13217";

 constexpr char TOPIC[] = "v4/matr0542";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 266;

 static constexpr float CAL_S = 452.75;

 static constexpr float CAL_TT = 462.42;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 12.76;

 static constexpr int CAL_S = 4.88;

 static constexpr int CAL_TT = 4.50;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 36;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 39;

 static constexpr int VOLTAGE_TT = 32;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91406";

 constexpr char RET[] = "s91407";

 constexpr char SUC[] = "s91408";

 constexpr char LL[] = "s91409";

 constexpr char ENT_CONDES[] = "s91419";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91411";

 constexpr char VOLT_S[] = "xxxxx";

 constexpr char VOLT_TT[] = "xxxx";

 constexpr char CURR_R[] = "s91410";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxxx";

 constexpr char BAT_INS[] = "s91415";

 constexpr char BAT_RET[] = "s91416";

 constexpr char BAT_SUC[] = "s91417";

 constexpr char BAT_LL[] = "s91418";

 constexpr char VIBR_X_SUC[] = "s91412";

 constexpr char VIBR_Y_SUC[] = "s91413";

 constexpr char VIBR_Z_SUC[] = "s91414";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:e9"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2e:b2"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:26:02"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:63"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "xx:xx:29:0e:19:xx"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

33213

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "33213";

 constexpr char TOPIC[] = "v4/matr0579";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 257.13;

 static constexpr float CAL_S = 452.75;

 static constexpr float CAL_TT = 462.42;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 17.04;

 static constexpr int CAL_S = 4.88;

 static constexpr int CAL_TT = 4.50;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 36;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 39;

 static constexpr int VOLTAGE_TT = 32;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91541";

 constexpr char RET[] = "s91542";

 constexpr char SUC[] = "s91543";

 constexpr char LL[] = "s91544";

 constexpr char ENT_CONDES[] = "s91554";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91545";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s91546";

 constexpr char CURR_S[] = "xxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s91550";

 constexpr char BAT_RET[] = "s91551";

 constexpr char BAT_SUC[] = "s91552";

 constexpr char BAT_LL[] = "s91553";

 constexpr char VIBR_X_SUC[] = "s91547";

 constexpr char VIBR_Y_SUC[] = "s91548";

 constexpr char VIBR_Z_SUC[] = "s91549";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:2e:d0"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:25:e7"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:25:f0"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:28"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:2e:ec"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

36517

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "36517";

 constexpr char TOPIC[] = "v4/matr0543";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 206;

 static constexpr float CAL_S = 0000;

 static constexpr float CAL_TT = 000;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15.6;

 static constexpr int CAL_S = 000;

 static constexpr int CAL_TT = 000;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 36;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91420";

 constexpr char RET[] = "s91421";

 constexpr char SUC[] = "s91422";

 constexpr char LL[] = "s91423";

 constexpr char ENT_CONDES[] = "xxxx";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91424";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxxx";

 constexpr char CURR_R[] = "s91425";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s91429";

 constexpr char BAT_RET[] = "s91430";

 constexpr char BAT_SUC[] = "s91431";

 constexpr char BAT_LL[] = "s91432";

 constexpr char VIBR_X_SUC[] = "s91426";

 constexpr char VIBR_Y_SUC[] = "s91427";

 constexpr char VIBR_Z_SUC[] = "s91428";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:25:e5"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2e:b6"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:ea"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:2f:a3"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "xx:xx:29:0e:19:7a"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

36518

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "36518";

 constexpr char TOPIC[] = "v4/matr0582";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 161.04;

 static constexpr float CAL_S = 0000;

 static constexpr float CAL_TT = 000;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 15.36;

 static constexpr int CAL_S = 000;

 static constexpr int CAL_TT = 000;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 36;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 32;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91583";

 constexpr char RET[] = "s91584";

 constexpr char SUC[] = "s91585";

 constexpr char LL[] = "s91586";

 constexpr char ENT_CONDES[] = "s91596";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91587";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxxx";

 constexpr char CURR_R[] = "s91588";

 constexpr char CURR_S[] = "xxxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s91592";

 constexpr char BAT_RET[] = "s91593";

 constexpr char BAT_SUC[] = "s91594";

 constexpr char BAT_LL[] = "s91595";

 constexpr char VIBR_X_SUC[] = "s91589";

 constexpr char VIBR_Y_SUC[] = "s91590";

 constexpr char VIBR_Z_SUC[] = "s91591";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:26:1e"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:26:0a"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:92"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:25:de"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:41"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

10017

#ifndef _ENV_H

#define _ENV_H

#include <stdint.h>

// Definir níveis de log

#define LOG_LEVEL_NONE 0 // Sem logs

#define LOG_LEVEL_ERROR 1 // Apenas erros

#define LOG_LEVEL_WARN 2 // Avisos e erros

#define LOG_LEVEL_INFO 3 // Informações, avisos e erros

#define LOG_LEVEL_DEBUG 4 // Mensagens de debug, informações, avisos e erros

// Definir qual o nível de log ativo

#define CURRENT_LOG_LEVEL LOG_LEVEL_ERROR

// Funções de log condicional com base no nível

#define LOG_LEVEL_ERROR 1

#define LOG_LEVEL_WARN 2

#define LOG_LEVEL_INFO 3

#define LOG_LEVEL_DEBUG 4

// Defina o nível de log atual

#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG

// Macros de log condicional com suporte para mensagens simples e formatadas

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_ERROR

#define LOG_ERROR(fmt, ...) \

 do \

 { \

 Serial.printf("[ERROR] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_ERROR(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_WARN

#define LOG_WARN(fmt, ...) \

 do \

 { \

 Serial.printf("[WARN] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_WARN(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_INFO

#define LOG_INFO(fmt, ...) \

 do \

 { \

 Serial.printf("[INFO] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_INFO(fmt, ...)

#endif

#if CURRENT_LOG_LEVEL >= LOG_LEVEL_DEBUG

#define LOG_DEBUG(fmt, ...) \

 do \

 { \

 Serial.printf("[DEBUG] " fmt "\n", ##__VA_ARGS__); \

 Serial.flush(); \

 } while (0)

#else

#define LOG_DEBUG(fmt, ...)

#endif

// WiFi Network Credentials

constexpr char NETWORK_CLIENT[] = "SmartVac Telemetria";

constexpr char PASSW[] = "br@skem#2023";

constexpr uint32_t DELAY_MS_READER_TASK = 300; //300ms para que os envios sejam feitos a cada 20s

// Define o atraso em milissegundos para tarefas de leitura (10.000 parece ser um número mágico)

// Equipment Identifiers

namespace Equipment

{

 constexpr char TAG[] = "10017";

 constexpr char TOPIC[] = "v4/matr0587";

 constexpr char SENDING_SERVER[] = "web.smartvac.app";

 constexpr uint16_t SENDING_PORT = 1883;

 constexpr unsigned long SENDING_VELOCITY = 115200;

 constexpr uint16_t SENDING_KEEPALIVE = 200;

 constexpr uint32_t DELAY_MS = 500; // Delay time in milliseconds for tasks

}

// Voltage Calibration Constants

struct VoltageCalibration

{

 static constexpr float CAL_R = 223.10;

 static constexpr float CAL_S = 0;

 static constexpr float CAL_TT = 0;

};

// Current Calibration Constants

struct CurrentCalibration

{

 static constexpr int CAL_R = 14.5;

 static constexpr int CAL_S = 0;

 static constexpr int CAL_TT = 0;

};

// Pin Definitions

struct Pins

{

 static constexpr int CURRENT_R = 34;

 static constexpr int CURRENT_S = 33;

 static constexpr int CURRENT_TT = 32;

 static constexpr int TEMPERATURE = 16;

 static constexpr int VOLTAGE_R = 35;

 static constexpr int VOLTAGE_S = 36;

 static constexpr int VOLTAGE_TT = 39;

};

// Sensor Addresses

namespace Sensors

{

 constexpr char INS[] = "s91698";

 constexpr char RET[] = "s91699";

 constexpr char SUC[] = "s91700";

 constexpr char LL[] = "s91701";

 constexpr char ENT_CONDES[] = "s91711";

 constexpr char SAD_CONDES[] = "xxxxx";// essa temp não ta sendo enviada, ignorar ela ou adicionar nos envios se necessario

 constexpr char VOLT_R[] = "s91702";

 constexpr char VOLT_S[] = "xxx";

 constexpr char VOLT_TT[] = "xxx";

 constexpr char CURR_R[] = "s91703";

 constexpr char CURR_S[] = "xxx";

 constexpr char CURR_TT[] = "xxx";

 constexpr char BAT_INS[] = "s91707";

 constexpr char BAT_RET[] = "s91708";

 constexpr char BAT_SUC[] = "s91709";

 constexpr char BAT_LL[] = "s91710";

 constexpr char VIBR_X_SUC[] = "s91704";

 constexpr char VIBR_Y_SUC[] = "s91705";

 constexpr char VIBR_Z_SUC[] = "s91706";

}

// BLE Sensor MAC Addresses

namespace BLEAddresses

{

 constexpr char TEMP_INSU[] = "bc:57:29:0e:19:35"; //Ble2

 constexpr char TEMP_RET[] = "bc:57:29:0e:2e:ee"; //Ble1

 constexpr char TEMP_SUC[] = "bc:57:29:0e:19:b4"; //Ble4

 constexpr char TEMP_LL[] = "bc:57:29:0e:19:3a"; //Ble3

 constexpr char TEMP_ENT_CONDES[] = "bc:57:29:0e:19:81"; //Ble4

 constexpr char TEMP_SAI_CONDES[] = ""; //Ble4

};

#endif

