100%
projet_ruche_groupe_1 LoRa E5 view
Description

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

License: MIT Status MCU LoRaWAN KiCad Language App Sleep Year


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

🎯 ObjectifTenir plusieurs années en autonomie sur batterie + solaire, en haute montagne comme en plaine
📡 TransmissionLoRaWAN longue portée, module Seeed LoRa-E5 sur socket PLCC-28
Conso veille320 µA (÷50 vs. point de départ — voir § Résultats)
🔋 ÉnergiePanneau solaire 5 W → buck MP1584EN → chargeur MCP73871 → LiPo 1 000 mAh
🧠 LogicielArchitecture 3 couches (registres / drivers / applicatif), portage HAL → registres
📱 AppTableau de bord + courbes + IA, Win / Linux / Android (codebase unique)
🔁 Itérations5 PCB KiCad (PCB1 → PCB2.2), 2 microcontrôleurs essayés (G031 → L031)
💶 Coût série40 € / unité @ 10 000 pcs · break-even 407 unités

📚 Sommaire


🛰️ 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

BlocComposantPourquoi ce choix
MCU principalSTM32L031K6T6 (LQFP-32)Famille L0 ultra-basse conso — gain de 40 % en veille vs. STM32G031
MCU initialSTM32G031K8T6Disponible, peu cher, dispo sur Nucleo-32 pour les premiers tests
TransmissionModule LoRa-E5 (Seeed Studio) sur socket PLCC-28Module certifié, AT commands, remplaçable sans dessoudage
Capteur poidsHX711 (24-bit ADC) + cellule de chargePrécision micro-volt, schéma simplifié validé sur breadboard
Capteur temp.DS18B20 (1-Wire)Précision élevée, 1 pin GPIO suffit
LDO systèmeTS2938CS33 / MIC5209-3.3Sortie 3,3 V propre — couplée à un futur étage 1,8 V pour le MCU
Chargeur solaireMCP73871 (Microchip)Chargeur LiPo PowerPath éprouvé, faible coût
Buck panneauMP1584ENAdapte 12 V (panneau) → ~5,5 V (entrée MCP)
StockageLiPo 1 000 mAh / 3,7 VSuffisant pour plusieurs mois d'autonomie hors solaire
Panneau solaire5 W / 12 V monocristallinCharges mesurées à >100 mA soleil direct, >500 mA sous alim de labo

Firmware

CoucheOutilsStatut
STM32CubeIDE + langage CHAL puis registres (CMSIS)✅ HAL G031/L031 · ✅ Registres G031 · 🚧 Registres L031
RTC interne + dérive corrigéeAT+RTC LoRa pour resynchroniser✅ Sync quotidienne
Mesure HX711 / DS18B20Drivers maison, isolés par couche
Envoi LoRaWANModule LoRa-E5 piloté en AT
Stratégie veilleRéduction des envois la nuit + en hiver via la RTC calendaire

Application

CiblesWindows · Linux · Android (base de code unique)
ÉcransTableau de bord · Courbes (1 h / 6 h / 24 h / 7 j / 30 j) · Paramètres (tare par ruche)
IADétection : miellées · vols · essaimages · anomalies thermiques · pertes de comm.
BackendServeur collectant les trames LoRaWAN, exposées à l'app

🧱 Architecture logicielle

Une séparation stricte en 3 couches permet de changer indépendamment :

  1. Bas niveau — accès direct aux registres (UART, GPIO, RTC, timers)
  2. Drivers — un fichier par composant (HX711, DS18B20, LoRa-E5)
  3. 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)

ÉtapeConso veilleGain 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ète320 µA
− LDO (alim 3,3 V ST-LINK)230 µA
− HX711180 µA
− DS18B20170 µA
− Module LoRa130 µ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 / jourdé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

  1. Installer STM32CubeIDE (≥ 1.13)
  2. File → Open Projects from File System… → sélectionner par exemple :
    Code ST/Code avec HAL/PCB1.2/
    
  3. 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

VolumeCoû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 PCB6,59
Fabrication PCB + assemblage SMT3,30
Module LoRa-E56,50
Capteur, cellule de charge, batterie, panneau, charge~13,60
Boîtier IP65 + câblage + emballage + QC + logistique~10,10
Production unitaire40,09 €
R&D + NRE amortis sur 10 k pcs3,62
Coût de revient total≈ 43,71 €

Rentabilité

IndicateurValeur
Prix de vente public HT visé129 €
Marge brute88,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ôleContact
Phélim FAVREAUCo-concepteur — firmware, app, IA
Benjamin AVOCAT-MAULAZCo-concepteur — PCB, alim solaire, mesures@B1jam1-74
Maram MEZLINIPhase 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 🐝

Comments
Sign in to comment

No comments yet. Be the first to ask about this board.