Rapport d'intention

Deux propositions d'installations numériques alliant capteurs, automatisation et interfaces web pour le suivi environnemental.

Équipe 4 – Veille technologique

Section 1 – Analyse du projet

Compréhension du mandat, objectifs et contraintes

Présentation du projet

Dans le cadre du cours de veille technologique au cégep, notre équipe composée de 4 étudiants doit concevoir et présenter deux propositions d'installations numériques qui mélangent matériel (capteurs, microcontrôleurs) et logiciel (scripts Python, interface web). Chaque proposition doit répondre à un besoin concret en utilisant des technologies actuelles et stables.

Le livrable est un site web statique basé sur GitHub Pages et qui va servir de rapport d'intention. Ce dernier est par la suite accompagné d'une présentation orale pour le client pour une meilleure compréhension de nos intentions sur notre projet. Ce rapport prouve notre compréhension globale du besoin, le potentiel de réalisation technique de nos idées et la justification de nos choix technologiques.

Objectifs et visées du projet

Contraintes du projet (ce que le client ne veut pas)

Contraintes technologiques

Longévité

Les technologies choisies doivent avoir une communauté active de programmeurs et un support à long terme. Le Raspberry Pi et le langage Python répondent à ce critère grâce à leur usage généralisé

Stabilité

Le système doit fonctionner de manière autonome sans qu'il se plante. Les bibliothèques utilisées (GPIO, OpenCV) sont testées en production sur Raspberry Pi.

Efficacité

Le Raspberry Pi a des ressources limitées. Le code doit donc être léger et bien optimisé pour ne pas trop utiliser la mémoire et le processeur. Les capteurs doivent être lus à de bons intervalles.

Maintenabilité

Le code doit être simple, clair et bien organisé. Utiliser Python et des fichiers standards comme CSV ou JSON permet de faciliter les modifications plus tard.

Section 2 – Propositions

Deux installations numériques détaillées

Proposition 1

PlantGuardian

Plante intelligente autonome – Surveillance visuelle, bulletin de santé et arrosage automatique

Description détaillée

PlantGuardian est un système connecté qui surveille une plante avec des capteurs et une caméra. Il analyse son état, enregistre sa croissance en time-lapse et arrose automatiquement si le sol est trop sec. Un tableau de bord web permet de voir les données et l’état de la plante.

Fonctionnement

  1. Données : Les capteurs mesurent l’humidité du sol et la lumière à intervalles réguliers.
  2. Images : La caméra prend des photos pour créer un time-lapse de la plante.
  3. Analyse : OpenCV analyse les images pour détecter des changements (ex. feuilles jaunes).
  4. Arrosage : Si le sol est trop sec, le système active une pompe pour arroser.
  5. Sauvegarde : Les données sont enregistrées en CSV ou JSON.
  6. Affichage : Une page web montre les données, les photos et l’état de la plante.

Réponse aux défis et contraintes

Contrainte Solution PlantGuardian
Autonomie L'arrosage est entièrement automatisé via les seuils d'humidité. Aucune intervention humaine quotidienne requise.
Pas de cloud payant Tout fonctionne en local sur le Raspberry Pi. Les données sont stockées sur la carte microSD.
Maintenabilité Code Python modulaire, données en CSV/JSON lisibles, bibliothèques open source matures.
Faisabilité (4 semaines) Les composants sont courants et abordables. Les bibliothèques utilisées sont bien documentées.
Longévité Raspberry Pi, Python et OpenCV sont des technologies pérennes avec des communautés actives.

Interactions attendues

Amorce : Le système démarre automatiquement au branchement du Raspberry Pi. Les capteurs commencent leurs lectures immédiatement.

Démarrage automatique Lecture des capteurs toutes les 15 minutes Capture photo Analyse (humidité + image) Arrosage si nécessaire Mise à jour du tableau de bord

Déroulement continu : Le cycle se répète indéfiniment. L'utilisateur peut consulter le tableau de bord web à tout moment pour voir les données actuelles et historiques.

Temps : Chaque cycle complet (lecture + analyse + arrosage éventuel) dure environ 30 secondes à 1 minute. Le time-lapse est généré quotidiennement via ffmpeg.

Technologies matérielles

Raspberry Pi Caméra Pi / USB Pompe à eau Relais électronique Capteur d'humidité du sol Capteur de luminosité Convertisseur ADC (MCP3008) Carte microSD Alimentation électrique

Schéma matériel

[Alimentation] → [Raspberry Pi] → [GPIO]
↓        ↓        ↓        ↓
[Caméra]  [ADC MCP3008]  [Relais]  [Écran/Web]
            ↓            ↓
[Capteur humidité]  [Capteur luminosité]  [Pompe à eau]
                ↓
            [Plante]

Technologies logicielles

Raspberry Pi OS Python gpiozero OpenCV ffmpeg CSV / JSON Flask (serveur web local) GitHub Pages HTML / CSS

Schéma logiciel

[Script principal Python]
   ↓        ↓        ↓        ↓
[GPIO: lecture capteurs]  [Caméra: capture]  [OpenCV: analyse]  [Logique arrosage]
        ↓            ↓           ↓           ↓
[Stockage CSV/JSON]  [Stockage images]  [Bulletin santé]  [Activation relais/pompe]
                ↓
[ffmpeg: génération time-lapse quotidien]
                ↓
[Interface web HTML/CSS – Tableau de bord]

Justification des choix technologiques

Technologie Pourquoi
Raspberry Pi Petit, abordable et polyvalent. Permet d’utiliser Python, les GPIO et une caméra facilement.
Python Langage simple et populaire, parfait pour les projets connectés sur internet et le prototypage rapide.
OpenCV Permet de traiter et analyser des images facilement sans utiliser le cloud.
ffmpeg Permet de créer des vidéos ou des time-lapse à partir d’images automatiquement.
CSV / JSON Formats simples pour enregistrer et lire les données.
HTML / CSS Permet d’afficher les résultats dans un navigateur facilement.
Proposition 2

WaterGuardian

Analyseur intelligent de qualité de l'eau – Surveillance en continu avec alertes et recommandations

Description détaillée

WaterGuardian est un système qui surveille la qualité de l’eau (aquarium ou eau potable). Un Raspberry Pi est connecté à des capteurs qui mesurent le pH, la température et la clarté de l’eau. Si une valeur devient anormale, une alerte s’affiche sur une page web avec des recommandations. Toutes les données sont enregistrées pour suivre l’évolution dans le temps.

Fonctionnement

  1. Mesures : Les capteurs prennent des données à intervalles réguliers (ex. toutes les 10 minutes).
  2. Analyse : Le programme vérifie si les valeurs respectent les seuils définis.
  3. Alerte : Si une valeur est anormale, une alerte apparaît sur le tableau de bord.
  4. Recommandations : Le système propose des actions (ex. changer l’eau, ajuster le pH).
  5. Sauvegarde : Les données sont enregistrées en CSV ou JSON.
  6. Graphiques : Des graphiques montrent l’évolution des données.

Réponse aux défis et contraintes

Contrainte Solution WaterGuardian
Autonomie Surveillance entièrement automatisée 24/7. L'utilisateur n'intervient que lorsqu'une alerte est déclenchée.
Pas de cloud payant Traitement local sur Raspberry Pi. Graphiques générés localement avec Matplotlib. Aucun service externe.
Maintenabilité Architecture modulaire en Python. Chaque capteur a son propre module. Données en formats standards.
Faisabilité (4 semaines) Composants disponibles et bien documentés. Le système repose sur des lectures simples de capteurs et de la logique de seuils.
Longévité Les capteurs aquatiques sont conçus pour une utilisation prolongée. Le logiciel repose sur des technologies fiables et durables.

Interactions attendues

Amorce : Le système se lance au démarrage du Raspberry Pi. Les sondes commencent la collecte de données dès l'immersion.

Démarrage automatique Lecture capteurs aux 10 minutes Analyse des seuils Alerte si anomalie Recommandation affichée Mise à jour graphiques

Déroulement continu : Le système fonctionne en boucle. Les graphiques et l'historique se mettent à jour automatiquement. L'utilisateur consulte le tableau de bord à sa convenance.

Temps : Chaque cycle de lecture et d'analyse prend quelques secondes. Les graphiques sont régénérés à chaque nouvelle mesure.

Technologies matérielles

Raspberry Pi Sonde de pH Capteur température DS18B20 Capteur de turbidité Convertisseur ADC (ADS1115) Écran / accès web Carte microSD Alimentation électrique

Schéma matériel

[Alimentation] → [Raspberry Pi] → [GPIO]
                ↓        ↓        ↓
    [ADC ADS1115]  [DS18B20 (1-Wire)]  [Écran/Web]
        ↓            ↓
[Sonde pH]  [Capteur turbidité]
                ↓
        [Eau : aquarium / potable]

Technologies logicielles

Raspberry Pi OS Python gpiozero Matplotlib CSV / JSON Flask (serveur web local) GitHub Pages HTML / CSS

Schéma logiciel

[Script principal Python]
  ↓        ↓        ↓
[Module pH]  [Module température]  [Module turbidité]
        ↓        ↓        ↓
     [Analyse des seuils & détection anomalies]
        ↓        ↓
[Stockage CSV/JSON]  [Système d'alertes & recommandations]
        ↓
[Matplotlib: génération graphiques]
        ↓
[Interface web HTML/CSS – Tableau de bord]

Justification des choix technologiques

Technologie Pourquoi
Raspberry Pi Peut gérer plusieurs capteurs en même temps et fonctionne bien avec Python.
Python Facile à utiliser et parfait pour traiter les données des capteurs.
Sonde pH Permet de mesurer l’acidité de l’eau de façon fiable.
DS18B20 Capteur de température précis et étanche, idéal pour l’eau.
Matplotlib Permet de créer des graphiques facilement en Python.
CSV / JSON Formats simples pour enregistrer les données.
HTML / CSS Permet de voir les résultats dans un navigateur sans installer d’application.