Escolar Documentos
Profissional Documentos
Cultura Documentos
void setup() {
ACS.autoMidPoint();
WiFi.begin(ssid, password);
client.setServer(mqttServer, mqttPort);
client.setCallback(callback);
while (!client.connected()) {
#ifdef DEBUG
Serial.println("Conectando ao Broker MQTT...");
#endif
} else {
#ifdef DEBUG
Serial.print("falha estado ");
Serial.print(client.state());
#endif
delay(2000);
ESP.restart(); //Reset geral se falhar conexão co broker
}
}
//subscreve no tópico
client.subscribe(mqttTopicSub);
#ifdef DEBUG
Serial.print("Mensagem chegou do tópico: ");
Serial.println(topic);
Serial.print("Mensagem:");
Serial.print(strMSG);
Serial.println();
Serial.println("-----------------------");
#endif
if (conectado) {
#ifdef DEBUG
Serial.println("Conectado!");
#endif
//subscreve no tópico
client.subscribe(mqttTopicSub, 1); //nivel de qualidade: QoS 1
} else {
#ifdef DEBUG
Serial.println("Falha durante a conexão.Code: ");
Serial.println( String(client.state()).c_str());
Serial.println("Tentando novamente em 10 s");
#endif
//Aguarda 10 segundos
delay(10000);
}
}
}
void loop() {
uint32_t AD = 0;
for (int i = 0; i < 100; i++)
{
AD += adc1_get_raw(ADC1_CHANNEL_6);//Obtem o valor RAW do ADC
ets_delay_us(30);
}
AD /= 100;
double Vout, Rt = 0;
double T, Tc, Tf = 0;
double adc = 0;
adc = analogRead(ThermistorPin);
adc = AD;
delay(15);
float average = 0;
uint32_t start = millis();
for (int i = 0; i < 100; i++)
{
if (Tc > 100 || mA > 13) // Se temperatura for maior que 100c° ou a Corrente
eletrica mA for maior que 4A, desligará o soprador.
{
//(char)payload[0] == 'a';
digitalWrite(S1, HIGH); //coloca saída em LOW para ligar
snprintf (msg, MSG_BUFFER_SIZE, "Soprado_1 Desligado");
client.publish("ete/Soprador_1", msg);
// snprintf (msg, MSG_BUFFER_SIZE, "Sobrecarga/Sobre corrente"); //Mensagem tag
para ser inserida
//client.publish("ete/SobreCarga", msg);
}
Serial.print(" A: ");
Serial.println(mA);
Serial.print(" Temp : ");
Serial.println(Tc);
delay(2);
delay(delayMS);
//sensors_event_t event;
sprintf(msg, "%f", mA);
client.publish("ete/corrente", msg);
sprintf(msg, "%f", Tc);
client.publish("ete/temperatura", msg);
if (!client.connected()) {
reconect();
}
client.loop();
}