ESP32-Paxcounter
The ESP32-Paxcounter is an ESP32 MCU-based device for metering passenger flows in real-time. It counts how many mobile devices are around by scanning WiFi and Bluetooth signals in the air, providing an estimation of how many people are present. The device is designed with privacy in mind—it does not persistently store MAC addresses or perform any fingerprinting on scanned devices. The captured data is transmitted over a public or private LoRaWAN® radio network.
Features
- Passenger Flow Metering: Detects WiFi and Bluetooth signals from mobile devices to estimate crowd density
- Privacy-Focused Design: No MAC address storage or device fingerprinting; GDPR compliant
- Multiple Sensors Support: Battery monitoring, GPS, altitude, temperature, humidity, barometer, PM2.5, and PM10
- Environmental Sensors: Compatible with Bosch BMP180/BME280/BME680/BMP280 (I2C) and SDS011 particulate matter sensor (serial)
- GPS Integration: Serial NMEA GPS and I2C LoPy GPS support for location tracking
- Real Time Clock: Maxim DS3231 (I2C) support for accurate timestamping
- Multiple Data Transfer Options: LoRaWAN, MQTT over TCP/IP, local SD-card storage, or serial (SPI) interface
- OTA Updates: Firmware can update over-the-air via WiFi after initial LoRaWAN join
- Power Saving Mode: Deep sleep capability for battery-powered deployments
- Clock Sync: DCF77 and IF482 time telegram output for wall clock synchronization
Supported Hardware
The ESP32-Paxcounter firmware supports various ESP32 LoRa boards including:
- TTGO LoRa32 V2/V2.1
- TTGO T-BEAM V1.0/V1.1
- Heltec WiFi LoRa 32
- LoPy/LoPy4/FiPy
Custom boards can be configured using the generic.h hal file with tailored pin mappings.
Use Cases
- Public transport passenger flow monitoring
- Museum and exhibition visitor counting
- Event attendance tracking
- Smart city crowd density estimation
- Retail foot traffic analysis
Thinger.io Integration
Requirements
A LoRaWAN server is required to connect the ESP32-Paxcounter to Thinger.io. Some options are:
The corresponding plugin for the selected LoRaWAN server needs to be installed in your Thinger.io instance.
Get Started
Installation
Look for the plugin in the Thinger.io Plugin Store and install it in your Thinger.io instance. Once the plugin is installed, a new Product will be created for this device.
Configuration
The Product is already preconfigured. Check that the auto provision prefix matches the one selected in your LoRaWAN server plugin in Thinger.io, or change it to your preference.
Usage
Start sending uplinks for autoprovisioning devices and buckets.
This product also provides a predefined dashboard for visualizing passenger counts and sensor data.
Additional Resources
ESP32-Paxcounter resources can be found at: