Push vs Poll
Your proposed solution of sending frequent AJAX requests sounds a lot like polling - you're sending a request every so often to check if the state has changed. It would make far more sense to push changes to the server when the piezo sensor detects a change.
It's the difference between this:
Server: Is there someone at the door?
Sensor: No.
Server: Is there someone at the door?
Sensor: No.
Server: Is there someone at the door?
Sensor: No.
... repeat ad infinitum ...
And this:
Sensor: There's someone at the door!
The first example is polling, and the second is pushing. You can tell which one will have lower power usage, less complex code and reduced network usage.
HTTP or Something Else?
An AJAX request is sent over HTTP, so it's quite heavyweight and requires several TCP handshakes per connection (unless you use Keep-Alive).
It may be worth considering alternative protocols such as MQTT (there's some good explanation in the question 'When and why to use MQTT protocol?', which has a very similar problem to yours).
A message broker like MQTT might be a little bit more powerful than you really need in your current situation, but one MQTT broker could easily be expanded if you chose to add more devices to your smart home network, whereas your current system of AJAX requests would quickly fall apart. Imagine four or five different devices polling each other; it'd quickly lead to your network becoming overloaded and it would be a massive drain on power usage.
Node and Web Sockets
Using web sockets and Node would solve the issue of using push instead of poll, so it would be a good idea in my opinion. However, I suspect polling would work if you really didn't want to learn Node.
If you want an extensible solution that will work when you expand your smart home, definitely go with pushing - it'll save a lot of trouble and tears. If you just want a quick proof of concept, polling will probably work.
My personal advice is that you should either learn web sockets or investigate using a message broker like MQTT. You could use a client library like Mosquitto-PHP (with a guide by HiveMQ) to simplify using MQTT in PHP, or just go with Node and web sockets. I suspect the learning resources for Node and web sockets will be better, but MQTT tends to be favoured for smart home/IoT environments.