#include <WiFi.h>
#include <PubSubClient.h>
#include <DHTesp.h>
#define LED 5
bool ledState = false;
//DHT Sensori tyyppi
DHTesp dht;
// WiFi asetukset
const char *ssid = "Wokwi-GUEST";
const char *password = "";
unsigned long lastMsg = 0;
float temp = 0;
float hum = 0;
const int DHT_PIN = 15; // Assuming DHT22 is connected to pin 2
// MQTT Broker asetukset
const char *mqtt_broker = "test.mosquitto.org";
const char *mqtt_topic_temp = "esp/temp";
const char *mqtt_topic_hum = "esp/hum";
const int mqtt_port = 1883;
WiFiClient espClient;
PubSubClient mqtt_client(espClient);
void connectToWiFi();
void connectToMQTTBroker();
void mqttCallback(char *topic, byte *payload, unsigned int length);
void setup() {
Serial.begin(115200);
connectToWiFi();
mqtt_client.setServer(mqtt_broker, mqtt_port);
mqtt_client.setCallback(mqttCallback);
connectToMQTTBroker();
dht.setup(DHT_PIN, DHTesp::DHT22);
}
void connectToWiFi() {
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to the WiFi network");
}
void connectToMQTTBroker() {
while (!mqtt_client.connected()) {
String client_id = "esp32s-client-" + String(WiFi.macAddress());
Serial.printf("Connecting to MQTT Broker as %s.....\n", client_id.c_str());
if (mqtt_client.connect(client_id.c_str())) {
Serial.println("Connected to MQTT broker");
} else {
Serial.print("Failed to connect to MQTT broker, rc=");
Serial.print(mqtt_client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void mqttCallback(char *topic, byte *payload, unsigned int length) {
// Handle MQTT messages if needed
}
void loop() {
if (!mqtt_client.connected()) {
connectToMQTTBroker();
}
mqtt_client.loop();
// Simuloidaan lämpötila ja kosteusarvoja
float temp_simulated = random(0, 40); // Simuloidaan lämpötila välillä 0-40°C
float hum_simulated = random(20, 80); // Simuloidaan kosteusarvo välillä 20-80%
// Publish simuloidut arvot MQTT-palvelimelle
mqtt_client.publish(mqtt_topic_temp, String(temp_simulated).c_str());
mqtt_client.publish(mqtt_topic_hum, String(hum_simulated).c_str());
Serial.print("Published Simulated Temp: ");
Serial.println(temp_simulated);
Serial.print("Published Simulated Humidity: ");
Serial.println(hum_simulated);
delay(5000); // Säädä viivettä tarvittaessa
}
Loading
esp32-s2-devkitm-1
esp32-s2-devkitm-1