Ruche Connectée Connected Beehive
Système IoT avec Arduino, capteurs multiples et application Android pour surveillance en temps réel. IoT system with Arduino, multiple sensors and Android app for real-time monitoring.
Découvrez mes réalisations académiques et personnelles dans les domaines des réseaux, de la cybersécurité et du développement. Discover my academic and personal achievements in networking, cybersecurity and development.
Système IoT avec Arduino, capteurs multiples et application Android pour surveillance en temps réel. IoT system with Arduino, multiple sensors and Android app for real-time monitoring.
Collecte, nettoyage et analyse de tweets pour identifier les tendances temporelles. Collection, cleaning and analysis of tweets to identify temporal trends.
Découverte des vulnérabilités courantes et utilisation d'outils de pentesting. Discovery of common vulnerabilities and use of pentesting tools.
Système de vision par ordinateur pour détecter les intrusions et vérifier les équipements de sécurité. Computer vision system to detect intrusions and verify safety equipment.
Application web tout-en-un, développée en Python, pour superviser un serveur DHCP et l'ensemble du parc machines à distance. All-in-one Python web application to supervise a DHCP server and the whole machine fleet remotely.
Conception et déploiement d'un réseau d'entreprise complet : services réseau, base de données, supervision et téléphonie sur IP. Designing and deploying a full enterprise network: core services, database, monitoring and VoIP telephony.
Stage de fin de 2ᵉ année au LAB d'Aix : développement BLE sur la carte STeaMi, système de localisation par trilatération, portage C++ et ressources pédagogiques. End-of-second-year internship at LAB Aix: BLE development on the STeaMi board, a trilateration positioning system, C++ porting and educational resources.
Système IoT complet avec Arduino, capteurs et application Android pour surveiller les ruches en temps réel. Complete IoT system with Arduino, sensors and Android app to monitor beehives in real-time.
Dans le cadre de notre projet de fin d'année au lycée, nous avons répondu à une problématique réelle rencontrée par un apiculteur local : réduire les déplacements sur son site et améliorer l'efficacité de la surveillance de ses ruches. Pour cela, nous avons conçu et déployé une ruche connectée totalement adaptée à une utilisation sur le terrain.
As part of our final year project in high school, we addressed a real issue faced by a local beekeeper: reducing travel to his site and improving efficiency in monitoring his hives. To achieve this, we designed and deployed a connected beehive fully adapted for field use.
Le dispositif embarqué repose sur une carte Arduino couplée à plusieurs capteurs intelligents :
The embedded system is based on an Arduino board connected to several smart sensors:
Ces données, récoltées en temps réel, étaient transmises via une connexion LTE vers une application Android que nous avons développée. Nous avons utilisé le protocole léger MQTT avec le broker Mosquitto pour une communication rapide et fiable avec l'application.
These real-time data were transmitted via an LTE connection to a custom Android application we developed. We used the lightweight MQTT protocol with the Mosquitto broker for fast and reliable communication with the app.
Collecte, traitement et analyse de tweets avec Python pour identifier les tendances par périodes temporelles. Collection, processing and analysis of tweets using Python to identify trends by time periods.
Dans le cadre de cette SAE, nous avons été amenés à collecter, traiter et analyser des Tweets à l'aide de plusieurs outils informatiques. Notre objectif était de décréter les tendances selon les périodes en relevant les occurrences de certains mots clés et d'afficher ces tendances de manière visuelle avec des graphiques.
As part of this SAE, we were tasked with collecting, processing and analyzing Tweets using various digital tools. Our goal was to determine trends by periods based on the occurrences of keywords and display these trends visually with graphs.
Capture The Flag pour découvrir les failles de sécurité les plus récurrentes et apprendre à les exploiter de manière éthique. Capture The Flag to discover the most common security flaws and learn to exploit them ethically.
Le but de cette SAE était de nous introduire aux risques potentiels liés à l'informatique et plus spécifiquement aux systèmes d'information. Notre professeur de Réseaux nous a concocté un Capture The Flag pour découvrir les failles de sécurité les plus récurrentes dans le monde réel.
The goal of this SAE was to introduce us to potential risks related to computing and more specifically to information systems. Our Networks teacher created a Capture The Flag to discover the most common security flaws in the real world.
Le CTF nous a permis d'explorer différentes catégories de vulnérabilités :
The CTF allowed us to explore different categories of vulnerabilities:
Nous avons utilisé plusieurs outils professionnels de pentesting pour mener ce CTF à bien :
We used several professional pentesting tools to complete this CTF:
Système de vision par ordinateur pour détecter les silhouettes humaines et vérifier le port d'équipements de sécurité. Computer vision system to detect human silhouettes and verify safety equipment wear.
Ce projet porte sur la vision par ordinateur pour la détection de silhouettes humaines et la gestion d'alertes de sécurité. L'objectif principal n'était pas la reconnaissance faciale complète, mais de détecter la présence d'une silhouette et de vérifier si elle porte un gilet jaune (personnel autorisé). Si une silhouette sans gilet jaune est détectée, une intrusion est signalée.
This project focuses on computer vision for human silhouette detection and security alert management. The main goal was not full facial recognition, but to detect a silhouette's presence and check whether it wears a yellow safety vest (authorized staff). If a silhouette without a yellow vest is detected, an intrusion is reported.
Une application web tout-en-un, développée en interne, pour superviser un serveur DHCP et l'ensemble des machines du parc à distance. An in-house all-in-one web application to supervise a DHCP server and the entire machine fleet remotely.
Ce projet de développement de solution logicielle répondait à un besoin d'entreprise : disposer d'un outil unique capable de superviser un serveur DHCP ainsi que toutes les machines du parc, depuis une seule interface centralisée. L'application embarque l'intégralité de la partie web (back et front) et a été développée en Python.
This software solution project answered a company need: a single tool able to supervise a DHCP server and every machine in the fleet from one centralised interface. The app bundles the whole web stack (back and front) and was built in Python.
L'architecture repose sur une machine superviseur centrale et un ensemble de machines supervisées. Le lien entre elles est assuré par des scripts Bash de wrapping SSH conçus selon le principe du moindre privilège : chaque connexion ne dispose que des droits strictement nécessaires à la collecte d'informations.
The architecture relies on a central supervisor machine and a set of supervised machines. The link between them is handled by Bash SSH-wrapping scripts designed around the principle of least privilege: each connection only holds the rights strictly needed to gather information.
L'application intègre plusieurs niveaux de privilèges pour cloisonner les actions selon le rôle de l'utilisateur :
The application implements several privilege levels to partition actions by user role:
Conception et déploiement de A à Z d'un réseau d'entreprise complet, des services d'infrastructure jusqu'à la téléphonie sur IP. End-to-end design and deployment of a complete enterprise network, from infrastructure services to IP telephony.
Ce projet intégratif consistait à créer le réseau complet d'une entreprise fictive, en partant d'une infrastructure vierge. L'objectif était de mettre en place une architecture cohérente et fonctionnelle, couvrant l'ensemble des services attendus dans un environnement professionnel : connectivité, services réseau, base de données, supervision et téléphonie.
This integrative project consisted of building the complete network of a fictional company from a blank infrastructure. The goal was to set up a coherent, functional architecture covering all the services expected in a professional environment: connectivity, network services, database, monitoring and telephony.
La supervision de l'infrastructure a été assurée avec Icinga2, permettant de surveiller en continu l'état des équipements et des services, de détecter les pannes et de remonter des alertes. Cette brique garantit la disponibilité et la fiabilité du réseau déployé.
Infrastructure monitoring was handled with Icinga2, continuously watching the state of devices and services, detecting failures and raising alerts. This layer guarantees the availability and reliability of the deployed network.
Le volet téléphonie reposait sur le framework Asterisk, configuré comme PABX de l'entreprise. Des téléphones Grandstream et des softphones ont été déployés et raccordés, permettant des communications internes et la gestion des extensions sur l'ensemble du réseau.
The telephony part was built on the Asterisk framework, configured as the company PABX. Grandstream phones and softphones were deployed and connected, enabling internal communications and extension management across the whole network.
Stage de fin de 2ᵉ année de BUT R&T (parcours cybersécurité) réalisé au LAB — Laboratoire d'Aix-périmentation et de Bidouille, autour de la carte embarquée STeaMi et de ses communications Bluetooth Low Energy. End-of-second-year BUT R&T (cybersecurity track) internship at the LAB — Laboratoire d'Aix-périmentation et de Bidouille, focused on the STeaMi embedded board and its Bluetooth Low Energy communications.
Le LAB est un Fab Lab (association loi 1901) basé à Aix-en-Provence, dédié à la culture maker, à la fabrication numérique et à la médiation scientifique. Le stage s'est déroulé dans un environnement open source : tout le code était hébergé sur les dépôts GitHub du LAB, mes contributions étant suivies via des issues et validées par Pull Requests.
The LAB is a Fab Lab (non-profit) based in Aix-en-Provence, dedicated to maker culture, digital fabrication and science outreach. The internship took place in an open-source environment: all code was hosted on the LAB's GitHub repositories, with my contributions tracked through issues and validated via Pull Requests.
La mission principale portait sur le développement et l'optimisation des fonctionnalités Bluetooth Low Energy (BLE) de la STeaMi : concevoir des communications fiables entre plusieurs cartes, implémenter un système de localisation par trilatération, et optimiser les émissions/scans pour réduire la consommation et améliorer les performances réseau.
The core mission was the development and optimisation of the STeaMi's Bluetooth Low Energy (BLE) features: building reliable multi-board communication, implementing a trilateration positioning system, and optimising advertising/scanning to cut power use and improve network performance.
Carte de développement pédagogique conçue par le LAB, basée sur le microcontrôleur STM32WB55RG. Elle intègre un écran OLED circulaire 128×128, plusieurs capteurs (accéléromètre, gyroscope, capteurs environnementaux), des entrées tactiles et une connectivité BLE 5.2.
A pedagogical development board designed by the LAB, built around the STM32WB55RG microcontroller. It features a circular 128×128 OLED display, several sensors (accelerometer, gyroscope, environmental sensors), touch inputs and BLE 5.2 connectivity.
Environnement logiciel : MicroPython (prototypage rapide, accès direct au matériel) et C++/Arduino pour les parties critiques. Outils : Thonny, mpremote (REPL), environnement virtuel Python, le tout sur une machine Debian.
Software environment: MicroPython (fast prototyping, direct hardware access) and C++/Arduino for performance-critical parts. Tooling: Thonny, mpremote (REPL) and a Python virtual environment, all on a Debian machine.
Mise en place d'un réseau BLE maillé (mesh) composé de trois périphériques capteurs (P1–P3) et trois relais (R1–R3). Le fonctionnement repose sur un mode sans connexion : diffusion (advertising) et écoute (scan) de paquets, sans session GATT, pour une communication plus légère et une meilleure scalabilité.
Building a BLE mesh network made of three sensor peripherals (P1–P3) and three relays (R1–R3). It works in a connectionless mode: packet advertising and scanning, without a GATT session, for lighter communication and better scalability.
Réalisation la plus aboutie du stage : un système de localisation intérieure estimant la position d'une carte mobile (STeaMi-Nomade) à partir du RSSI de trois ancres BLE fixes (M1, M2, M3).
The most accomplished part of the internship: an indoor positioning system estimating the position of a mobile board (STeaMi-Nomade) from the RSSI of three fixed BLE anchors (M1, M2, M3).
Précision moyenne d'environ 20 cm en environnement contrôlé sous MicroPython, malgré la forte variabilité du RSSI et les limites du langage interprété.
Average accuracy around 20 cm in a controlled environment under MicroPython, despite high RSSI variability and the limits of an interpreted language.
Pour gagner en réactivité et en stabilité temps réel, les briques critiques du système de localisation ont été portées de MicroPython vers le C++ (langage compilé, contrôle bas niveau). Optimisations : réduction des traitements dans la boucle principale, limitation des allocations dynamiques, augmentation de la fréquence de calcul BLE et baisse de la latence acquisition → affichage.
To gain responsiveness and real-time stability, the critical parts of the positioning system were ported from MicroPython to C++ (compiled, low-level control). Optimisations: trimming the main loop, limiting dynamic allocations, raising the BLE computation rate and reducing acquisition-to-display latency.
Résultat : exécution nettement plus rapide et stable, précision de l'ordre de quelques centimètres en conditions contrôlées. L'affichage OLED reste pour l'instant en MicroPython (pas encore de driver SSD1327 en C++), les résultats C++ étant affichés via le terminal série.
Result: much faster and more stable execution, with centimetre-level accuracy in controlled conditions. OLED display remains in MicroPython for now (no SSD1327 C++ driver yet), with C++ results shown over the serial terminal.
Jeu de labyrinthe contrôlé en inclinant la carte (accéléromètre ISM330DL, écran SSD1327). Le labyrinthe est généré par DFS / Recursive Backtracker ; un algorithme de Dijkstra calcule le plus court chemin pour scorer la performance du joueur. Conçu comme support pédagogique pour l'enseignement des algorithmes en NSI.
A maze game controlled by tilting the board (ISM330DL accelerometer, SSD1327 screen). The maze is generated with DFS / Recursive Backtracker; a Dijkstra algorithm computes the shortest path to score the player. Designed as a teaching resource for algorithms in NSI.