If anyone is using an EdgeRouter on EdgeOS, I've put together some scripts which can help determine if someone has arrived or left your network. This doesn't require you to ping devices. Of course there are some concerns around if people disable wireless on their device, but the same concerns work for the ping detection method.
I'd also recommend this be used with a tool for combining multiple presence sensors into a "master" presence to be more accurate:
Either Presence Governor or [RELEASE] Combined Presence.
There are also other ways of doing this if you are not using EdgeOS: [UPDATED] iPhone WiFi Presence Sensor is one option.
Another option which is related to ARP but doesn't require the wireless device to be on your network would be to sniff WiFi traffic and look for wireless probes. You need a Linux Device/RPi with a spare wireless adapter that supports monitor mode. The other gotcha here is some mobile devices mask their true MAC address for anonymous probes (they return an Admin OUI). Either way, this would be a router-agnostic way to solve this problem, however it needs someone to change the code (GitHub - bdwilson/wuds: Wireless User Detection System) and add the ability to expire devices that haven't been seen in X amount of time. This has been on my list but I haven't had time.