{"id":25209099,"url":"https://github.com/titansage02/smart-shopping-cart","last_synced_at":"2026-05-09T04:32:24.896Z","repository":{"id":276678786,"uuid":"929945518","full_name":"TitanSage02/Smart-Shopping-Cart","owner":"TitanSage02","description":"SmartShopping Cart est un système de caddie autonome qui suit le client grâce à une localisation en intérieur basée sur la trilatération Bluetooth Low Energy (BLE). Il combine ESP32, MQTT et un serveur Python pour un suivi fluide et une expérience d'achat améliorée","archived":false,"fork":false,"pushed_at":"2025-02-09T19:18:21.000Z","size":34198,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T20:24:01.216Z","etag":null,"topics":["ble","embedded-systems","esp32","indoor-positioning","iot","mqtt","rssi-localization","smart-shopping"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TitanSage02.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-02-09T18:59:32.000Z","updated_at":"2025-02-09T19:18:24.000Z","dependencies_parsed_at":"2025-02-09T20:24:07.919Z","dependency_job_id":"0d3d9826-ebcd-4046-95d9-aa905e800205","html_url":"https://github.com/TitanSage02/Smart-Shopping-Cart","commit_stats":null,"previous_names":["titansage02/smart-shopping-cart"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TitanSage02%2FSmart-Shopping-Cart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TitanSage02%2FSmart-Shopping-Cart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TitanSage02%2FSmart-Shopping-Cart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TitanSage02%2FSmart-Shopping-Cart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TitanSage02","download_url":"https://codeload.github.com/TitanSage02/Smart-Shopping-Cart/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247289829,"owners_count":20914542,"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":["ble","embedded-systems","esp32","indoor-positioning","iot","mqtt","rssi-localization","smart-shopping"],"created_at":"2025-02-10T13:15:18.331Z","updated_at":"2026-05-09T04:32:24.837Z","avatar_url":"https://github.com/TitanSage02.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Smart-Shopping Cart : Indoor Positioning \u0026 Autonomous Shopping Cart\n\n## Overview\nSmart-Shopping Cart est un projet de caddie intelligent qui suit automatiquement le client dans une boutique grâce à un système de localisation en intérieur basé sur la trilatération Bluetooth Low Energy (BLE).\n\nChaque client reçoit un **tag BLE** (ESP32) au début de son parcours. Des **ESP32 ancres** positionnées dans le magasin captent les signaux de ce tag et envoient les RSSI (Received Signal Strength Indicator) à un serveur via MQTT. Le serveur analyse ces données et envoie les commandes de navigation au caddie du client pour qu’il le suive en temps réel.\n\n---\n## 📌 Features\n\n✅ **Localisation indoor avec BLE** : Calcul de la position du client par trilatération grâce à plusieurs ESP32 ancrés dans la boutique.\n✅ **Suivi autonome du caddie** : Communication entre le serveur et le caddie via MQTT pour un suivi fluide.\n✅ **Affichage en temps réel** : Un écran sur le caddie affiche les produits scannés, leurs prix et d'autres informations.\n✅ **Architecture distribuée** : ESP32 pour la collecte des données, un serveur Python pour le traitement et un Arduino pour le contrôle du moteur.\n✅ **Communication MQTT efficace** : Transmission rapide et asynchrone des commandes et mesures RSSI.\n\n\n## 🛠 Architecture Technique\n### 1️⃣ **Tag BLE (ESP32)**\n- Se connecte au réseau Bluetooth et envoie des signaux BLE.\n- Fonctionne sur batterie et est attribué à chaque client.\n\n### 2️⃣ **Ancres ESP32 (BLE Scanners)**\n- Disposées dans la boutique pour scanner les signaux BLE.\n- Envoient les RSSI et l’adresse MAC détectés au serveur via MQTT.\n\n### 3️⃣ **Serveur de traitement (Python)**\n- Analyse les RSSI et effectue une **trilatération** pour estimer la position du client.\n- Envoie les commandes au caddie pour le suivi.\n\n### 4️⃣ **Caddie autonome (ESP32 + Arduino + L298N)**\n- Reçoit les commandes du serveur et ajuste son mouvement.\n- Affichage écran pour montrer le prix des articles scannés.\n\n---\n## 📂 Fichiers et Organisation\n\n📂 SmartCart-System/\n│── 📂 firmware/             # Code pour ESP32 (tag, caddie et anchors)\n│    ├── 📂 tag/             # Firmware des tags (BLE)\n│    ├── 📂 anchors/         # Firmware des ESP32 ancres (BLE Scan + MQTT)\n│    ├── 📂 cart/            # Firmware du caddie (réception commandes + moteur)\n│    ├── 📂 arduino_cart/    # Code pour l’Arduino du caddie (moteurs)\n│── 📂 server/               # Code du serveur de traitement\n│── 📂 docs/                 # Documentation et images\n│── 📂 hardware/             # Schémas et modèles 3D (caddie, électronique)\n│── 📂 frontend/             # Interface utilisateur (écran du caddie)\n│── README.md                # Présentation globale du projet\n│── LICENSE                  # Licence du projet\n\n---\n## 🚀 Installation \u0026 Déploiement\n\n### 1️⃣ **Installation des dépendances** (Serveur Python)\n```sh\ncd server\npython -m venv venv\nsource venv/bin/activate  # (ou venv\\Scripts\\activate sous Windows)\npip install -r requirements.txt\n```\n\n### 2️⃣ **Déploiement du Broker MQTT**\nInstaller Mosquitto en local ou via Docker :\n```sh\ndocker run -d -p 1883:1883 -p 9001:9001 eclipse-mosquitto\n```\n\n### 3️⃣ **Flash des ESP32 (Tags, Anchors, Caddie)**\nCompiler et flasher chaque ESP32 avec son firmware respectif (voir dossier `firmware/`).\n\n### 4️⃣ **Lancement du serveur**\n```sh\npython server/server.py \u0026 python server/time_server.py \n```\n\n---\n## 📌 Améliorations Futures\n- 🔹 Améliorer la précision avec des algorithmes de filtrage avancés.\n- 🔹 Ajouter un module d’évitement d’obstacles au caddie.\n- 🔹 Intégration avec un système de paiement automatique.\n\n---\n## 📜 Licence\nCe projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.\n\n---\n## 💡 Crédits\nDéveloppé par Espérance AYIWAHOUN et contributeurs. 🚀","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitansage02%2Fsmart-shopping-cart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftitansage02%2Fsmart-shopping-cart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitansage02%2Fsmart-shopping-cart/lists"}