Skip to content
This repository was archived by the owner on Jun 15, 2026. It is now read-only.

ImTheNit/IoT-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💡 Projet IoT – Éclairage Intelligent (ESP32)

📘 Présentation

Ce projet met en œuvre un système d’éclairage intelligent basé sur un ESP32, capable d’adapter automatiquement la lumière en fonction :

  • de la proximité (détection d’ouverture de porte)
  • de la luminosité ambiante
  • d’un timer d’extinction automatique
  • d’un mode manuel contrôlable via une interface Web
  • d’un écran OLED affichant les informations essentielles

Le système fonctionne en point d’accès WiFi autonome, sans dépendance à un réseau externe.


⚙️ Fonctionnement général

🔆 Allumage automatique (Mode AUTO)

La lumière s’allume automatiquement lorsque :

  • la porte est ouverte
  • la pièce est sombre

La luminosité est filtrée via une médiane sur 9 mesures pour éviter les variations brusques.

💡 Allumage manuel (Mode MANUEL)

Depuis l’interface Web, l’utilisateur peut :

  • forcer l’allumage
  • forcer l’extinction

Le mode MANUEL désactive temporairement l’automatisme.


⏱️ Extinction automatique

La lumière s’éteint automatiquement si :

  • aucun mouvement n’a été détecté depuis un délai défini (10 secondes)
  • ou si l’utilisateur l’éteint manuellement

Le timer est réinitialisé à chaque changement d’état.


🌐 Interface Web

L’ESP32 sert une interface Web moderne permettant :

  • d’afficher :
    • la température
    • la pression
    • l’humidité
    • la résistance gaz
    • la luminosité
    • l’état de la lumière
    • le temps écoulé depuis l’allumage
  • de contrôler la lumière via un bouton dynamique
  • d’afficher l’heure locale du navigateur
  • d’utiliser un CSS externe pour un rendu propre

🔄 Optimisation : route /data

Toutes les données sont regroupées dans une seule route JSON :

/data

Elle renvoie :

{
  "temp": ...,
  "pressure": ...,
  "humidity": ...,
  "gas": ...,
  "lum": ...,
  "light": "ON/OFF",
  "timer": "MM:SS"
}

Cela remplace plusieurs requêtes séparées et améliore fortement la fluidité

🖥️ Écran OLED

L’écran OLED affiche :

  • l’état de la lumière (ON/OFF)
  • la température
  • le temps écoulé depuis l’allumage (si ON)

L’affichage est rafraîchi périodiquement pour éviter les ralentissements.


🔌 Matériel utilisé

  • ESP32
  • Capteur TMG3993 (proximité + RGB + Clear)
  • Capteur BME680 (température, pression, humidité, gaz)
  • Écran SSD1306 OLED
  • LED simulant l’éclairage
  • WiFi en mode Access Point

🧠 Logique interne

  • Modes

    • 🤖 AUTO

      • Allumage automatique (proximité + faible luminosité)
      • Extinction automatique (timer)
    • 🧑 MANUEL

      • L’utilisateur contrôle la lumière
      • Le mode AUTO est suspendu
  • Timer

    • Basé sur millis()
    • Réinitialisé à chaque changement d’état
    • Affiché sur OLED et interface Web

🌐 Routes Web

Route Description
/ Page principale
/data Toutes les données en un seul JSON
/light-on Allumage manuel
/light-off Extinction manuelle
/style.css Fichier CSS externe

About

IoT-Project on esp32 LoRa Wifi card

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages