
9 changed files with 229 additions and 12 deletions
@ -0,0 +1,120 @@
@@ -0,0 +1,120 @@
|
||||
#define SEALEVELPRESSURE_HPA (1021) |
||||
bool weatherInited = false; |
||||
int previousWeather = -69420; |
||||
int weatherUpdateInterval = 10; |
||||
Adafruit_BME280 bme1; |
||||
Adafruit_BME280 bme2; |
||||
unsigned long delayTime; |
||||
BH1750 lightMeter1(0x23); |
||||
BH1750 lightMeter2(0x5C); |
||||
void weatherInit() { |
||||
Wire.begin(D3, D4); |
||||
if (razhroscevanje) Serial.println(F("BME280 initialising ...")); |
||||
unsigned status[2]; |
||||
status[0] = bme1.begin(0x76); |
||||
status[1] = bme2.begin(0x77); |
||||
if (!status[0]) { |
||||
if(razhroscevanje) { |
||||
Serial.println("[1] Could not find a valid BME280 sensor, check wiring, address, sensor ID!"); |
||||
Serial.print("SensorID was: 0x"); Serial.println(bme1.sensorID(),16); |
||||
Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n"); |
||||
Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n"); |
||||
Serial.print(" ID of 0x60 represents a BME 280.\n"); |
||||
Serial.print(" ID of 0x61 represents a BME 680.\n"); |
||||
Serial.println(); |
||||
} |
||||
} |
||||
if (!status[1]) { |
||||
if(razhroscevanje) { |
||||
Serial.println("[1] Could not find a valid BME280 sensor, check wiring, address, sensor ID!"); |
||||
Serial.print("SensorID was: 0x"); Serial.println(bme2.sensorID(),16); |
||||
Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n"); |
||||
Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n"); |
||||
Serial.print(" ID of 0x60 represents a BME 280.\n"); |
||||
Serial.print(" ID of 0x61 represents a BME 680.\n"); |
||||
Serial.println(); |
||||
} |
||||
} |
||||
float lux1 = lightMeter1.readLightLevel(); |
||||
float lux2 = lightMeter2.readLightLevel(); |
||||
if(razhroscevanje) { |
||||
Serial.print("[1] Temperature = "); |
||||
Serial.print(bme1.readTemperature()); |
||||
Serial.println(" *C"); |
||||
Serial.print("[1] Pressure = "); |
||||
Serial.print(bme1.readPressure() / 100.0F); |
||||
Serial.println(" hPa"); |
||||
Serial.print("[1] Approx. Altitude = "); |
||||
Serial.print(bme1.readAltitude(SEALEVELPRESSURE_HPA)); |
||||
Serial.println(" m"); |
||||
Serial.print("[1] Humidity = "); |
||||
Serial.print(bme1.readHumidity()); |
||||
Serial.println(" %"); |
||||
Serial.print("[1] Luminance= "); |
||||
Serial.print(lightMeter1.readLightLevel()); |
||||
Serial.println(" lux"); |
||||
Serial.println(); |
||||
Serial.print("[2] Temperature = "); |
||||
Serial.print(bme2.readTemperature()); |
||||
Serial.println(" *C"); |
||||
Serial.print("[2] Pressure = "); |
||||
Serial.print(bme2.readPressure() / 100.0F); |
||||
Serial.println(" hPa"); |
||||
Serial.print("[2] Approx. Altitude = "); |
||||
Serial.print(bme2.readAltitude(SEALEVELPRESSURE_HPA)); |
||||
Serial.println(" m"); |
||||
Serial.print("[2] Humidity = "); |
||||
Serial.print(bme2.readHumidity()); |
||||
Serial.println(" %"); |
||||
Serial.print("[2] Luminance= "); |
||||
Serial.print(lightMeter2.readLightLevel()); |
||||
Serial.println(" lx"); |
||||
Serial.println(); |
||||
} |
||||
if (lightMeter1.begin(BH1750::CONTINUOUS_HIGH_RES_MODE_2)) { |
||||
if (razhroscevanje )Serial.println(F("[1] BH1750 Advanced begin")); |
||||
} else { |
||||
if (razhroscevanje )Serial.println(F("[1] Error initialising BH1750")); |
||||
} |
||||
if (lightMeter2.begin(BH1750::CONTINUOUS_HIGH_RES_MODE_2)) { |
||||
if (razhroscevanje )Serial.println(F("[2] BH1750 Advanced begin")); |
||||
} else { |
||||
if (razhroscevanje )Serial.println(F("[2] Error initialising BH1750")); |
||||
} |
||||
if(!SPIFFS.exists("/www/var/weather.csv")) { |
||||
writefile("/www/var/weather.csv", "ura,temperatura1,pritisk1,visina1,vlaznost1,temperatura2,pritisk2,visina2,vlaznost2,svetlost1,svetlost2\n"); |
||||
} |
||||
if(readfile("/403/weatherUpdateInterval.txt").length() < 1) { |
||||
writefile("/403/weatherUpdateInterval.txt", "10"); |
||||
} |
||||
weatherInited = true; |
||||
previousWeather = now(); |
||||
} |
||||
void weatherHeartbeat () { |
||||
if(weatherInited == false) { |
||||
weatherInit(); |
||||
} else { |
||||
if(previousWeather + weatherUpdateInterval < now()) { |
||||
weatherUpdateInterval = readfile("/403/weatherUpdateInterval.txt").toInt(); // for updating the time
|
||||
File file = SPIFFS.open("/www/var/weather.csv", "a+"); |
||||
if (!file) { |
||||
if (razhroscevanje) Serial.println("There was an error opening the file for writing (weather.csv)"); |
||||
return; |
||||
} |
||||
String temperatura1 = String(bme1.readTemperature()); |
||||
String pritisk1 = String(bme1.readPressure() / 100.0F); |
||||
String visina1 = String(bme1.readAltitude(SEALEVELPRESSURE_HPA)); |
||||
String vlaznost1 = String(bme1.readHumidity()); |
||||
String temperatura2 = String(bme2.readTemperature()); |
||||
String pritisk2 = String(bme2.readPressure() / 100.0F); |
||||
String visina2 = String(bme2.readAltitude(SEALEVELPRESSURE_HPA)); |
||||
String vlaznost2 = String(bme2.readHumidity()); |
||||
String svetlost1 = String(lightMeter1.readLightLevel()); |
||||
String svetlost2 = String(lightMeter2.readLightLevel()); |
||||
if (!file.println(String(now())+","+temperatura1+","+pritisk1+","+visina1+","+vlaznost1+","+temperatura2+","+pritisk2+","+visina2+","+vlaznost2+","+svetlost1+","+svetlost2)) { |
||||
if (razhroscevanje) Serial.println("File write failed (weather.csv)"); |
||||
} |
||||
previousWeather = now(); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue