1
resposta

O meu eu consegui conectar ao app do MQTT, mas o app trava sempre que mando uma leitura, manda só quando incia. Testei em varios apps, e todos travaram. o problema pode ser no meu Esp? Porque no Monitor Serial da IDE tambem trava.

//DHT biblio
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN,DHTTYPE);
float umidade = dht.readHumidity();
float temperatura = dht.readTemperature();
int Luz = analogRead (A0);

//WIFI
#include <ESP8266WiFi.h>
const char* ssid = "fereira";
const char* password = "59342772";
WiFiClient nodemcuClient;

//---MQTT--
#include <PubSubClient.h>
const char* mqtt_Broker = "mqtt.eclipse.org";
const char* mqtt_ClientID = "Lucascliente";
PubSubClient client(nodemcuClient);
const char* topicoTemperatura = "lab-luc/temperatura";
const char* topicoUmidade = "lab-luc/umidade";
const char* topicoLuz = "lab-luc/Luz";

//--Config WIFI--
void conectarWifi(){
  delay(10);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }  
   Serial.println("WiFi conectado");
}

//--Reconectar cliente MQTT
void reconectarMQTT(){
    while (!client.connected()) {
     client.connect(mqtt_ClientID); 
    }
}
//---Publica Temp e Umi---
void publicarTemperaturaUmidadeNoTopico(){
  client.publish(topicoTemperatura, String (temperatura).c_str(),true);
  client.publish(topicoUmidade, String (umidade).c_str(),true);
}
//---Publica Luminosidade---  
void publicaLuminodidade(){
  client.publish(topicoLuz,String(Luz).c_str(),true);
}

//---Medir Temp e Umi---
 void medirTemperaturaUmidade(){
 umidade = dht.readHumidity();
 temperatura = dht.readTemperature();
  Serial.print(" Temperatura: ");
  Serial.print(temperatura);
  Serial.print("*C");
  Serial.print(",");
  Serial.print("Umidade:");
  Serial.println(umidade);
 }

//--Luminosidade--
 void medirLuminosidade(){


  Serial.print(" Luminosidade: ");
  Serial.println(Luz);
  delay(0);
  } 
void setup() {
  Serial.begin(115200);
  conectarWifi();
  client.setServer(mqtt_Broker,1883);

}

void loop() {
  if (!client.connected()){
    reconectarMQTT();
  }
  medirTemperaturaUmidade();
  publicarTemperaturaUmidadeNoTopico();
  medirLuminosidade();
  publicaLuminodidade();
}
1 resposta

Fala Lucas, tudo bem ?

Esta leitura que aparece no seu monitor serial está correta? Ou é algum valor estranho ? Ex: 2147483647

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software