//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();
}