projects
/
Arduino
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
filter nosiy measurement from dht22 with diffrence > 10 from average
[Arduino]
/
rpi_promini
/
rpi_promini.ino
diff --git
a/rpi_promini/rpi_promini.ino
b/rpi_promini/rpi_promini.ino
index
ea9eb67
..
d767dd0
100644
(file)
--- a/
rpi_promini/rpi_promini.ino
+++ b/
rpi_promini/rpi_promini.ino
@@
-5,13
+5,13
@@
RPI pin Arduino
RXD TXD
TXD RXD
RPI pin Arduino
RXD TXD
TXD RXD
-
GPIO6
RST
+
BCM25
RST
GND GND
+5V RAW
2 433Mhz receive
// 3 433Mhz outdoor temperature sensor receiver # DISABLED
GND GND
+5V RAW
2 433Mhz receive
// 3 433Mhz outdoor temperature sensor receiver # DISABLED
- 8 DHT22
+ 8 DHT22
(VCC from arduino VCC)
10 433Mhz send
11 DS18B20
12 315Mhz send
10 433Mhz send
11 DS18B20
12 315Mhz send
@@
-40,7
+40,7
@@
DallasTemperature sensors(&oneWire);
int int_0 = 300; // ms
int int_1 = 900; // ms
int wait = 2000; // ms
int int_0 = 300; // ms
int int_1 = 900; // ms
int wait = 2000; // ms
-int repeat =
20
; // times (5 times seem a little low for sensors which are more than 10m away)
+int repeat =
5
; // times (5 times seem a little low for sensors which are more than 10m away)
void send_315(char *code) {
Serial.print("send 315Mhz ");
void send_315(char *code) {
Serial.print("send 315Mhz ");
@@
-78,8
+78,8
@@
DHT dht;
#include "RunningAverage.h"
#include "RunningAverage.h"
-RunningAverage temp_avg(
2
0);
-RunningAverage hum_avg(
2
0);
+RunningAverage temp_avg(
1
0);
+RunningAverage hum_avg(
1
0);
// setup
// setup
@@
-114,11
+114,13
@@
unsigned long time = millis();
void loop() {
if ( millis() - time > 2000 ) {
float t = dht.getTemperature();
void loop() {
if ( millis() - time > 2000 ) {
float t = dht.getTemperature();
- if ( dht.getStatus() == 0 )
+ float delta_t = abs(t - temp_avg.getAverage());
+ if ( dht.getStatus() == 0 && delta_t < 10 )
temp_avg.addValue( t );
else dht22_errors++;
float h = dht.getHumidity();
temp_avg.addValue( t );
else dht22_errors++;
float h = dht.getHumidity();
- if ( dht.getStatus() == 0 )
+ float delta_h = abs(h - hum_avg.getAverage());
+ if ( dht.getStatus() == 0 && delta_h < 10 )
hum_avg.addValue( h );
else dht22_errors++;
time = millis();
hum_avg.addValue( h );
else dht22_errors++;
time = millis();