running median

This commit is contained in:
2021-07-01 12:48:30 +03:00
parent 2b6c8fb0c8
commit 9615b66a84

View File

@@ -10,12 +10,12 @@
#define MY_DEFAULT_LED_BLINK_PERIOD 5
#include <MySensors.h>
#include <AHT10.h>
#include "RunningMedian.h"
//#include "RunningMedian.h"
uint32_t cRun;
int BATTERY_SENSE_PIN = A0;
int sensorValue, batteryPcnt;
float v;
float v, temp_out, hum_out;
int oldBatteryPcnt = 0;
void presentation();
@@ -31,11 +31,10 @@ void sendData(MyMessage msg, uint32_t status);
AHT10 myAHT10(AHT10_ADDRESS_0X38);
#define TIME_SLEEP 300000
RunningMedian tempRM = RunningMedian(4);
RunningMedian humRM = RunningMedian(4);
// RunningMedian tempRM = RunningMedian(4);
// RunningMedian humRM = RunningMedian(4);
void setup() {
float temp, hum;
//analogReference(INTERNAL);
//sensorValue = analogRead(BATTERY_SENSE_PIN);
//v = sensorValue * 0.004659498;
@@ -46,10 +45,11 @@ void setup() {
delay(5000);
}
Serial.println(F("AHT10 OK"));
Serial.print(F("T: ")); Serial.print(temp = myAHT10.readTemperature(AHT10_FORCE_READ_DATA));// Serial.println(F(" +-0.3C"));
Serial.print(F("H: ")); Serial.print(hum = myAHT10.readHumidity(AHT10_USE_READ_DATA));// Serial.println(F(" +-2%"));
sendData(msgTemp, temp, 1);
sendData(msgHum, hum, 1);
Serial.print(F("T: ")); Serial.print(temp_out = myAHT10.readTemperature(AHT10_FORCE_READ_DATA));// Serial.println(F(" +-0.3C"));
Serial.print(F("H: ")); Serial.print(hum_out = myAHT10.readHumidity(AHT10_USE_READ_DATA));// Serial.println(F(" +-2%"));
sendData(msgTemp, temp_out, 1);
sendData(msgHum, hum_out, 1);
unsigned long battMV = hwCPUVoltage();
sendData(msgVolts, battMV / 1000.0, 2);
cRun = 0;
@@ -67,8 +67,10 @@ void loop() {
//Serial.print(F("T: ")); Serial.println(temp);// Serial.println(F(" +-0.3C"));
//Serial.print(F("H: ")); Serial.println(hum);// Serial.println(F(" +-2%"));
if (temp < 200){
tempRM.add(temp);
humRM.add(hum);
temp_out += (temp - temp_out) * 0.1;
hum_out += (hum - hum_out) * 0.1;
//tempRM.add(temp);
//humRM.add(hum);
// send(msgTemp.set(temp, 1));
// send(msgHum.set(hum, 1));
}
@@ -79,8 +81,8 @@ void loop() {
//batteryPcnt = ((v-3.0) * 100) / 1.2;
//sendBatteryLevel(batteryPcnt);
if(nRun++ == 3){
sendData(msgTemp, tempRM.getMedian(), 1);
sendData(msgHum, humRM.getMedian(), 1);
sendData(msgTemp, temp_out, 1);
sendData(msgHum, hum_out, 1);
sendData(msgVolts, v, 2);
//send(msgVolts.set(v, 2));
//Serial.println(F("Tm run")); Serial.println(millis() - t);