; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
-[env:wemos_d1_mini32]
-platform = espressif32
-board = wemos_d1_mini32
+[env:d1_mini_lite]
+platform = espressif8266
+board = d1_mini_lite
framework = arduino
+monitor_speed = 115200
+lib_deps =
+ bblanchon/ArduinoJson@^7.2.2
+ esp32async/ESPAsyncWebServer@^3.12.0
+ esp32async/ESPAsyncTCP@^2.0.0
+ adafruit/Adafruit BME280 Library@^2.3.0
+ adafruit/Adafruit Unified Sensor@^1.1.15
#include <Arduino.h>
-// put function declarations here:
-int myFunction(int, int);
+#include <ESP8266WiFi.h>
+#include <ESPAsyncTCP.h>
+#include <ESPAsyncWebServer.h>
+
+#include <Wire.h>
+#include <Adafruit_Sensor.h>
+#include <Adafruit_BME280.h>
+
+#include "AsyncJson.h"
+#include "ArduinoJson.h"
+
+#include "main.h"
+#include "secrets.h"
+
+void connectToWiFi();
+void setupWebServer();
+void setupBME280();
+
+WiFiClient wifiClient;
+AsyncWebServer server(80);
+
+Adafruit_BME280 bme;
+
+void connectToWiFi() {
+ WiFi.begin(ssid, pass);
+
+ Serial.print("Connecting");
+ while (WiFi.status() != WL_CONNECTED)
+ {
+ delay(500);
+ Serial.print(".");
+ }
+ Serial.println();
+
+ Serial.print("Connected, IP address: ");
+ Serial.println(WiFi.localIP());
+}
+
+void setupWebServer() {
+ server.on("/api/sensors", HTTP_GET, [] (AsyncWebServerRequest *request) {
+
+ AsyncResponseStream *response = request->beginResponseStream("application/json");
+ JsonDocument doc;
+
+ doc["temperature"] = bme.readTemperature();
+ doc["pressure"] = bme.readPressure() / 1000;
+ doc["humidity"] = bme.readHumidity();
+ doc["altitude"] = bme.readAltitude(SEALEVELPRESSURE_HPA);
+
+ serializeJson(doc, *response);
+ request->send(response);
+
+ });
+
+ server.begin();
+}
+
+void setupBME280() {
+ bool status;
+
+ status = bme.begin(0x76);
+ for (int i = 10; i < 10; i++) {
+ if (status) continue;
+ delay(100);
+ Serial.print("Could not connect to BME, retrying");
+ }
+
+ Serial.print("Connected to BME280!");
+}
void setup() {
- // put your setup code here, to run once:
- int result = myFunction(2, 3);
+ Serial.begin(115200);
+ Serial.println();
+
+ connectToWiFi();
+ setupWebServer();
+ setupBME280();
+
+ pinMode(SOAKER, OUTPUT);
}
void loop() {
- // put your main code here, to run repeatedly:
+
+ delay(1000);
}
-// put function definitions here:
-int myFunction(int x, int y) {
- return x + y;
-}
\ No newline at end of file