Untitled

 avatar
unknown
plain_text
12 days ago
1.8 kB
3
Indexable
#include <WiFi.h>
#include <WebServer.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

#define DHTPIN 2
#define DHTTYPE DHT11

const char* ap_ssid = "pico";
const char* ap_password = "12345678";

WebServer server(80);

DHT_Unified dht(DHTPIN, DHTTYPE);

uint32_t delayMS;
long long t0;

int temp;
int hum;

void setup() {
  Serial.begin(115200);

  delay(2000);

  dht.begin();
  sensor_t sensor;
  dht.temperature().getSensor(&sensor);
  delayMS = sensor.min_delay / 1000;
  t0 = 0;
  temp = 0;
  hum = 0;

  // Create Access Point
  WiFi.softAP(ap_ssid, ap_password);

  IPAddress IP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(IP);

  // Simplified route - just returns plain text
  server.on("/", HTTP_GET, []() {
    server.send(200, "text/plain", "Hello from PICO");
  });

  server.on("/temp", HTTP_GET, []() {
    server.send(200, "text/plain", "Current temp: " + String(temp) + " deg C");
  });

  server.on("/hum", HTTP_GET, []() {
    server.send(200, "text/plain", "Current hum: " + String(hum) + " %");
  });

  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  if ((millis() - t0) >= delayMS) {
    sensors_event_t event;
    dht.temperature().getEvent(&event);
    if (isnan(event.temperature)) {
      Serial.println(F("Error reading temperature!"));
    } else {
      temp = event.temperature;
      Serial.printf("temp: %d  ", temp);
    }

    dht.humidity().getEvent(&event);
    if (isnan(event.relative_humidity)) {
      Serial.println(F("Error reading temperature!"));
    } else {
      hum = event.relative_humidity;
      Serial.printf("hum: %d\n", hum);
    }

    t0 = millis();
  }

  server.handleClient();
}
Leave a Comment