If you need multiple timings, use the millis() instead of the delay().
There is famous example for that: http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Are you using the nRF24L01+ ?
With this library ? NRF24: NRF24 library for Arduino
I would make functions for the sensors. Inside the functions it is possible to do some averaging or debouncing.
In the main loop() function I would collect all the information, and act upon that.
It is possible to check the sensors every 5 minutes. You can use millis() for that, to see if 5 minutes have passed. This is a simple solution.
It is also possible to continuously check the sensors, and remember when the door was openend or closed using millis(). So you can prevent the door being opened and closed every second. This needs more programming skills but has more possibilities. The data of the sensors is always available and the program decides what to do.
I have a sketch with millis() to create a 'tick' every second. I can do things now every second. I have a software counter to count to 60, so I can also do things every minute. And inside that a counter for every hour and inside that for every day (some things need to be updated only once a day). That is almost like a schedular running as a background task. All the important things, like webserver and communications are continuously tested in the loop() function without delay. Testing the millis() for a second 'tick' is just one of the things in the loop().