After searching around for a low cost motion detection solution, I've settled on the ubiquitous dual PIR element sensor (D203B) and the BISS0001 motion detection IC option. The BISS0001 can be bought for as little as 10c in 100 quantity, a D203B PIR is around 50c, and a suitable plastic fresnel lens is around 25c. Add a few passive components and you've got yourself a digital output that signals motion detection for under a dollar.
There are also prebuilt modules that you can buy for around $1 from places like Aliexpress or eBay. Adafruit sells a similar one for $9.95 which actually has labelling on the trimpots and jumpers. The ones I bought were devoid of any labelling, but it wasn't hard to figure out which trimpot adjusted time and sensitivity.
The pre-built modules also have a fixed Ti delay period which is approximately 3-4 seconds. This is far too long for my testing needs, so I'll have to trace out the PCB and replace the R-C element that sets the delay. The Ti delay is the time required before the sensor can be retriggered once motion ceases to be detected. This long delay can lead to missed detection events.
I'm aiming to sample detection approximately once per second. The lowest Tx setting via the trimpot is around 3 seconds. Tx is the time the output stays high once motion is detected. I need this to be approximately 1 second.
The idea is to sample once per second and keep a rolling average with periods of 1/5/15min. Then a custom threshold can be set externally from the sensor data for what is a valid "occupancy" event. If motion is only detected for 5 seconds out of 60, then it is unlikely that the room is occupied. Either someone walked past or it is a false detection.
Now, I did purchase all the individual components to make up a working sensor quite a few months ago. I was about to breadboard up a test rig with the required R-C values to get the Tx/Ti times required. Unfortunately I seem to have misplaced the PIR element sensors... Time to search.