#include <DHT.h>
#include <WiFi.h>
#include <WiFiClientSecure.h> //Biblioteca de conexao segura
#include <PubSubClient.h> // Para conexao com o Broker
String nome_wifi = "Wokwi-GUEST";
String senha = "";
//criando objeto para conectar com o Broker, com conexao segura
WiFiClientSecure espClient;
PubSubClient MQTT(espClient);
//Endereço do broker
char* broker = "9d19cc700cc44018b16cc529b323fc9d.s1.eu.hivemq.cloud";
int pinoDHT = 4;
DHT sensorDHT(pinoDHT, DHT22);
void setup() {
Serial.begin(9600);
sensorDHT.begin();
conectarWiFi();
//Habilita a verificaçao de segurança do servidor
espClient.setInsecure();
//Iniciar o servidor MQTT na porta 8883
MQTT.setServer(broker, 8883);
}
void loop() {
//Verificando se o servidor MQTT esta conectado
if(MQTT.connected() == false){
ConectarMQTT();
}
MQTT.loop();
float temperatura = sensorDHT.readTemperature();
//Publicando a temperatura no broker
char tempStr[10];//variavel char para converter a temperatura
dtostrf(temperatura,1,2, tempStr);
//dtostrf(float_valor, largura, casas_decimais, buffer_destino);
MQTT.publish("aula/10/temperatura", tempStr);
float humidade = sensorDHT.readHumidity();
char humStr[10];
dtostrf(humidade,1,2, humStr);
MQTT.publish("aula/10/umidade", humStr);
}
void ConectarMQTT(){
Serial.print("Conectando ao MQTT...");
//tentando conexado ao broker
if(MQTT.connect("Aluno1", "ricardodias", "TesteSenai1")){
Serial.println("Conectado");
}else{
Serial.println("Erro ao conectar!");
}
}
void conectarWiFi(){
//Inicia a conexao WIFI passando como parametro nome e senha da rede
WiFi.begin(nome_wifi, senha);
Serial.print("Conectando");
Serial.println(nome_wifi);
while(WiFi.status() != WL_CONNECTED ){
Serial.print(".");
delay(500);
}
Serial.print("Wifi conectado! Ip obtido");
//Exibir o ip no monitor
Serial.println(WiFi.localIP());
}