{"id":26116936,"url":"https://github.com/eason-projects/ble-beacon","last_synced_at":"2026-05-05T01:33:40.932Z","repository":{"id":281496400,"uuid":"945296083","full_name":"eason-projects/ble-beacon","owner":"eason-projects","description":"A comprehensive Bluetooth Low Energy (BLE) beacon system that includes components for both transmitting and receiving beacon signals, with Kafka integration for data processing.","archived":false,"fork":false,"pushed_at":"2025-03-09T13:39:09.000Z","size":284,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T14:25:50.669Z","etag":null,"topics":["android","beacon","ble","bluetooth","bluetooth-low-energy","macos"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eason-projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-09T04:51:23.000Z","updated_at":"2025-03-09T13:40:01.000Z","dependencies_parsed_at":"2025-03-09T14:37:12.468Z","dependency_job_id":null,"html_url":"https://github.com/eason-projects/ble-beacon","commit_stats":null,"previous_names":["yishi-projects/ble-beacon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eason-projects%2Fble-beacon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eason-projects%2Fble-beacon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eason-projects%2Fble-beacon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eason-projects%2Fble-beacon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eason-projects","download_url":"https://codeload.github.com/eason-projects/ble-beacon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242838582,"owners_count":20193526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","beacon","ble","bluetooth","bluetooth-low-energy","macos"],"created_at":"2025-03-10T10:53:21.574Z","updated_at":"2025-12-13T13:20:28.439Z","avatar_url":"https://github.com/eason-projects.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BLE Beacon System\n\nA comprehensive Bluetooth Low Energy (BLE) beacon system that includes components for both transmitting and receiving beacon signals, with Kafka integration for data processing.\n\n## Project Overview\n\nThis project consists of three main components:\n\n1. **BLE Scanner** - A Python application that scans for BLE beacons and sends the data to Kafka\n2. **Kafka Setup** - A Docker Compose configuration for setting up a Kafka environment\n3. **BLE Beacon Transmitter** - An Android application that broadcasts BLE beacons\n\n## Components\n\n### 1. BLE Scanner (`/scanner`)\n\nA Python application that scans for Bluetooth Low Energy (BLE) beacons and sends the data to a Kafka topic.\n\n#### Features\n- Detects multiple beacon formats (iBeacon, Eddystone, AltBeacon)\n- Sends beacon data to Kafka in JSON format\n- Includes a simple GUI for visualization\n\n#### Requirements\n- Python 3.7+\n- Required packages: bleak, kafka-python, Pillow, wxPython\n\n#### Usage\n```bash\ncd scanner\npip install -r requirements.txt\npython scan.py\n```\n\nFor more details, see the [Scanner README](scanner/README.md).\n\n### 2. Kafka Setup (`/kafka`)\n\nA Docker Compose configuration for setting up a simple Kafka environment with the following components:\n- Kafka broker (running in KRaft mode without Zookeeper)\n- Kafka UI (web interface for managing Kafka)\n\n#### Requirements\n- Docker and Docker Compose\n\n#### Usage\n```bash\ncd kafka\ndocker-compose up -d\n```\n\nAccess the Kafka UI at http://localhost:8080\n\nFor more details, see the [Kafka README](kafka/README.md).\n\n### 3. BLE Beacon Transmitter (`/blluetoothbeacon`)\n\nAn Android application that broadcasts Bluetooth Low Energy (BLE) beacons that can be used for location testing.\n\n#### Features\n- Broadcasts iBeacon format BLE advertisements\n- Configurable UUID, Major, Minor, and TX Power values\n- Adjustable transmission power levels and advertising modes\n- Simple user interface to start/stop beacon transmission\n\n#### Requirements\n- Android device with Bluetooth Low Energy support\n- Android SDK 34 or higher\n- Bluetooth and Location permissions\n\nFor more details, see the [BLE Beacon Transmitter README](blluetoothbeacon/README.md).\n\n## System Architecture\n\nThe system works as follows:\n\n1. The Android app broadcasts BLE beacon signals\n2. The Python scanner detects these signals and other BLE beacons in the vicinity\n3. The scanner sends the beacon data to Kafka\n4. Kafka stores the data and makes it available for further processing\n\nThis architecture allows for real-time tracking and analysis of BLE beacon data.\n\n## Getting Started\n\n### Prerequisites\n- Python 3.7+\n- Docker and Docker Compose\n- Android Studio (for building the Android app)\n\n### Setup Steps\n\n1. Start the Kafka environment:\n```bash\ncd kafka\ndocker-compose up -d\n```\n\n2. Run the BLE scanner:\n```bash\ncd scanner\npip install -r requirements.txt\npython scan.py\n```\n\n3. Build and install the Android app:\n```bash\ncd blluetoothbeacon\n./gradlew installDebug\n```\n\n## Data Format\n\nThe beacon data sent to Kafka is in JSON format with structures specific to each beacon type (iBeacon, Eddystone, AltBeacon). See the [Scanner README](scanner/README.md) for detailed format specifications.\n\n## Troubleshooting\n\n### Scanner Issues\n- If you encounter Carbon Framework errors on newer macOS versions, see the troubleshooting section in the [Scanner README](scanner/README.md).\n\n### Kafka Issues\n- For Kafka connection issues, see the troubleshooting section in the [Kafka README](kafka/README.md).\n\n### Android App Issues\n- For \"Data Too Large\" errors or other beacon transmission issues, see the troubleshooting section in the [BLE Beacon Transmitter README](blluetoothbeacon/README.md).\n\n## License\n\nThis project is open source for non-commercial use only. Commercial use of this project or any of its components requires explicit permission from the author. You are free to use, modify, and distribute this software for personal, educational, research, or other non-commercial purposes, provided appropriate attribution is given.\n\nFor commercial licensing inquiries, please contact the author.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feason-projects%2Fble-beacon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feason-projects%2Fble-beacon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feason-projects%2Fble-beacon/lists"}