Dans cette section, je présente une démonstration de mes compétences en programmation. Vous pouvez faire défiler la page ou utiliser les liens rapides ci-dessous pour accéder directement aux informations.

In this section, I present a demonstration of my programming skills. You can scroll down the page or use the quick links below to directly access the information.

Liens rapides :

Système de surveillance Domotique

Mon projet de système de surveillance domotique est l'aboutissement théorique et pratique de près de trois ans d'études en autodidacte et de formation dans le domaine de la programmation. Ce projet représente également un accomplissement personnel et sert de vitrine pour démontrer mes compétences dans le domaine de l'Internet des objets (IoT).

Le but de ce projet est de créer un système de surveillance capable de mesurer la température et l'humidité d'une pièce de vie à intervalles réguliers. En cas de dépassement des seuils définis, le programme envoie des alertes par e-mail à partir d'une liste prédéfinie, active un signal lumineux, et enregistre les événements dans un fichier log. Les données sont consultables en temps réel via Node-RED. Les scripts sont écrits en Python et Bash, et sont déployés avec Docker. Les services sont ensuite orchestrés avec Docker Compose.

Objectif :

Étapes du projet :

Perspectives et Scalabilité

Bien que ce projet ait été réalisé avec un matériel minimal (Raspberry Pi, breadboard, LED, sonde), il est conçu pour être évolutif. D'autres capteurs ou composants pourraient être ajoutés sans difficulté, tel un avertisseur sonore, tant que le broker permet la gestion de clients supplémentaires.

Une base de données pourrais être implémenter aussi pour récupérer les données ou pour stocker les adresses email via SQLite.

1. Création de l'environnement :

- Configuration d’un environnement virtuel Python sous Linux pour la création des scripts.

- Installation des modules nécessaires pour le Raspberry Pi et le capteur DHT11.

2. Développement du script client :

- Écriture d’un script Python pour lire les données du capteur DHT11 (température et humidité).

- Relevé des données toutes les 10 secondes, avec gestion des exceptions en cas d'échec de lecture.

- Publication des données sur deux topics MQTT distincts : `home/temperature` et `home/humidite`.

3. Création du script abonné :

- Développement d’un second script Python pour s'abonner aux topics via paho-mqtt et recevoir les informations envoyées par le capteur.

4. Implémentation d’une alerte :

- Dans le script client, définition d’un seuil critique de température pour déclencher des actions en cas de dépassement :

- Une LED clignote 5 fois pour signaler l'alerte.

- Un mail unique est envoyé à une liste d’adresses contenue dans un fichier `.txt`, via un script Bash utilisant msmtp.

- Horodatage : la date et l’heure de l’alerte sont enregistrées dans un fichier `.txt` (création automatique si le fichier n'existe pas).

- Déconnexion du client MQTT.

- Arrêt propre et automatique du programme.

5. Exportation des projets dans Docker :

- Création d’images Docker pour les différents projets (client, abonné, broker).

6. Lancement des conteneurs via Docker Compose :

- Utilisation de Docker Compose pour lancer simultanément les services.

7. Visualisation des données avec Node-RED :

- Configuration d’un tableau de bord Node-RED pour afficher les données de température et d'humidité en temps réel, en utilisant l'outil Chart pour visualiser les courbes.

Projet de démonstration Domotique

Note personnelle

"Ce projet est le fruit de mon propre travail et de mes recherches dans le cadre de mon apprentissage du développement en domotique. Il reste quelques aspects que je continue à optimiser, ce qui reflète mon approche continue d'amélioration. Je suis toujours ouvert à des retours constructifs pour perfectionner mes compétences et mes projets."

Home Automation Monitoring System

My home automation monitoring system project is the theoretical and practical culmination of nearly three years of self-taught study and training in the field of programming. This project also represents a personal achievement and serves as a showcase to demonstrate my skills in the field of the Internet of Things (IoT).

The goal of this project is to create a monitoring system capable of measuring the temperature and humidity of a living space at regular intervals. If defined thresholds are exceeded, the program sends email alerts from a predefined list, activates a visual signal, and logs the events in a log file. The data can be viewed in real-time via Node-RED. The scripts are written in Python and Bash, and are deployed using Docker. The services are then orchestrated with Docker Compose.

objective

Project stages:

Perspectives and Scalability

Although this project was built with minimal hardware (Raspberry Pi, breadboard, LED, sensor), it is designed to be scalable. Additional sensors or components, such as a sound alarm, could be added without difficulty as long as the broker can handle additional clients.

A database could also be implemented to collect the data or to store email addresses using SQLite.

Home Automation Demonstration Project

Personal note

"This project is the result of my own work and research as part of my learning journey in home automation development. There are still a few aspects that I continue to optimize, reflecting my ongoing approach to improvement. I am always open to constructive feedback to enhance my skills and projects."

1. Environment Setup:

- Configuring a virtual Python environment on Linux for script development.

- Installing the necessary modules for the Raspberry Pi and the DHT11 sensor.

2. Client Script Development:

- Writing a Python script to read data from the DHT11 sensor (temperature and humidity).

- Collecting data every 10 seconds, with exception handling for read failures.

- Publishing data to two separate MQTT topics: `home/temperature` and `home/humidity`.

3. Subscriber Script Creation:

- Developing a second Python script to subscribe to the topics via paho-mqtt and receive the information sent by the sensor.

4. Alert Implementation:

- In the client script, defining a critical temperature threshold to trigger actions if exceeded:

- An LED blinks 5 times to signal the alert.

- A unique email is sent to a list of addresses contained in a `.txt` file via a Bash script using msmtp.

- Timestamp: the date and time of the alert are recorded in a `.txt` file (automatically created if the file does not exist).

- MQTT client disconnection.

- Clean and automatic shutdown of the program.

5. Exporting Projects to Docker:

- Creating Docker images for the different projects (client, subscriber, broker).

6. Launching Containers via Docker Compose:

- Using Docker Compose to simultaneously launch the services.

7. Data Visualization with Node-RED:

- Setting up a Node-RED dashboard to display temperature and humidity data in real-time, using the Chart tool to visualize the graphs.