Skip to content

cyberman54/ESP32-Paxcounter

Repository files navigation

ESP32-Paxcounter

logo

Wifi & Bluetooth driven, LoRaWAN enabled, Paxcounter and multi-sensor appliance, built on cheap ESP32 LoRa IoT boards

Tutorial (in german language): heise.de

CodeFactor PlatformIO CI


Ready-to-go Hardware: LILYGO® Paxcounter LoRa

Documentation: https://cyberman54.github.io/ESP32-Paxcounter

Source Code: https://github.com/cyberman54/ESP32-Paxcounter


Use case

Paxcounter is an ESP32 MCU based device for metering passenger flows and multi-sensor data in realtime. It counts how many mobile devices are around. This gives an estimation how many people are around. Paxcounter detects Wifi and Bluetooth signals in the air, focusing on mobile devices by evaluating their MAC adresses. In parallel, it reads and stores data from multiple connected environment sensors.

Intention of this project is to do this without intrusion in privacy: You don't need to track people owned devices, if you just want to count them. Therefore, Paxcounter does not persistenly store MAC adresses and does no kind of fingerprinting the scanned devices.

Data can either be stored on a local SD-card, transferred to cloud using LoRaWAN network (e.g. TheThingsNetwork or Helium) or MQTT over TCP/IP, or transmitted to a local host using serial (SPI) interface.

You can build this project battery powered using ESP32 deep sleep mode and reach long uptimes with a single 18650 Li-Ion cell.

License

Copyright 2018-2022 Oliver Brandmueller ob@sysadm.in

Copyright 2018-2022 Klaus Wilting verkehrsrot@arcor.de

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

NOTICE: Parts of the source files in this repository are made available under different licenses, see file LICENSE.txt in this repository. Refer to each individual source file for more details.

Credits

Thanks to

  • Oliver Brandmüller for idea and initial setup of this project
  • Charles Hallard for major code contributions to this project
  • robbi5 for the payload converter
  • Caspar Armster for the The Things Stack V3 payload converter
  • terrillmoore for maintaining the LMIC for arduino LoRaWAN stack
  • sbamueller for writing the tutorial in Make Magazine
  • Stefan for paxcounter opensensebox integration
  • August Quint for adding SD card data logger and SDS011 support
  • t-huyeng for adding a CI workflow and rework documentation
  • TD-er for bugfixings and T-Beam documentation