Main loop timing optimized.

This commit is contained in:
klaute 2018-06-24 16:54:57 +02:00
parent 0e33d52af4
commit c47116af89
2 changed files with 31 additions and 17 deletions

View File

@ -7,7 +7,9 @@
#define SENSOR_WINDSPEED 3
#define SENSOR_PRESSURE 4
#define UPDATE_INTERVAL 4
#define UPDATE_SENSOR_INTERVAL_S 10
#define UPDATE_WEBSERVER_INTVERVAL_S 1
#define DELAY_LOOP_MS 50
#define STATUS_LED_PIN BUILTIN_LED
#define ANEMOMETER_PIN D7

View File

@ -35,6 +35,9 @@
float currentSensorData[5] = {0.0, 0.0, 0.0, 0.0, 0.0};
uint16_t update_sensor_cnt = 0;
uint16_t update_webserver_cnt = 0;
WiFiManager wifiManager;
Influxdb influxdb(INFLUXDB_HOST, INFLUXDB_PORT);
Adafruit_APDS9960 apds;
@ -93,33 +96,42 @@ void setup() {
void loop() {
doWebUpdater();
if (UPDATE_WEBSERVER_INTVERVAL_S * 1000 / DELAY_LOOP_MS <= update_webserver_cnt) {
update_webserver_cnt = 0;
doWebUpdater();
}
#ifdef DEBUG
digitalWrite(STATUS_LED_PIN, HIGH);
#endif
currentSensorData[SENSOR_TEMPERATURE] = fetchTemperature();
currentSensorData[SENSOR_HUMIDITY] = fetchHumidity();
currentSensorData[SENSOR_LIGHT] = fetchLight();
currentSensorData[SENSOR_WINDSPEED] = fetchWindspeed();
currentSensorData[SENSOR_PRESSURE] = fetchPressure();
if (UPDATE_SENSOR_INTERVAL_S * 1000 / DELAY_LOOP_MS <= update_sensor_cnt) {
update_sensor_cnt = 0;
currentSensorData[SENSOR_TEMPERATURE] = fetchTemperature();
currentSensorData[SENSOR_HUMIDITY] = fetchHumidity();
currentSensorData[SENSOR_LIGHT] = fetchLight();
currentSensorData[SENSOR_WINDSPEED] = fetchWindspeed();
currentSensorData[SENSOR_PRESSURE] = fetchPressure();
#ifdef DEBUG
Serial.println("");
//Serial.println("Current readings:");
Serial.println("Temperature: " + String(currentSensorData[SENSOR_TEMPERATURE]) + " °C");
Serial.println("Humidity: " + String(currentSensorData[SENSOR_HUMIDITY]) + " %");
Serial.println("Light: " + String(currentSensorData[SENSOR_LIGHT]) + " Lumen");
Serial.println("Windspeed: " + String(currentSensorData[SENSOR_WINDSPEED]) + " km/h");
Serial.println("Pressure: " + String(currentSensorData[SENSOR_PRESSURE]) + " hPa");
Serial.println("");
//Serial.println("Current readings:");
Serial.println("Temperature: " + String(currentSensorData[SENSOR_TEMPERATURE]) + " °C");
Serial.println("Humidity: " + String(currentSensorData[SENSOR_HUMIDITY]) + " %");
Serial.println("Light: " + String(currentSensorData[SENSOR_LIGHT]) + " Lumen");
Serial.println("Windspeed: " + String(currentSensorData[SENSOR_WINDSPEED]) + " km/h");
Serial.println("Pressure: " + String(currentSensorData[SENSOR_PRESSURE]) + " hPa");
#endif
pushToInfluxDB(DEVICE_NAME, currentSensorData);
pushToInfluxDB(DEVICE_NAME, currentSensorData);
}
//ESP.deepSleep(UPDATE_INTERVAL * 1000000);
//delay(100);
delay(UPDATE_INTERVAL * 1000);
/**/
delay(DELAY_LOOP_MS);
update_sensor_cnt++;
update_webserver_cnt++;
}
//*************************************************************************//