Le projet final HETIC, "Tech Race", vise à développer une application mobile permettant de contrôler un véhicule à distance via un réseau sans fil. L'application offre aux utilisateurs la possibilité de piloter le véhicule, d'accéder aux données de télémétrie en temps réel et de participer à des courses autonomes.
Ce projet se compose de plusieurs repositories hébergés sur Github :
L'objectif principal est de créer une interface intuitive pour les pilotes afin de contrôler le véhicule et de visualiser ses performances. Deux niveaux de courses sont organisés : l'un où les pilotes contrôlent directement le véhicule depuis l'application mobile, et l'autre où le véhicule doit naviguer de manière autonome en suivant une ligne au sol.
- Contrôle à distance du véhicule via l'application mobile.
- Visualisation en temps réel des données de télémétrie (vitesse, orientation, etc.).
- Mode suiveur de ligne autonome pour les courses sans intervention humaine.
- Cloner ce repository
- Avoir installé Golang sur sa machine locale Installation de Go
- Avoir docker sur sa machine locale et avoir installé l'image docker de mosquitto : Cliquez ici
- Avoir postgresSQL (optionnel car on peux passer via docker)
- Installer MakeFile si vous êtes sur une platforme qui ne l'a pas nativement
- Avoir configurer votre véhicule freenov avec un esp32 ayant le programme avec les bons IP liés à vos réseaux dessus
voir la base de code ici
- S'inscrire gratuitement sur Cloudinary : S'inscrire sur Cloudinary
- Récupérer son cloudinary ID et le cloudinary URL depuis son compte
- Configurer le service cloudinarace (service cloudinary de Tech Race) :
Depuis la racine, se rendre dans
pkg/other/cloudinary/.env:
CLOUDINARY_ID=mon-id-cloudinary-présente-sur-mon-compte
CLOUDINARY_URL=mon-url-cloudinary-présente-sur-mon-compte
GOOS=linux (ou d'autres os si vous n'avez pas linux) > doc de Golang
GOARCH=amd64 (vérifier aussi que c'est bien la bonne architecture pour vous aussi) > doc de Golang
- Configurer le
.envdu projet à la racine :
IP=127.0.0.1
BOUNDARY=--123456789000000000000987654321
UPLOAD_VIDEO_URL=http://localhost:8083/upload-video
CLOUDINARY_URL=xxxx > votre url de cloudinary
CLOUDINARY_ID=xxxxx > votre id cloudinary
PortVideo=7000
ESP32_ADDRESS=192.168.104.10
ESP32_PORT=7000
RELAY_ADDRESS=:8080
STREAM_BOUNDARY=123456789000000000000987654321
DATABASE_URL=postgresql://root:xxxxx@xxxx/tech_race > demandez-nous l'url de la bdd
- 🛵 Aller à la racine du projet et lancer ces commandes :
Usage de nos scripts si Linux (ou wsl) (Attention cela kill des ports sur votre machine)
Vous devez pouvoir utiliser le mode
sudosans Linux, travaillez dans un environnement virtuel ou via WSL si vous êtes sur Windows
Il est nécessaire d'installer make si vous avez Windows. Il est natif sur Mac et Linux.
- Lancer le script
./start_app.shva ouvrir les ports utilisés par l'API et lancer les container docker puis l'app (go run) - Sur un autre terminal :
make cloudinaraceou sans make :cd pkg/other/cloudinary && go run main/main.go --port=8083
Installation sous Windows de Make :
-
make: un utilitaire pour executer le script du Makefile.Sur Windows il n'est pas nativement installé
Si vous avez chocolatey : choco install make Info si vous n'avez pas chocolatey : https://earthly.dev/blog/makefiles-on-windows/
Sinon explorez ceci: https://gnuwin32.sourceforge.net/packages/make.html
Vérifiez enfin la compatibilité du script avec Windows : préferez peut-être alors l'usage de
wslou d'un ubuntu avec la commandesudodisponible.
Manuellement :
- Vérifier que les ports 1883 (mqtt), 8083 (cloudinarace), 9000, 8888 (pgAdmin), 8889 (adminer) et 5432 (postgres) sont libres.
- Lancer docker :
docker compose up -d - Installer les dépendances :
go mod downloadetgo mod tidy - Lancer le projet :
go run cmd/api/main.go - Lancer cloudinarace pour la gestion vidéo (si besoin):
cd pkg/other/cloudinary && go run main/main.go --port=8083`
Pour travailler sur le style: tailwind
- Pour travailler en phase de developpement :
npm run watch- Pour builder avant mise en prod :
npm run build- 📊 Configurer la base de donnée:
- Se rendre sur adminer ou pgAdmin
- Regarder les credentials présents dans le fichier
docker-compose.yaml - Choisir PostgresSQL et utiliser ces credentials :
Bdd : tech_race
User : root
Sur PgAdmin, default email : tech@race.com
Mot de passe : password
serveur : db
=======
- Importer le dump de la base de donnée présent sur
dump/tech_race_bdd.sql
- Architecture ESP32
- 4 roues motrices pilotées indépendamment
- Connexion sans fil wifi/bluetooth
- Capteur de distance
- Capteur de suivi de ligne
- Caméra embarquée
Voir le repository : cliquez ici
- APIs de contrôle pour les roues et les capteurs
- Données de télémétrie fournies par les capteurs
- Communication en temps réel entre l'application mobile et le véhicule
Les contributions sont les bienvenues ! Pour contribuer à ce projet, veuillez suivre ces étapes :
- Forker le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Commiter vos modifications (
git commit -m 'Ajouter une fonctionnalité incroyable') - Pousser vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Ce projet est sous licence MIT. Pour plus d'informations, veuillez consulter le fichier LICENSE.
