Skip to content
This repository has been archived by the owner on Apr 5, 2024. It is now read-only.
/ macounter Public archive

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Estimate the number of people using WiFi emanations

License

Notifications You must be signed in to change notification settings

jcbhmr/macounter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

36 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MACounter

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Estimate the number of people using WiFi emanations
πŸ’‘ Inspired by Makerfabs/Project_WiFi-Statistics and ESP-EOS/ESP32-WiFi-Sniffer

πŸ“‘ Counts unique MAC addresses
πŸ“š Great for tracking busyness over time
✨ Complete project, not a library
πŸ‘¨β€πŸ’» Make as a class project for Embedded Systems at UW-Whitewater

Installation

ESP32 Arduino IDE

This is a physical project, as well as a software project! You'll need...

  1. An ESP32 chip. Preferrably a development board. If you want something that you can reuse for other projects, the Adafruit HUZZAH32 is a good choice. If you just want a cheap $10 board for this project only, you can snag one of the many ESP32 boards on Amazon.
  2. A way to power your ESP32. This is most likely a USB charging brick. If you are truly dedicated to wireless deployment, you can use your own battery solution. But for the intended deployment case of an indoor stationary spot, a wired-to-wall solution is probably the most sensible. Your charging brick doesn't need to be fancy. As long as it can supply ~500mA of current, that's sufficient. You can find cheap $4/pc chargers on Amazon.
  3. An LCD screen. This will be used to display the count of how many people are estimated to be in the area (by MAC addresses). This project's code expects a 16x2 display, but you can probably fiddle with the code to get it to work with other sizes. You can find 16x2 LCD screens on Amazon.

In my own experimentation and development, I used the DOIT ESP32 DEVKIT V1.

To configure the hardware, you should match this circuit:

You'll also need to install the "FreeRTOS" library from the Arduino Library Manager. We need this library to use the vTaskDelay() function.

πŸ“š Getting started: Installing ESP32 in Arduino IDE (Windows, Mac OS X, Linux) | Random Nerd Tutorials

Usage

Once you've downloaded the application code to your ESP32, you just need to deploy it someplace! The easiest spot is, of course, right where you're sitting. Plug in the ESP32 to the power brick, make sure you've got the OLED output screen hooked up, and see how many WiFi MAC addresses are in your area!

Legal

I am not qualified to remark on whether or not this MAC address sniffing is legal or not in your area. This is not legal advice. With that said, here are some discussions and other resources about the legal side of tracking people with WiFi signals:

Related

There's some other interesting projects dealing with WiFi person detection that are pretty cool! 😲

Development

C++ Arduino IDE ESP32

This project was developed using the Arduino IDE and an ESP32. You can get the project running locally using git clone and then opening the main mac-addr-counter.ino in the Arduino IDE. You'll need an actual ESP32 to run the code!

About

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Estimate the number of people using WiFi emanations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages