//# Professor Cristiano Teixeira
//# Mudanças do original Sob Licença Apache 2.0
#include <WiFi.h>
#include <PubSubClient.h>
#include "DHTesp.h"
#include "HX711.h"
// WiFi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// MQTT
const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient;
PubSubClient client(espClient);
// DHT22
#define DHT_PIN 15
DHTesp dht;
// PIR
#define PIR_PIN 13
// HX
HX711 scale;
// MQTT Reconnect
void reconnect() {
while (!client.connected()) {
Serial.print("Conectando ao MQTT...");
if (client.connect("Aula_SEI_2026")) {
Serial.println("Conectado com Sucesso");
} else {
Serial.println("Desconectado");
delay(2000);
}
}
}
void setup() {
Serial.begin(115200);
// DHT22
dht.setup(DHT_PIN, DHTesp::DHT22);
// PIR
pinMode(PIR_PIN, INPUT);
//HX Mudar as portas
scale.begin(19, 18);
// WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi conectado!");
// MQTT
client.setServer(mqtt_server, 1883);
}
void loop() {
// MQTT reconect
if (!client.connected()) {
reconnect();
}
client.loop();
// Faço todas as leituras
TempAndHumidity data = dht.getTempAndHumidity();
String temp = String(data.temperature, 2);
String hum = String(data.humidity, 1);
String massa = String(scale.get_units()/409.6);
bool motion = digitalRead(PIR_PIN);
String move = String(motion);
//client.publish("/SEI/temp", temp.c_str());
//client.publish("/SEI/hum", hum.c_str());
Serial.println("Temperatura : " + temp + "C");
Serial.println("Umidade : " + hum);
//client.publish("/SEI/presenca", "Presenca" + move.c_str());
Serial.println("Presenca: "+ move);
//client.publish("/SEI/massa", massa.c_str());
Serial.println("Massa: "+ massa);
delay(3000);
}