NewPing Library: HC-SR04, SRF05, SRF06, DYP-ME007, Parallax PING))) - v1.7

nskmda:
Tim,

I originally planned to use 2 sensors, but now I'm only doing one.

Something like this...

#include <NewPing.h>
#include <RH_ASK.h>
#include <SPI.h>

RH_ASK driver(500);
NewPing sonar(8, 9, 350);

boolean driverInitialized = false;
boolean somethingStirring = false;
boolean messageSent = false;
const char *msg = "object around!";
unsigned int pings[3];

void setup() {
  Serial.begin(9600);

  driverInitialized = driver.init();
  if (!driverInitialized) {
    Serial.println("radio driver init failed");  
  } else {
    Serial.println("radio driver initialized");
  }
  delay(5000);
}

void loop() {
  if (driverInitialized) {
    for (uint8_t i = 0; i < 3; i++) {
      delay(50);
      pings[i] = sonar.ping_cm();
    }
    unsigned int average_cm = 0;
    if (pings[0] > 0 and pings[1] > 0 and pings[2] > 0) {
      average_cm = (pings[0] + pings[1] + pings[2]) / 3;
    }
    String distance = "Sonar distance returned: ";
    distance.concat(average_cm);
    Serial.println(distance);
    if (average_cm > 0) {
      sendObjectDetected();
    }
  }
}

void sendObjectDetected() {
  Serial.println("sending object signal");
  driver.send((uint8_t *)msg, strlen(msg));
  driver.waitPacketSent();
  Serial.println("object signal sent");
}