From fc8661a68bc469041962cfb2e2f23f25d5c376f3 Mon Sep 17 00:00:00 2001 From: structix Date: Thu, 7 Sep 2017 22:10:13 +0200 Subject: [PATCH] Some ESP experiments; Raspi: Only write into the average table if avg values not zero --- ESP8266/sensornode/sensornode.ino | 22 ++++++++++++---------- README.md | 5 +---- RaspberryPi/main.c | 4 ++-- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/ESP8266/sensornode/sensornode.ino b/ESP8266/sensornode/sensornode.ino index 4435244..2266b0b 100644 --- a/ESP8266/sensornode/sensornode.ino +++ b/ESP8266/sensornode/sensornode.ino @@ -3,6 +3,11 @@ #include "aREST.h" #include +//If the debug macro is enabled, there's a freeMemory routine +//Check if this resolves the crashes... +#define DEBUG_MODE 1 + + //DHT settings: #define DHTPIN 14 // what digital pin we're connected to @@ -13,12 +18,6 @@ #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) -// Connect pin 1 (on the left) of the sensor to +5V -// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1 -// to 3.3V instead of 5V! -// Connect pin 2 of the sensor to whatever your DHTPIN is -// Connect pin 4 (on the right) of the sensor to GROUND -// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor // Initialize DHT sensor. // Note that older versions of this library took an optional third parameter to @@ -43,9 +42,12 @@ float temperature; float humidity; - //milli counter unsigned long millitotal = 0; +float millicounter = 0; + +//Temp variables +float h, t; //First measurement bool firstmeasurement = true; @@ -86,14 +88,14 @@ void setup() { void loop() { // Wait a few seconds between measurements. - float millicounter = millis(); + millicounter = millis(); if (millicounter >= millitotal) { // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) - float h = dht.readHumidity(); + h = dht.readHumidity(); // Read temperature as Celsius (the default) - float t = dht.readTemperature(); + t = dht.readTemperature(); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t)) { diff --git a/README.md b/README.md index 3c3b48a..d06d8f1 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,7 @@ and CREATE TABLE average_stats (id MEDIUMINT NOT NULL AUTO_INCREMENT, humidity FLOAT NOT NULL, temperature FLOAT NOT NULL, gm3 float not null, isoutside int not null, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ); ``` - - - -Show all entries in table: `select * from stats;` +Show all entries in table: `select * from stats;` or `select * from average_stats;` ### Compile & Install diff --git a/RaspberryPi/main.c b/RaspberryPi/main.c index 77a4ed2..475752b 100644 --- a/RaspberryPi/main.c +++ b/RaspberryPi/main.c @@ -116,10 +116,10 @@ int main(void) { float avgOutsideHumidity = avhum_in / outCount; //Insert the results into the database - if (isfinite(avgInsideHumidity) && isfinite(avgInsideTemperature)) { + if (isfinite(avgInsideHumidity) && isfinite(avgInsideTemperature) && avgInsideHumidity != 0 && avgInsideTemperature != 0) { insertDataAverages(avgInsideTemperature, avgInsideHumidity, absoluteHumidityFloat(avgInsideTemperature, avgInsideHumidity), 0); } - if (isfinite(avgOutsideHumidity) && isfinite(avgOutsideTemperature)) { + if (isfinite(avgOutsideHumidity) && isfinite(avgOutsideTemperature) && avgOutsideHumidity != 0 && avgOutsideTemperature != 0) { insertDataAverages(avgOutsideTemperature, avgOutsideHumidity, absoluteHumidityFloat(avgOutsideTemperature, avgOutsideHumidity), 1); }