Ce système permet de surveiller et contrôler automatiquement la température, l'humidité et l'éclairage avec des alertes en cas de conditions critiques via un Raspberry Pi Zero 2W et un ESP32.
- 🔌 ESP32 (board compatible Arduino)
- 🌡️ Capteur BME280 (température, humidité, pression)
- 🔄 Câbles dupont femelle-femelle pour les connexions I2C
- ⚡ Alimentation USB pour l'ESP32
- 🏠 Boîtier (Répertoire 3D)
- 🫐 Raspberry Pi Zero 2W
- 💾 Carte microSD
- 🔌 Module relais 5V (4 canaux) : Relais 4 canaux 5V 30A
- 🔄 Câbles dupont mâle-femelle pour les connexions GPIO
- ⚡ Alimentation 5V pour le Raspberry Pi
- 📦 Boîtier pour le Raspberry Pi et le module relais (Répertoire 3D)
- Téléchargez le Raspberry Pi Imager depuis raspberrypi.com/software
- Lancez Raspberry Pi Imager
- Sélectionnez "CHOOSE OS" > "Raspberry Pi OS (other)" > "Raspberry Pi OS Lite(64-bit)"
- Cliquez sur l'icône ⚙️ pour configurer :
- Activez SSH
- Définissez un nom d'utilisateur et mot de passe
- Configurez le Wi-Fi si nécessaire
- Définissez le hostname (ex: serre-pi)
- Définissez le fuseau horaire
- Insérez la carte SD dans le Raspberry Pi
- Connectez les câbles nécessaires
- Attendez le démarrage complet (~1 minute)
- Connectez-vous en SSH:
ssh votre_utilisateur@serre-pi
Le capteur BME280 utilise le protocole I2C avec les connexions suivantes :
- VIN → 3.3V
- GND → GND
- SDA → Pin 21
- SCL → Pin 22
- GND → Pin 6 (GND)
- IN1 → GPIO 17 (Pin 11) : Contrôle chauffage
- IN2 → GPIO 23 (Pin 16) : Contrôle éclairage
- IN3 → GPIO 22 (Pin 15) : Contrôle humidificateur
- IN4 → GPIO 27 (Pin 13) : Contrôle ventilation
🔧 Notes importantes :
- Le module relais est actif à l'état bas (LOW)
- Pas de cavalier sur le VCC (5V) du relais
- Placer le capteur BME280 à l'abri du soleil direct et des projections d'eau
- Positionner l'ESP32 dans son boîtier
- Installer le Raspberry Pi et le module relais dans leur boîtier
- S'assurer de la portée WiFi
- Connecter les appareils aux relais
- Créer un compte sur pushover.net
- Installer l'application mobile
- Noter la clé utilisateur (User Key)
- Créer une application pour obtenir le token
- Configurer les tokens dans config.py :
PUSHOVER_CONFIG = {
'app_token': "votre_app_token",
'user_key': "votre_user_key",
'delai_min_alerte': "30",
}
- Ajustez les paramètres dans config.py selon votre installation :
# Adresse de l'ESP32
ESP32_CONFIG = {
'url': "http://Adresse_ESP32/donnees",
'timeout': "5",
}
# Configuration Pushover
PUSHOVER_CONFIG = {
'app_token': "votre_app_token",
'user_key': "votre_user_key",
'delai_min_alerte': "30",
}
- Clonez le dépôt :
git clone https://github.com/Guiss-Guiss/Serre.git
cd serre
- Rendez le script d'installation exécutable :
chmod +x setup.sh
- Lancez l'installation automatisée :
sudo ./setup.sh
Le script setup.sh effectue automatiquement :
- mise à jour système
- Installation des dépendances système
- Configuration du service systemd
- Configuration des permissions GPIO
- Création des répertoires de logs
## 4. ✨ Fonctionnalités
- 📊 Surveillance continue des conditions environnementales
- 🌐 Interface web accessible
- 🔔 Alertes Pushover en cas de conditions critiques
- 🔄 API REST pour l'intégration
- 📝 Logs détaillés
- 🎮 Contrôle automatique des équipements
- 🤖 Automatisation intelligente
## 5. 🛠️ Maintenance
### 5.1 Maintenance générale
- Vérification régulière des capteurs
- Contrôle des logs
- Mises à jour système
### 5.2 Commandes utiles
```bash
# Voir les logs
sudo journalctl -u serre.service
# Redémarrer le service
sudo systemctl restart serre.service
# Mise à jour système
sudo apt update && sudo apt upgrade
-
BME280 non détecté :
- Vérifier les connexions I2C
- Tester les adresses 0x76 et 0x77
-
Problèmes WiFi :
- Vérifier la force du signal
- Contrôler les logs
-
Pushover :
- Vérifier les tokens
- Contrôler les logs d'envoi
-
Relais :
- Test manuel des GPIO :
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.output(17, GPIO.LOW) # Active
GPIO.output(17, GPIO.HIGH) # Désactive
- Raspberry Pi :
- Vérifier l'alimentation
- Contrôler le réseau
- Examiner les logs système
- Logs service :
sudo journalctl -u serre.service
- Logs application :
/var/log/serre/serre.log
- État du service :
sudo systemctl status serre.service
Endpoint principal : GET /api/serre
{
"temperature": "22.5",
"humidite": "55.0",
"pression": "1013.2",
"chauffage": false,
"eclairage": true,
"ventilation": false,
"brumisation": false,
"mode_securite": false,
"derniere_mise_a_jour": "2024-01-01T12:00:00"
}