Gebruik ping_median
This commit is contained in:
10
src/main.cpp
10
src/main.cpp
@@ -11,7 +11,7 @@ const float minDistance = 0.01;
|
||||
const float maxDistance = 4.0;
|
||||
const float minimumChange = 0.2;
|
||||
|
||||
#define MEASURE_INTERVAL 500 // ms
|
||||
#define MEASURE_INTERVAL 1000 // ms
|
||||
#define PUBLISH_INTERVAL 5000 // ms
|
||||
|
||||
NewPing sonar(trigPin,echoPin,maxDistance*100.0);
|
||||
@@ -31,7 +31,7 @@ void setup() {
|
||||
pinMode(ledPin, OUTPUT);
|
||||
|
||||
Homie_setBrand("EtxeanIoT");
|
||||
Homie_setFirmware("etxean-distancesensor", "1.0.3");
|
||||
Homie_setFirmware("etxean-distancesensor", "1.0.4");
|
||||
Homie.setLoopFunction(loopHandler);
|
||||
obstacleNode
|
||||
.advertise("distance").setName("Distance").setDatatype("float").setUnit("m");
|
||||
@@ -70,7 +70,7 @@ void loopHandler() {
|
||||
//float distance = random(5,400)/100.0;
|
||||
Homie.getLogger() << "Distance: " << distance << " m";
|
||||
bool valid = checkBounds(distance,minDistance,maxDistance);
|
||||
Serial << ", valid = " << toPayload(valid) << endl;
|
||||
Homie.getLogger() << ", valid = " << toPayload(valid) << endl;
|
||||
if (valid)
|
||||
validDistance = distance;
|
||||
lastMeasurement = millis();
|
||||
@@ -89,7 +89,7 @@ void loopHandler() {
|
||||
if (changed)
|
||||
{
|
||||
signal_led();
|
||||
Serial << ", changed" << endl;
|
||||
Homie.getLogger() << ", changed" << endl;
|
||||
}
|
||||
lastDistance = validDistance;
|
||||
validDistance = -1;
|
||||
@@ -114,7 +114,7 @@ float getEchoTime() {
|
||||
|
||||
float readDistance() {
|
||||
//auto ping_us = getEchoTime();
|
||||
auto ping_us = sonar.ping();
|
||||
auto ping_us = sonar.ping_median();
|
||||
// Calculating the distance @ 10 °C from d = t_ping /2 * c => t_ping /2 * 337 [m/s] => t_ping_us / 1e-6 * 1/2 * 337
|
||||
auto computedDistance = ping_us*0.0001685;
|
||||
return computedDistance;
|
||||
|
||||
Reference in New Issue
Block a user