Ce projet est un système de surveillance environnementale basé sur l'IoT, conçu pour fonctionner sur un microcontrôleur ou un Raspberry Pi. Le système collecte des données à partir de divers capteurs, affiche les informations sur un écran LCD et stocke les données dans une base de données InfluxDB. Il prend également en charge la gestion du réseau, y compris la connexion automatique au Wi-Fi ou à l'Ethernet, la synchronisation de l'heure via NTP et les mises à jour RTC.
- Fonctionnalités
- Matériel Requis
- Logiciels Requis
- Installation
- Configuration
- Utilisation
- Structure du Projet
- Contribuer
- Licence
- Collecte de Données Environnementales : Collecte des données de température, humidité, pression, niveaux de CO2, et particules.
- Affichage des Données : Affiche les données environnementales en temps réel sur un écran LCD.
- Enregistrement des Données : Enregistre les données environnementales dans une base de données InfluxDB avec une politique de rétention configurable.
- Gestion du Réseau : Connexion automatique à un réseau Wi-Fi ou Ethernet et synchronisation de l'heure via NTP.
- Gestion du Temps : Synchronisation de l'horloge système avec une RTC (Real-Time Clock) en cas d'échec de la synchronisation réseau.
- Raspberry Pi (ou microcontrôleur compatible avec le bus I2C)
- Capteurs :
- BME280 (Température, Humidité, Pression)
- SCD4x (CO2)
- PMSA003I (Capteur de Particules)
- Écran LCD : Compatible avec la bibliothèque Python
lcddriver
- Module RTC (Optionnel)
- Connectivité Wi-Fi/Ethernet
- Python 3.x
- InfluxDB : Si InfluxDB n'est pas encore installé, suivez les instructions de la documentation officielle.
-
Cloner le dépôt :
git clone https://github.com/votreutilisateur/systeme-surveillance-environnementale.git cd systeme-surveillance-environnementale
-
Exécuter le script d'installation :
./install.sh
Ce script mettra à jour les paquets système, installera
pip3
s'il n'est pas installé, puis installera toutes les dépendances Python listées dansrequirements.txt
. Il vérifiera également si InfluxDB est installé.
Si vous préférez installer les dépendances manuellement, vous pouvez simplement exécuter :
pip3 install -r requirements.txt
-
Modifier le fichier
config.ini
:- Ajouter votre SSID Wi-Fi, mot de passe, détails InfluxDB, et interfaces réseau.
- Spécifier la politique de rétention pour la base de données InfluxDB.
Exemple de configuration :
[WIFI] SSID = VotreSSIDWiFi PASSWORD = VotreMotDePasseWiFi [NETWORK] WIFI_INTERFACE = wlan0 ETHERNET_INTERFACE = eth0 [INFLUXDB] HOST = votre_hote_influxdb PORT = 8086 DATABASE = votre_nom_de_base_de_donnees RETENTION_POLICY_NAME = five_years RETENTION_POLICY_DURATION = 1825d # 5 ans RETENTION_POLICY_REPLICATION = 1
-
Exécuter le système :
python main.py
-
Surveiller la sortie :
- Le système tentera de se connecter au Wi-Fi ou à l'Ethernet et de synchroniser l'heure.
- Il commencera ensuite à collecter les données des capteurs, à les afficher sur l'écran LCD et à les enregistrer dans InfluxDB.
-
Accéder aux données :
- Utilisez un client InfluxDB ou Grafana pour visualiser les données enregistrées.
systeme-surveillance-environnementale/
│
├── main.py # Script de contrôle principal
├── sensors.py # Gestion des capteurs (BME280, SCD4x, PMSA003I)
├── lcd_display.py # Gestion de l'affichage sur l'écran LCD
├── data_logger.py # Enregistrement des données dans InfluxDB avec politique de rétention
├── network.py # Gestion du réseau et synchronisation du temps
├── config.ini # Fichier de configuration pour le Wi-Fi, InfluxDB et les paramètres réseau
├── requirements.txt # Dépendances Python
├── install.sh # Script d'installation pour automatiser l'installation des dépendances
└── README.md # Documentation du projet
Les contributions sont les bienvenues ! Si vous avez des suggestions d'amélioration ou de nouvelles fonctionnalités, n'hésitez pas à ouvrir une issue ou à soumettre une pull request.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.