Imported from GitHub: B1jam1-74/Projet_Ruche_groupe_1 · commit 8a4bde2 · license MIT
Description
README
🐝 Bee Cool
Système autonome de surveillance de ruche à distance
Mesure poids · température · transmission LoRaWAN · charge solaire · application mobile avec analyse IA
Bee Cool est un système embarqué basse consommation conçu pour assister les apiculteurs : il pèse la ruche en continu, mesure la température ambiante, transmet les données par LoRaWAN, et fonctionne en autonomie complète grâce à un système de charge solaire. Côté utilisateur, une application multi-plateforme expose les mesures, trace l'historique, et déclenche des alertes via une analyse IA (miellées, vols, essaimages, dérives thermiques).
Conçu, routé, programmé et validé sur le terrain dans le cadre du projet de Licence Professionnelle — Université Savoie Mont-Blanc, promotion 2025-2026.
✨ En un coup d'œil
| 🎯 Objectif | Tenir plusieurs années en autonomie sur batterie + solaire, en haute montagne comme en plaine |
| 📡 Transmission | LoRaWAN longue portée, module Seeed LoRa-E5 sur socket PLCC-28 |
| ⚡ Conso veille | 320 µA (÷50 vs. point de départ — voir § Résultats) |
| 🔋 Énergie | Panneau solaire 5 W → buck MP1584EN → chargeur MCP73871 → LiPo 1 000 mAh |
| 🧠 Logiciel | Architecture 3 couches (registres / drivers / applicatif), portage HAL → registres |
| 📱 App | Tableau de bord + courbes + IA, Win / Linux / Android (codebase unique) |
| 🔁 Itérations | 5 PCB KiCad (PCB1 → PCB2.2), 2 microcontrôleurs essayés (G031 → L031) |
| 💶 Coût série | 40 € / unité @ 10 000 pcs · break-even 407 unités |
📚 Sommaire
- Vue d'ensemble du système
- Stack technique
- Architecture logicielle
- Résultats clés
- Application mobile & analyse IA
- Cartographie du dépôt
- Démarrage rapide
- Étude économique
- Pistes d'amélioration
- Auteurs
- Licence
🛰️ Vue d'ensemble du système
Le microcontrôleur fait interface avec les capteurs (HX711 + DS18B20) et le module LoRa, qui pousse les trames vers une gateway LoRaWAN puis un serveur web. Côté énergie, le panneau solaire alimente un chargeur dédié qui gère simultanément la batterie LiPo et le rail système 3,3 V via un LDO.
🔧 Stack technique
Matériel
| Bloc | Composant | Pourquoi ce choix |
|---|---|---|
| MCU principal | STM32L031K6T6 (LQFP-32) | Famille L0 ultra-basse conso — gain de 40 % en veille vs. STM32G031 |
| MCU initial | STM32G031K8T6 | Disponible, peu cher, dispo sur Nucleo-32 pour les premiers tests |
| Transmission | Module LoRa-E5 (Seeed Studio) sur socket PLCC-28 | Module certifié, AT commands, remplaçable sans dessoudage |
| Capteur poids | HX711 (24-bit ADC) + cellule de charge | Précision micro-volt, schéma simplifié validé sur breadboard |
| Capteur temp. | DS18B20 (1-Wire) | Précision élevée, 1 pin GPIO suffit |
| LDO système | TS2938CS33 / MIC5209-3.3 | Sortie 3,3 V propre — couplée à un futur étage 1,8 V pour le MCU |
| Chargeur solaire | MCP73871 (Microchip) | Chargeur LiPo PowerPath éprouvé, faible coût |
| Buck panneau | MP1584EN | Adapte 12 V (panneau) → ~5,5 V (entrée MCP) |
| Stockage | LiPo 1 000 mAh / 3,7 V | Suffisant pour plusieurs mois d'autonomie hors solaire |
| Panneau solaire | 5 W / 12 V monocristallin | Charges mesurées à >100 mA soleil direct, >500 mA sous alim de labo |
Firmware
| Couche | Outils | Statut |
|---|---|---|
| STM32CubeIDE + langage C | HAL puis registres (CMSIS) | ✅ HAL G031/L031 · ✅ Registres G031 · 🚧 Registres L031 |
| RTC interne + dérive corrigée | AT+RTC LoRa pour resynchroniser | ✅ Sync quotidienne |
| Mesure HX711 / DS18B20 | Drivers maison, isolés par couche | ✅ |
| Envoi LoRaWAN | Module LoRa-E5 piloté en AT | ✅ |
| Stratégie veille | Réduction des envois la nuit + en hiver via la RTC calendaire | ✅ |
Application
| Cibles | Windows · Linux · Android (base de code unique) |
| Écrans | Tableau de bord · Courbes (1 h / 6 h / 24 h / 7 j / 30 j) · Paramètres (tare par ruche) |
| IA | Détection : miellées · vols · essaimages · anomalies thermiques · pertes de comm. |
| Backend | Serveur collectant les trames LoRaWAN, exposées à l'app |
🧱 Architecture logicielle
Une séparation stricte en 3 couches permet de changer indépendamment :
- Bas niveau — accès direct aux registres (UART, GPIO, RTC, timers)
- Drivers — un fichier par composant (HX711, DS18B20, LoRa-E5)
- Applicatif — logique métier (cycle mesure → trame → veille)
💡 Le portage STM32G031 → STM32L031 s'est fait en quelques heures grâce à cette architecture : seul le bas niveau a été retouché.
📊 Résultats clés
Maîtrise de la consommation (l'aboutissement du projet)
| Étape | Conso veille | Gain cumulé |
|---|---|---|
| Carte Kenny / Xavier (point de départ) | 16 mA | — |
| PCB1.1 (G031) | 0,5 mA | ÷ 32 |
| PCB1.2 (L031) | 320 µA | ÷ 50 |
Décomposition en veille (PCB1.2) :
| Élément débranché | Conso restante |
|---|---|
| Carte complète | 320 µA |
| − LDO (alim 3,3 V ST-LINK) | 230 µA |
| − HX711 | 180 µA |
| − DS18B20 | 170 µA |
| − Module LoRa | 130 µA |
| MCU + passifs seuls | ~120 µA |
Mesures réalisées avec une carte STM32 LPM01A en conditions réelles sur PCB.
Précision RTC
| RTC interne (par défaut) | RTC + quartz externe ABS25 (32,768 kHz) |
|---|---|
| dérive ≈ 2 h / jour | dérive < 5 s / jour (mesurée sur 30 h) |
📱 Application mobile & analyse IA
L'IA analyse l'historique pour mettre en évidence les ruches qui méritent attention plutôt que d'imposer à l'apiculteur de scruter chaque courbe :
- 🍯 Miellées — hausse soutenue du poids net
- 🚨 Vols — chute brutale hors horaire d'intervention
- 🐝 Essaimages — perte de poids rapide
- 🌡️ Anomalies thermiques — dérive interne anormale
- 📴 Pertes de communication — absence prolongée de mesures
🗂️ Cartographie du dépôt
Projet_Ruche_groupe_1/
├── Code Arduino/ ← prototypage rapide
│ ├── balance/ ← HX711 → série
│ └── DS18B20_test/ ← validation sonde 1-Wire
│
├── Code ST/ ← firmware STM32 (STM32CubeIDE)
│ ├── Code avec HAL/
│ │ ├── Breadboard/ ← bring-up sur Nucleo-32
│ │ ├── PCB1.2/ ← cible L031
│ │ ├── PCB2.1/ ← cible intégrée
│ │ └── Test_crystal_RTC_F446/ ← validation quartz externe
│ └── Code avec registres/
│ ├── ds18b20/
│ ├── projet_sleep/ ← cycle mesure + veille optimisé
│ └── STM32G031_FromScratch-main/
│
├── PCB/ ← projets KiCad
│ ├── PCB1 PCB1.1 PCB1.2 ← composants non intégrés
│ ├── PCB2 PCB2.1 PCB2.2 ← intégrés (HX711 + LoRa)
│ ├── LoRa E5_benj/ ← symbole + footprint
│ └── Docs/
│
├── Datasheets/ ← références (STM32, LoRa-E5, HX711, DS18B20…)
│
├── Rapport/ ← rapport final
│ ├── Rapport.md ← source Obsidian / Markdown enrichi
│ ├── Rapport_final.pdf ← PDF distribué
│ └── images/
│
├── LICENSE ← MIT
└── README.md ← vous êtes ici
📖 Le rapport complet (PDF) détaille les choix de conception, les itérations PCB, les pannes rencontrées, les mesures, l'étude économique et les pistes d'amélioration.
🚀 Démarrage rapide
Ouvrir un projet KiCad
# Installer KiCad 7+ : https://www.kicad.org/download/
kicad "PCB/PCB2.1/Cours_Univ_2025_v1.kicad_pro"
Builder le firmware STM32
- Installer STM32CubeIDE (≥ 1.13)
- File → Open Projects from File System… → sélectionner par exemple :
Code ST/Code avec HAL/PCB1.2/ - Brancher le ST-LINK sur la carte cible, Run → Debug (
F11)
Charger un sketch Arduino
# Avec arduino-cli (ou via l'IDE Arduino classique)
arduino-cli compile --fqbn arduino:avr:uno "Code Arduino/balance"
arduino-cli upload --fqbn arduino:avr:uno -p /dev/ttyUSB0 "Code Arduino/balance"
💶 Étude économique (synthèse)
BOM PCB2.1 — 16 lignes de composants
| Volume | Coût composants PCB |
|---|---|
| Unitaire (prototype) | 13,63 € |
| Série (10 000 pcs) | 6,59 € |
Coût système complet (10 000 unités)
| Poste | € / unité |
|---|---|
| Composants PCB | 6,59 |
| Fabrication PCB + assemblage SMT | 3,30 |
| Module LoRa-E5 | 6,50 |
| Capteur, cellule de charge, batterie, panneau, charge | ~13,60 |
| Boîtier IP65 + câblage + emballage + QC + logistique | ~10,10 |
| Production unitaire | 40,09 € |
| R&D + NRE amortis sur 10 k pcs | 3,62 |
| Coût de revient total | ≈ 43,71 € |
Rentabilité
| Indicateur | Valeur |
|---|---|
| Prix de vente public HT visé | 129 € |
| Marge brute | 88,91 € / u (68,9 %) |
| Marge nette estimée | ~69,56 € / u (53,9 %) |
| Seuil de rentabilité | ≈ 407 unités |
| Bénéfice net @10 k pcs | ≈ 659 400 € |
Positionnement : Beep Base ≈ 200 €, Capaz ≈ 150 €, Arnia ≈ 500 €. À 129 €, Bee Cool est compétitif tout en dégageant une marge confortable.
🛣️ Pistes d'amélioration
- Reprendre le firmware L031 en registres (CMSIS) pour exploiter pleinement le mode stop
- Quartz externe ABS25-32.768 kHz sur LSE → dérive RTC divisée par ~1 500
- Tension MCU à 1,8 V au lieu de 3,3 V → gain mesuré ≈ −60 % sur projet similaire
- Chargeur CN3791 (entrée 5–28 V) pour brancher le panneau 12 V directement
- MCU STM32U0 / L4 → cibles <1 µA en stop
- PCB tout-en-un intégrant charge solaire + capteurs + MCU + LoRa
- Connectique normalisée (JST pour batterie, jack pour DS18B20)
- Mesure de l'état de charge batterie via ADC (pont diviseur)
👥 Auteurs
| Rôle | Contact | |
|---|---|---|
| Phélim FAVREAU | Co-concepteur — firmware, app, IA | — |
| Benjamin AVOCAT-MAULAZ | Co-concepteur — PCB, alim solaire, mesures | @B1jam1-74 |
| Maram MEZLINI | Phase initiale (140 h) | — |
Encadrement : intervenants soudure / CAO Kenny & Xavier (carte de référence ayant servi de base au PCB1.1).
📄 Licence
Ce projet est distribué sous licence MIT — voir LICENSE.
Vous êtes libres de réutiliser le matériel, le firmware et la documentation, y compris à des fins commerciales, à condition de conserver la mention de copyright et de licence.
« Aucune des cartes fonctionnelles n'aurait existé sans les cartes ratées qui les ont précédées. »
🐝 Bee Cool — Université Savoie Mont-Blanc — 2025/2026 🐝
No comments yet. Be the first to ask about this board.