#include <WiFi.h>
#include <DHT.h>
#include <HX711.h>
// DHT senzor nastavenia
#define DHTPIN 4 // GPIO pin, na ktorom je DHT22
#define DHTTYPE DHT22 // Typ senzora
DHT dht(DHTPIN, DHTTYPE);
// HX711 senzor nastavenia
#define LOADCELL_DOUT_PIN 5 // Data pin HX711
#define LOADCELL_SCK_PIN 6 // Clock pin HX711
HX711 scale;
// Wi-Fi nastavenia
const char* ssid = "Wokwi-GUEST"; // Nahraďte svojou Wi-Fi SSID
const char* password = ""; // Nahraďte svojím heslom
WiFiServer server(80); // Webový server na porte 80
void setup() {
Serial.begin(115200);
// Inicializácia DHT senzoru
Serial.println("Inicializácia DHT senzoru...");
dht.begin();
// Inicializácia HX711
Serial.println("Inicializácia HX711...");
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
// Pripojenie na Wi-Fi
Serial.print("Pripojovanie na Wi-Fi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWi-Fi pripojené!");
Serial.print("IP adresa: ");
Serial.println(WiFi.localIP());
// Spustenie webového servera
server.begin();
}
void loop() {
// Kontrola, či je klient pripojený
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println("Nový klient pripojený!");
while (client.connected()) {
if (client.available()) {
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Prečítanie údajov zo senzora DHT22
float teplota = dht.readTemperature();
float vlhkost = dht.readHumidity();
// Skontrolovanie platnosti údajov DHT22
if (isnan(teplota) || isnan(vlhkost)) {
teplota = 0.0;
vlhkost = 0.0;
}
// Prečítanie údajov z HX711
float hmotnost = 0.0;
if (scale.is_ready()) {
hmotnost = scale.get_units(10); // 10 vzoriek pre priemer
} else {
Serial.println("HX711 nie je pripravený!");
}
// HTML odpoveď
String html = "<!DOCTYPE html><html><head><title>Senzor Údaje</title></head><body>";
html += "<h1>Senzor Údaje</h1>";
html += "<p>Teplota: " + String(teplota) + " °C</p>";
html += "<p>Vlhkosť: " + String(vlhkost) + " %</p>";
html += "<p>Hmotnosť: " + String(hmotnost) + " kg</p>";
html += "</body></html>";
// Poslanie odpovede klientovi
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
client.println(html);
client.stop();
Serial.println("Údaje odoslané klientovi!");
}
}
}