Low-latency presence sensor: mmWave + PIR using ESPHome

Nice work :+1:

Hello, a great project, I also ordered two Panasonic Pir, EKMB1301112K not so many in Stock here in Germany :frowning:
I just wonder how you trigger their automation in terms of daytime brightness? Do they have an extra light sensor that is not listed here? I mean you didnt want to switch on the light at every daytime on a Day

I am experimenting a bit here once with just the SEN0395 and the combo with the Panasonic PIR.

I don’t know what a good scene or automation would look like in HA. I just like short turn off times, so far I can’t do that in the living room with the Hue Motion Sensor without waving my hands a lot. Thanks alot for your help

Galley kitchen, no windows = dark all day.

The ‘turn off’ side of the automation actually changes based on lux, if the stove is on, etc. To leave the stove vent light on if cooking. You can do any number of things with HA.

Not OP, but I handle this with one outside Lux sensor to decide when to activate the lights or not. It works quite well as long as most of your rooms have windows. :slight_smile:

I have a corridor without windows in which we’ve replaced one door to be glass so we wouldn’t have this issue. (Also, the old door was ugly and didn’t close properly…)

Where does uart_read_line_sensor.h come from?

From the ESPHome docs

You are better off using a more up-to-date version of the DFRobot code found here

1 Like

Do you have a picture of the inside?

Nope. Look at the OP and imagine what header cables look like :wink:

@crlogic I am following your mmWave activity for a while and yesterday my SEN0395 module arrived. Thanks to your work the implementation was a charme and everything is working great.
But two questions haven’t been answered yet:

  • In which direction of the sensor the 100°x40° apply?
  • The more important question - Why the use of an PIR is important? I heard a lot of “slow reaction time of the mmWave” etc. and was prepared to combine my already existing PIRs with the new mmWave sensor. But the opposite occured and the mmWave sensor is insanly fast. Especially directing to the door and setting up the distance correctly outperforms the PIR clearly. So i would like to understand, why you (and many other people) add a PIR. There must be something that I am currently overlooking. I have also only had the sensor for 24 hours.

Edit: Is it just the detection of small movements of objects (not humans) which leads to use the PIR as the initial trigger for “presence” in a room? This would compromise the huge advantage of distance tuning for entrance areas.

Is it possible to have the mmw sensor boot up into detected state ?

Go with XxY
image

Depends on the situation. It isn’t due to speed of trigger but non-heat-based object movement that you want to “filter out”.

Don’t use a PiR when it isn’t needed. I used it on a single mmWave deployment out of 5.

No (Post must be at least 10 characters)

Yeah, makes sense. Thanks!

You mean false positives? Maybe caused by moving leaves of a plant or slight movement of the pendulum light? So the usage of the PIR is just for the initial trigger of “presence”? So: PIR triggers light on and “no presence” of mmWave triggers light of?

Nice. So i have a chance, to not need a PIR :smiley:
Do you have some time to describe your setups? Or giving some useful tips? Positioning? Tuning? My sensor is currently on the top of a cabinet, facing diagonal to the other corner (where the door is). Presence detection works well (tuning of distance made). But unfortunately the “no presence” detection is slow as ****, but when i decrease the sensitivity, the static detection is not good anymore.
It is a livingroom with dining area and of course a couch. My aim is a fast presence detection and a solid static detection. Currently i am not sure whether i want a short “no presence” detection too - obviously yes, but i think here lies the compromise, right?

I am curious too, whether it makes a difference to increase the delay time on the sensor itself vs. a software timeout configured in ioBroker (or other IoT Broker).

OP has the code with the logic, it is a combination of sensor input.

Tuning tips can be found in the other posts. I’ve never experienced slow response which likely indicates an issue somewhere else; the mmWave responds in ms.

Here is my version. I added a bme280 and bh1750 as well.


1 Like

Nice build!

I haven’t done anything properly with esphome or Arduino before. Is this project a bit too advanced to sink my teeth into?

I’d like to do something like just above, with a multi sensor. Mmwave, pir, bme680 & bh1750 with either Poe or Ethernet + a splitter for power supply.

What would be the best way to wade through and work out the pinouts / wiring? I couldn’t see a wiring diagram in the thread that anyone shared (I feel like I’m just blind though. I’ve looked at this before and thought I saw one?)

This is how I wired mine.

Remember to reverse tx and rx on the mmWave board.
uart_tx_pin: GPIO4
uart_rx_pin: GPIO36
I2C sda: GPIO13
I2C scl: GPIO16
PIR: GPIO33 (pulldown)

bme280 & bh1750 run off I2C.

1 Like

Hoping someone might be able to explain how the upper and lower detection pins operate?
I can see that from the SEN0395 wiki:
GPIO1 Universal Input and Output
GPIO2 Universal Input and Output(By default, it outputs high when people presence detected, otherwise, output low)

I’ve got my setup using only GPIO2, with GPIO1 floating.

How does connecting GPIO1 benefit the results (if at all)?

Cheers!

Two mmWave sensors on a single ESP32.

GPIO1 is unused on these sensors.