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");
}