So I’ve been playing with the Seeed human presence detection sensor for two days now. I have improved their crappy library a bit by adding things like writing commands over serial with the necessary checksum code.
Serial Data: it’s pretty simple to work with, and the chip sends 12~ byte packets. What each packet means is well documented for all 4 sensors. The 3 24GHz sensors are all very similar and can detect presence and movement amount and all send back identical data packets. The difference between the 3 is that:
24GHz Fall Detection: Has an extra fall detection packet it will send. This may mean it is better at detecting if someone is moving away from the sensor. More or less the same as the human presence sensor.
24GHz Sleep Detection: It is more sensitive so it can detect breath rate. It has a shorter range. I believe based on the breath rate (it tries to) detect how deep the sleep is and what the quality of sleep is. It has a heart rate packet but somehow I doubt it would be accurate. Says it has a 3m presence detection range which is the same as the other two. For motion, it could easily be more.
24GHz Human Presence / Fall Detection Range: 12m range, 5m micromotion, 3m presence range (similar to the other two for static presence range).
– 60GHz Sleep Detection is a different beast: Double+ the price. Totally different packet format and might need some kind of uart to serial converter. Way more things it tries to detect: breath rate, breath waveform, heart rate, number of people in the environment, “Resting Distance” - perhaps how far the person is. None of the others do. Says it has a 2m range. For motion, it could easily be more. 60GHz does not penetrate objects and walls as much as 24GHz.
Movement and direction: The documentation says you can measure whether someone is “nearby”, “walking away”, or “moving without direction” for all 4 sensors. None of them have a “moving closer” packet documented, maybe the “nearby” packet is moving closer but it really just sounded like a “person is nearby” packet. This data is too random in the Human Detection sensor to be useful. It is maybe better for the fall detection one but I’m skeptical. The 24GHz and 60GHz sleep ones seem to have a better perception of distance and movement direction so they may be able to better detect if someone is walking away. No promises!
My opinion on the human presence sensor:
I’m happy with it. This sensor definitely has a better processing algorithm that is much more consistent and removes the need for averaging data over 20+ seconds compared to the DFRobot one. It will hold a steady, unoccupied state when there is no one around and quickly switch to occupied when someone enters the vicinity. Takes a couple of minutes to switch back to unoccupied. Seems to be a little quicker when you reduce the sensitivity.
Sensitivity setting: All 3 have a sensitivity setting (1-10) which I was able to write to the board over serial (Checksum required!). I reduced the sensitivity from the default 7 down to 3.
“Motor Signs”: You can get a 4 byte float back from 0-100 (called motor signs). 0 is unoccupied, 1 is occupied but stationary, and 1-100 is increasing amounts of movement in the area. The number does seem to reflect the amount of movement. If it is >1 I would do a moving average to get a clearer picture of how much movement there is. You need to write a packet to start getting this data back frequently.
This is in reference to @mattdm 's question:
What the sensor does is it sends out radar waves and tries to interpret them as they return. If you have multiple people or dogs in the area it will all just affect the readings you get.
Dog walks past a little ways away? If you have it set to low sensitivity maybe it wouldn’t interpret it as occupied.
Multiple people in the frame? If one is sitting close by and another is moving further away it would still read it as movement. Maybe 40/100 or something. Unlike the other 3, the 60GHz sleep sensor claims it can detect how many people are in the frame.
It’s a slightly smaller pin header than Arduino / most breadboards.
Another person got the human presence one working:
Looks somewhat similar to how I have implemented it.
Happy to answer any questions!


