// Bibliotecas
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
#include <PubSubClient.h>
// dht
#define DHTPIN 33
DHT dht(DHTPIN, DHT22);
int umidadeDHT;
int temperaturaDHT;
// wifi
const char ssid[] = "moto";
const char pass[] = "mcfeliz11";
WiFiClient nestVision;
// mqttt
PubSubClient client(nestVision);
const char* mqtt_Broker = "mqtt.eclipseprojects.io";
const int portaBroker = 1883;
const char* topicoTemperatura = "nestVision/temperatura";
const char* topicoUmidade = "nestVision/umidade";
void tarefa1(void *pvParameters) { //cria a função de tarefa e puxa seus parametros
while(1) {
Serial.println("Tarefa 1 executando...");
umidadeDHT = dht.readHumidity();
temperaturaDHT = dht.readTemperature();
Serial.print("Temperatura: ");
Serial.print(temperaturaDHT);
Serial.print("C° ");
Serial.print("Umidade: ");
Serial.print(umidadeDHT);
Serial.println("%");
vTaskDelay(3000/portTICK_PERIOD_MS); // pausa a tarefa por 3s
}
}
void tarefa2(void *pvParameters) {
while(1) {
Serial.println("Tarefa 2 executando...");
client.publish(topicoTemperatura, String(temperaturaDHT).c_str(), true);
client.publish(topicoUmidade, String(umidadeDHT).c_str(), true);
vTaskDelay(1000/portTICK_PERIOD_MS); // pausa a tarefa
}
}
void setup() {
Serial.begin(115200);
xTaskCreate(
tarefa1, // função a ser chamada
"tarefa1", // nome da tarefa
10000, //memoria reservada para a tarefa
NULL, // parametro a ser passado
1, //prioridade da tarefa
NULL, //task handle
0 // nucleo que sera rodado
);
xTaskCreate(tarefa2, "tarefa2", 10000, NULL, 2, NULL, 1);
dht.begin();
}
void loop() {
Serial.println("Conectando... ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("CONECTADO");
Serial.print("travei aqui if");
while (!client.connected()) {
Serial.println("travei aqui");
client.connect("nestVision");
}
}