#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "wokwi-iot-gateway";
const char* password = "";
const char* mqtt_server = "broker.hivemq.com";
const int mqtt_port = 1883;
const char* topic = "sensor/estado";
WiFiClient espClient;
PubSubClient client(espClient);
const int DHT_PIN = 15;
const int led = 5;
const int pir = 19;
void setup() {
pinMode(led, OUTPUT);
pinMode(pir, INPUT);
Serial.begin(115200);
// Conexão Wi-Fi
Serial.print("Conectando-se ao Wi-Fi");
WiFi.begin("Wokwi-GUEST", "", 6);
if (WiFi.status() != WL_CONNECTED) {
client.connect("sensor/estado");
Serial.println(" Conectado ao Wifi");
delay(500);
// Conexão MQTT
client.setServer(mqtt_server, mqtt_port);
while (!client.connected()) {
Serial.print("Conectando ao MQTT...");
if (client.connect("sensor/estado")) { // Nome do cliente MQTT
Serial.println("Conectado ao MQTT");
client.subscribe(topic);
} else {
Serial.print("Falha na conexão com o MQTT, erro: ");
Serial.println(client.state());
delay(2000);
}
}
}
}
void loop() {
const int IP = digitalRead(pir);
Serial.println(IP);
delay(100);
if (IP == 1) {
digitalWrite(led, HIGH);
client.publish(topic, "Movimento Detectado"); // Envia mensagem ao tópico MQTT
delay(1000);
} else {
digitalWrite(led, LOW);
client.publish(topic, "Movimento não detectado"); // Envia mensagem ao tópico MQTT
delay(1000);
}
client.loop(); // Mantém a conexão MQTT ativa
}