#include #include #include #define DHTPIN D4 // Pin where the DHT sensor is connected #define DHTTYPE DHT11 // DHT 11 sensor DHT dht(DHTPIN, DHTTYPE); #include Adafruit_BMP280 bmp; // float ref; const char* ssid = "WeMoSat Data"; const char* password = "12345678"; ESP8266WebServer server(80); float temperature = 0.0; float humidity = 0.0; float altitude = 0.0; // Placeholder for altitude data const int maxValues = 10; float tempArray[maxValues] = {0}; float humArray[maxValues] = {0}; float altArray[maxValues] = {0}; String timeArray[maxValues]; int dataIndex = 0; // HTML Page with Custom Canvas Chart and Table const char htmlPage[] PROGMEM = R"rawliteral( ESP8266 DHT Server

ESP8266 DHT Server

Time Temperature (°C) Humidity (%) Altitude (m)
)rawliteral"; // Function to return the temperature value as a string void handleTemperature() { server.send(200, "text/plain", String(temperature)); } // Function to return the humidity value as a string void handleHumidity() { server.send(200, "text/plain", String(humidity)); } // Function to return the altitude value as a string void handleAltitude() { server.send(200, "text/plain", String(altitude)); } // Function to serve the main HTML page void handleRoot() { server.send_P(200, "text/html", htmlPage); } void setup() { Serial.begin(115200); dht.begin(); if (!bmp.begin(0x76)) { Serial.println("Could not find a valid BMP280 sensor, check wiring!"); // while (1); This has commented to prevent looping if BMP is not connected } ref = bmp.readPressure() / 100; // Set up Wi-Fi WiFi.softAP(ssid, password); IPAddress IP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(IP); // Set up server routes server.on("/", handleRoot); server.on("/temperature", handleTemperature); server.on("/humidity", handleHumidity); server.on("/altitude", handleAltitude); // Start the server server.begin(); Serial.println("HTTP server started"); } void loop() { // Measure temperature, humidity, and altitude (using a placeholder for altitude) temperature = dht.readTemperature(); humidity = dht.readHumidity(); altitude = bmp.readAltitude(ref); //random(100, 500); // Placeholder for altitude data, replace with real data if available altitude = round(altitude * 2.0) / 2.0; // Handle client requests server.handleClient(); }