The code you posted doesnt appear to have any pushbutton functionality. It would be useful to include the code you had tried..
The basic scheme is pretty simple :
// this doesnt take into account switch bounce
current_button=digitalRead(BUTTON_PIN);
if (current_button!=previous_button) {
if (current_button==HIGH) {
// button is pressed
if (sensor_state==HIGH) {
// was HIGH, going low so turn off sensor, LEDS etc
sensor_state = LOW;
} else {
// was LOW, going high so turn on sensor, LEDS ect
sensor_state = HIGH;
};
// update button state so we dont trigger until it changes again.
previous_button=current_button;
};
But you may need to account for Switch Bounce