Some ESP experiments; Raspi: Only write into the average table if avg values not zero
This commit is contained in:
@@ -3,6 +3,11 @@
|
|||||||
#include "aREST.h"
|
#include "aREST.h"
|
||||||
#include <climits>
|
#include <climits>
|
||||||
|
|
||||||
|
//If the debug macro is enabled, there's a freeMemory routine
|
||||||
|
//Check if this resolves the crashes...
|
||||||
|
#define DEBUG_MODE 1
|
||||||
|
|
||||||
|
|
||||||
//DHT settings:
|
//DHT settings:
|
||||||
#define DHTPIN 14 // what digital pin we're connected to
|
#define DHTPIN 14 // what digital pin we're connected to
|
||||||
|
|
||||||
@@ -13,12 +18,6 @@
|
|||||||
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
|
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
|
||||||
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
|
//#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.
|
// Initialize DHT sensor.
|
||||||
// Note that older versions of this library took an optional third parameter to
|
// Note that older versions of this library took an optional third parameter to
|
||||||
@@ -43,9 +42,12 @@ float temperature;
|
|||||||
float humidity;
|
float humidity;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//milli counter
|
//milli counter
|
||||||
unsigned long millitotal = 0;
|
unsigned long millitotal = 0;
|
||||||
|
float millicounter = 0;
|
||||||
|
|
||||||
|
//Temp variables
|
||||||
|
float h, t;
|
||||||
|
|
||||||
//First measurement
|
//First measurement
|
||||||
bool firstmeasurement = true;
|
bool firstmeasurement = true;
|
||||||
@@ -86,14 +88,14 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
// Wait a few seconds between measurements.
|
// Wait a few seconds between measurements.
|
||||||
float millicounter = millis();
|
millicounter = millis();
|
||||||
|
|
||||||
if (millicounter >= millitotal) {
|
if (millicounter >= millitotal) {
|
||||||
// Reading temperature or humidity takes about 250 milliseconds!
|
// Reading temperature or humidity takes about 250 milliseconds!
|
||||||
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
|
// 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)
|
// Read temperature as Celsius (the default)
|
||||||
float t = dht.readTemperature();
|
t = dht.readTemperature();
|
||||||
|
|
||||||
// Check if any reads failed and exit early (to try again).
|
// Check if any reads failed and exit early (to try again).
|
||||||
if (isnan(h) || isnan(t)) {
|
if (isnan(h) || isnan(t)) {
|
||||||
|
@@ -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) );
|
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;` or `select * from average_stats;`
|
||||||
|
|
||||||
|
|
||||||
Show all entries in table: `select * from stats;`
|
|
||||||
|
|
||||||
### Compile & Install
|
### Compile & Install
|
||||||
|
|
||||||
|
@@ -116,10 +116,10 @@ int main(void) {
|
|||||||
float avgOutsideHumidity = avhum_in / outCount;
|
float avgOutsideHumidity = avhum_in / outCount;
|
||||||
|
|
||||||
//Insert the results into the database
|
//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);
|
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);
|
insertDataAverages(avgOutsideTemperature, avgOutsideHumidity, absoluteHumidityFloat(avgOutsideTemperature, avgOutsideHumidity), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user