#include <WiFi.h>
#include <WebServer.h>
#include <SPIFFS.h>
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
WebServer server(80);
void logSensorData() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
File file = SPIFFS.open("/log.txt", FILE_APPEND);
if (file) {
file.print("Temp: ");
file.print(temp);
file.print(" C, Hum: ");
file.print(hum);
file.println(" %");
file.close();
}
Serial.println("Data Logged to Flash");
}
String readLogs() {
File file = SPIFFS.open("/log.txt");
String content = "";
while (file.available()) {
content += char(file.read());
}
file.close();
return content;
}
void handleRoot() {
String page = "<h2>ESP32 Flash Logging Demo</h2>";
page += "<a href='/log'>Log Sensor Reading</a><br><br>";
page += "<a href='/view'>View Logs</a>";
server.send(200, "text/html", page);
}
void handleLog() {
logSensorData();
server.sendHeader("Location", "/");
server.send(303);
}
void handleView() {
String logs = readLogs();
server.send(200, "text/plain", logs);
}
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
if (!SPIFFS.begin(true)) {
Serial.println("SPIFFS Mount Failed");
}
server.on("/", handleRoot);
server.on("/log", handleLog);
server.on("/view", handleView);
server.begin();
Serial.println("Web server started");
}
void loop() {
server.handleClient();
}