Created
November 27, 2018 20:18
-
-
Save pudelosha/e2a4a09fb96b09264a1030eb99098776 to your computer and use it in GitHub Desktop.
Arduino meteo station with ESP8266WebServer
This file contains hidden or 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> | |
#include <WiFiClient.h> | |
#include <ESP8266WebServer.h> | |
#include <Wire.h> | |
#include <BH1750.h> | |
#include <Adafruit_Sensor.h> | |
#include <Adafruit_BMP085.h> | |
#include <ClosedCube_HDC1080.h> | |
#include <SDS011.h> | |
const char *Webssid = "xxxxxxxxxxx"; | |
const char *Webpass = "xxxxxxxxxxx"; | |
ESP8266WebServer Webserver(80); | |
char ssid[] = "xxxxxxxxxxx"; // Network Name | |
char pass[] = "xxxxxxxxxxx"; // Network Password | |
WiFiServer server(80); | |
IPAddress ip(192, 168, 1, 150); | |
IPAddress gateway(192, 168, 2, 1); | |
IPAddress subnet(255, 255, 255, 0); | |
WiFiClient client; | |
BH1750 lightMeter; | |
ClosedCube_HDC1080 hdc1080; | |
Adafruit_BMP085 bmp; | |
float p10,p25; | |
int error; | |
SDS011 my_sds; | |
void setup() { | |
Serial.begin(9600); | |
lightMeter.begin(); // initialise BH1750 | |
bmp.begin(); // initialise BMP180 | |
hdc1080.begin(0x40); // initialise HDC1080 | |
WiFi.softAP(Webssid,Webpass); | |
WiFi.config(ip, gateway, subnet); | |
WiFi.begin(ssid, pass); | |
// connect to WiFi | |
while (WiFi.status() != WL_CONNECTED) { | |
delay(200); | |
} | |
my_sds.begin(D4,D5); | |
} | |
void loop() { | |
ReadAndInsert(); | |
delay(15000); // 15sec | |
} | |
void ReadAndInsert(){ | |
// air quality | |
error = my_sds.read(&p25,&p10); | |
// read temp and humidity | |
float temp1 = hdc1080.readTemperature(); | |
float hum = hdc1080.readHumidity(); | |
// read data pressure and temp | |
float pres; | |
pres = bmp.readPressure() / 100; | |
float temp2; | |
temp2 = bmp.readTemperature(); | |
float alt; | |
alt = bmp.readAltitude(); | |
double slpMultiplier; | |
double slp; | |
slpMultiplier = 1 - (0.0065 * 205 / (temp1 + 0.0065 * 205 + 273.15)); | |
slpMultiplier = 1 / pow(slpMultiplier, 5.257); | |
slp = pres * slpMultiplier; | |
// create query | |
String url = "/?page=insertrecord&hum="; | |
url += (int)hum; | |
url += "&temp="; | |
url += (int)temp1; | |
url += "&press1="; | |
url += (int)pres; | |
url += "&press2="; | |
url += (int)slp; | |
url += "&light="; | |
url += lightMeter.readLightLevel(); | |
url += "&pm25="; | |
url += (int)p25; | |
url += "&pm10="; | |
url += (int)p10; | |
url += "&pwd=xxxxxxxxxxx"; | |
Serial.println(url); | |
IPAddress server(xxx, xxx ,xxx, xxx); | |
if (client.connect(server, 80)) { | |
client.print("GET "); | |
client.print(url); | |
client.println(" HTTP/1.1"); | |
client.println("Host: www.arduinogreen.com"); | |
client.println("Connection: close"); | |
client.println(); | |
client.println(); | |
client.stop(); | |
} | |
else { | |
Serial.println("--> connection failed\n"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment