Réseau:

Cours 1

Cours 2

 

lien TinkerCAD

TP1 - Linux

Python:

Cours magistral 1

Vidéo 1 & Vidéo 2 pour le cours magistral 1

Cours magistral 2

Vidéo 1 & Vidéo 2 pour le cours magistral 2

Cours magistral 3

Vidéo 1 & Vidéo 2 & Vidéo 3 & Vidéo 4 pour le cours magistral 3

Cours magistral 4

Réseau 2 - le projet

Sujet de Projet : Système de Surveillance Environnementale Connecté pour une Maison Intelligente

Description du Projet :

Ce projet consiste à concevoir et réaliser un système de surveillance environnementale pour une maison intelligente. Le système utilisera les différents composants que vous avez mentionnés pour collecter des données et contrôler des éléments à distance via le protocole MQTT.

Fonctionnalités possibles :

  • Surveillance de la température :
    • Utiliser des capteurs LM35 (pour des mesures locales précises) et DS18B20+ (pour des mesures plus robustes et potentiellement à distance) pour surveiller la température dans différentes pièces de la maison ou à l'extérieur.
    • Publier les données de température sur des topics MQTT spécifiques.
  • Indication d'état via boutons poussoirs :
    • Utiliser des boutons poussoirs pour signaler des événements (par exemple, "porte ouverte", "présence détectée manuellement").
    • Publier l'état des boutons sur des topics MQTT.
  • Contrôle d'appareils via relais :
    • Utiliser une carte à relais pour contrôler des appareils électriques (portail automatique, pompes, etc.) à distance.
    • S'abonner à des topics MQTT pour recevoir des commandes d'activation/désactivation des relais.
  • Surveillance du vent (direction et vitesse) :
    • Utiliser les capteurs fournis (girouette et anémomètre) pour mesurer les informations météorologiques extérieures.
    • Publier les données de température sur des topics MQTT spécifiques.
  • Affichage d'informations locales :
    • Utiliser un afficheur LCD i2c pour afficher en temps réel les températures, l'état des boutons, ou l'état des relais.
    • S'abonner à des topics MQTT pour afficher les informations pertinentes.
  • Surveillance vidéo de base :
    • Intégrer une ou plusieurs caméras USB pour capturer des images ou des flux vidéo.
    • Publier des images (à intervalles réguliers ou sur événement) ou des liens vers des flux vidéo sur des topics MQTT spécifiques.
  • Interface utilisateur (optionnelle mais recommandée) :
    • Développer une interface utilisateur (web, application mobile) qui se connecte au broker MQTT pour visualiser les données des capteurs, contrôler les relais et afficher les flux vidéo.

Intérêt de ce projet:

  • Il est pertinent pour une application de maison intelligente: Réseau TCP/IP, bus i2c, bus 1-wire.
  • Proposez des possibilités d'extension (alertes, historique des données, automatisation plus complexe).
  • Il permet d'apprendre les bases de l'IoT et du protocole MQTT de manière pratique.

Documents et Ressources Utiles :

Voici une liste de ressources qui vous seront utiles pour chaque composant et pour l'ensemble du projet MQTT :

Général MQTT :

  • Le site officiel de MQTT : https://mqtt.org/ - La référence pour tout comprendre sur MQTT.
  • Tutoriels MQTT : Recherchez des tutoriels sur des plateformes comme YouTube, Instructables, et des blogs spécialisés en électronique et IoT.
  • Brokers MQTT :
    • Mosquitto : Un broker MQTT open-source très populaire et facile à installer. https://mosquitto.org/
    • CloudMQTT (HiveMQ Cloud) : Un service de broker MQTT hébergé dans le cloud, souvent avec un plan gratuit pour commencer. https://www.hivemq.com/cloud/
  • Clients MQTT (pour interagir avec le broker) :
    • mosquitto_pub et mosquitto_sub : Outils en ligne de commande pour publier et s'abonner à des topics MQTT (inclus avec Mosquitto).
    • MQTT Explorer : Une interface graphique pour visualiser les topics et les messages MQTT. http://mqtt-explorer.com/
    • Paho MQTT : Une librairie cliente MQTT open-source disponible dans plusieurs langages (Python, Java, C, etc.). https://www.eclipse.org/paho/

Capteur de température LM35 :

  • Fiche technique (datasheet) du LM35 : Recherchez "LM35 datasheet" sur Google. C'est le document de référence pour comprendre le fonctionnement et les caractéristiques du capteur.
  • Tutoriels LM35 avec Arduino ou Raspberry Pi : De nombreux tutoriels en ligne expliquent comment connecter et lire les données du LM35 avec différentes plateformes de microcontrôleurs.

Capteur de température DS18B20+ :

  • Fiche technique (datasheet) du DS18B20+ : Recherchez "DS18B20+ datasheet". Ce capteur utilise le protocole 1-Wire.
  • Librairies pour DS18B20+ : Des librairies existent pour Arduino (OneWire, DallasTemperature) et Raspberry Pi (w1thermsensor) pour faciliter la lecture des données.
  • Tutoriels DS18B20+ avec Arduino ou Raspberry Pi : Nombreux exemples disponibles en ligne.

Boutons Poussoirs :

  • Principes de base des boutons poussoirs : Comprendre comment ils fonctionnent (normalement ouvert/fermé).
  • Tutoriels de connexion avec des microcontrôleurs : Apprendre à gérer les états des boutons (pull-up/pull-down resistors, anti-rebond).

Carte à Relais :

  • Fonctionnement des relais : Comprendre comment ils permettent de contrôler des circuits de puissance avec un signal de faible puissance.
  • Précautions de sécurité avec les circuits de puissance : Il est crucial de bien comprendre les risques liés à la manipulation de tensions secteur et de prendre toutes les précautions nécessaires.
  • Tutoriels de contrôle de relais avec des microcontrôleurs : Apprendre à activer et désactiver les relais via des signaux numériques.

Afficheur LCD i2c :

  • Fonctionnement du protocole I2C : Comprendre comment communiquer avec l'afficheur via les broches SDA et SCL.
  • Librairies pour LCD i2c : Des librairies existent pour Arduino (LiquidCrystal_I2C) et Raspberry Pi (python-smbus, RPLCD) pour simplifier l'affichage de texte.
  • Tutoriels d'utilisation des LCD i2c : De nombreux exemples montrent comment afficher du texte et des variables.

Caméras USB :

  • Pilotage de caméras USB sur Raspberry Pi (souvent utilisé pour ce type de projet) :
    • fswebcam : Un utilitaire en ligne de commande pour capturer des images.
    • mjpg-streamer : Pour diffuser un flux vidéo sur un réseau.
    • Librairies Python (OpenCV, Pygame) : Pour un contrôle plus avancé et le traitement d'images.
  • Publication d'images sur MQTT : Vous devrez encoder les images (par exemple en base64) pour les publier sous forme de texte sur un topic MQTT.
  • Streaming vidéo via MQTT (plus complexe) : Cela peut impliquer la publication de trames vidéo individuelles ou de liens vers un flux.

Plateformes de Développement (Microcontrôleurs) :

  • Arduino : Facile à prendre en main, large communauté, nombreuses librairies disponibles. Idéal pour commencer avec les capteurs, les boutons et les relais.
  • Raspberry Pi : Plus puissant, capable de gérer la caméra USB plus facilement et de faire tourner un broker MQTT ou une interface utilisateur. Peut également interagir avec les capteurs et les actionneurs.
  • ESP32/ESP8266 : Microcontrôleurs avec Wi-Fi intégré, très adaptés aux projets IoT et à la communication MQTT directe.

Conseils pour démarrer :

  1. Commencez petit : Testez chaque composant individuellement (lire la température, contrôler un relais, afficher du texte sur l'écran) avant de les intégrer dans le projet MQTT.
  2. Vérifiez et validez toutes les fonctions 1 par 1 de votre projet: 1 séance de 4 heures
  3. Choisissez votre plateforme de développement : Arduino/ESP32 et Raspberry Pi sont de bons choix pour débuter. Vous pouvez même les combiner (Arduino pour les interactions temps réel avec les capteurs/actionneurs, Raspberry Pi pour le broker MQTT et la caméra).
  4. Planifiez vos topics MQTT : Définissez une structure claire pour vos topics (par exemple, maison/temperature/salon, maison/bouton/entree, maison/relais/lumiere).
  5. Testez vos topics MQTT: 1 séance de 4 heures
  6. Documentez votre code et vos branchements : C'est essentiel pour vous y retrouver et pour le débogage.
  7. évaluation:
    1. Oscillogrammes i2c, LM35, carte à relais, boutons poussoirs, 1-wire, .... avec des explications
    2. Vos schémas
    3. Vos programmes commentés (en python et parfois, C++ et autres langages)
    4. Votre fiche de cours: MQTT, web, capteurs, afficheurs, flux vidéo
  8. Durée du projet: 3 ou 4 séances de 4 heures