Last active
August 3, 2022 07:40
-
-
Save ZanzyTHEbar/832411883384f5ab21b7901a6c822294 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <ESP8266WiFi.h> // Simple Libary for Wifi AP to use | |
const char WiFiAPPSK[] = "xxx"; // Set Wifi Password | |
const char AP_NameChar[] = "xxx"; // Set Wifi Name | |
#include <Hash.h> // Used for webserver | |
#include <ESPAsyncTCP.h> // Used for webserver | |
#include <ESPAsyncWebServer.h> // Used for webserver | |
#include <FS.h> // Used for webserver | |
AsyncWebServer server(80); // Create AsyncWebServer object on port 80 | |
#include <Wire.h> //Used for temp etc | |
#include <SPI.h> //Used for temp etc | |
#include <Adafruit_BMP280.h> //Used for temp etc | |
Adafruit_BMP280 bmp; | |
String _jsonDocument; | |
SensorData_t sensorData; | |
void createJSONDocument(float temp, float humidity, float pressure) | |
{ | |
char buffer[100]; | |
snprintf(buffer, sizeof(buffer), "{\"temp\": %f, \"humidity\": %f, \"pressure\": %f}", temp, humidity, pressure); | |
_jsonDocument = buffer; | |
} | |
void readBME280() | |
{ | |
float t = bmp.readTemperature(); | |
float p = bmp.readPressure(); | |
float h = bmp.readHumidity(); | |
if (!isnan(t) && !isnan(p) && !isnan(h)) | |
{ | |
Serial.println(t); | |
createJSONDocument(t, h, p); | |
return; | |
} | |
Serial.println("Failed to read from BME280 sensor!"); | |
} | |
void setup() | |
{ | |
Serial.begin(9600); // Start Serial Interface | |
unsigned status; | |
status = bmp.begin(0x76); | |
if (!SPIFFS.begin()) | |
{ | |
Serial.println("An Error has occurred while mounting SPIFFS"); | |
return; | |
} | |
WiFi.mode(WIFI_AP); // Start the Access point | |
WiFi.softAP(AP_NameChar, WiFiAPPSK); // Set the name and password from above | |
/* Default settings from datasheet. */ | |
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ | |
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ | |
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ | |
Adafruit_BMP280::FILTER_X16, /* Filtering. */ | |
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ | |
// Route for root / web page | |
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) | |
{ request->send(SPIFFS, "/index.html"); }); | |
server.on("/highcharts.js", HTTP_GET, [](AsyncWebServerRequest *request) | |
{ request->send(SPIFFS, "/highcharts.js", "text/javascript"); }); | |
server.on("/data.json", HTTP_GET, [](AsyncWebServerRequest *request) | |
{ request->send_P(200, "text/plain", _jsonDocument); }); | |
// Start server | |
server.begin(); | |
} | |
void loop() | |
{ | |
readBME280(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment