MCPcopy Create free account
hub / github.com/cyberman54/ESP32-Paxcounter

github.com/cyberman54/ESP32-Paxcounter @v3.6.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.6.3 ↗ · + Follow
354 symbols 714 edges 114 files 65 documented · 18% updated 43d agov3.6.3 · 2024-06-15★ 2,03218 open issues

Browse by type

Functions 324 Types & classes 30
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

Core symbols most depended-on inside this repo

Shape

Function 280
Method 44
Class 22
Enum 8

Languages

C++87%
TypeScript12%
Python1%
Java1%
C1%

Modules by API surface

src/rcommand.cpp42 symbols
src/payload.cpp29 symbols
src/lorawan.cpp28 symbols
src/TTNv3/packed_decodeUplink.js20 symbols
src/TTN/packed_decoder.js20 symbols
src/power.cpp19 symbols
src/timekeeper.cpp16 symbols
src/display.cpp16 symbols
lib/BintrayClient/src/BintrayClient.cpp12 symbols
src/gpsread.cpp10 symbols
src/mqttclient.cpp8 symbols
src/ledmatrixdisplay.cpp8 symbols

For agents

$ claude mcp add ESP32-Paxcounter \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page