#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(); } } }