Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Composants et fournitures

Composant Quantité Note
Arduino UNO 1
Lampe à économie d'énergie 1
Adaptateur 5V DC 1
Fils de connexion (jumper wires) 1
Relais (générique, 1 canal minimum) 1
Composants électroniques UTSOURCE 1

Outils et machines nécessaires

Outil
Tournevis (cruciforme pour module relais)

Applications et services en ligne

Outil
Microsoft Visual Studio 2015 (gratuit) ou Arduino IDE
Arduino IDE

À propos de ce projet

Lumières connectées pour maison intelligente

Dans ce projet, nous apprenons à utiliser un relais avec un capteur à ultrasons et un Arduino pour rendre l'éclairage domestique (ou tout appareil) intelligent.

Objectif : faire qu'une ampoule à économie d'énergie s'éteigne quand vous quittez la pièce et se rallume quand vous y revenez. C'est très simple à mettre en œuvre et prend peu de temps.

Ce tutoriel suppose des connaissances de base Arduino. Si vous avez déjà utilisé Arduino, c'est parti.

⚠ ATTENTION : ce projet utilise le secteur haute tension (230V AC). Si vous avez moins de 16 ans ou manquez d'expérience, vous DEVEZ être assisté par une personne compétente pour la partie secteur.

Cependant, vous pouvez valider le concept avec des appareils basse tension (DC) sans danger. Je signalerai clairement le moment où le danger commence.

Composants détaillés

  1. Arduino Uno
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Multimètre
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Fils de connexion (Jumpers)
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Breadboard
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Module Relais
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Capteur à ultrasons HC-SR04 + bibliothèque NewPing pour Arduino (disponible ici, appelée "New Ping"). Si première installation bibliothèque externe, voir ce guide.
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Source d'alimentation DC (optionnelle)
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Tournevis cruciforme (pour bornes relais)
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Ampoule économie d'énergie avec douille et fiche secteur (j'ai récupéré la fiche sur un vieux câble radio).
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

J'ai aussi utilisé un pistolet à colle pour isoler les fils – préférez du ruban isolant.

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
  1. Visual Studio pour coder (totalement gratuit) – voir ce guide – ou Arduino IDE classique.
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Préparation du capteur à ultrasons

Connexion du HC-SR04 à l'Arduino (voir image). Le test du capteur est décrit plus bas.

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Module Relais

On utilise un canal du module (le mien en a 2) :

Important : Mon module est actif bas (active-low). Différence active-low / active-high : voir ici. Pour identifier le vôtre : alimentez VCC/GND, puis mettez IN sur 5V → si rien ne se passe, c'est active-low (confirmez en mettant IN sur GND).

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

L'ampoule (partie secteur – DANGER)

⚠ ZONE HAUTE TENSION – PERSONNE EXPÉRIMENTÉE REQUISE

Préparez l'ampoule pour la brancher sur la prise murale et le relais :

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Circuit final complet (ampoule simplifiée) :

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique
Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Le code effectue :

Lecture des valeurs ultrasons

Test du capteur avec l'exemple de la bibliothèque – affiche simplement la distance.

Distance en cm ou pouces :

sonar.ping_cm();
// Ou
sonar.ping_inch();

Configuration broches et portée max :

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Problème : le capteur renvoie parfois une valeur erronée (bruit).

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Cela ferait clignoter la lumière involontairement. Solutions :

  1. Moyenne sur plusieurs lectures
  2. Filtre médian : prend N lectures, trie, prend la valeur centrale – excellent pour éliminer le bruit ponctuel.

Heureusement, NewPing implémente ce filtre :

sonar.ping_median(unsigned byte numReadings);

Passez le nombre de lectures (max 512 – type unsigned byte). Retourne le temps d'écho aller-retour, à convertir :

sonar.convert_cm(unsigned int echoTime);
// Ou
sonar.convert_in(unsigned int echoTime);

Dernier point : le capteur renvoie 0 si rien devant lui. Solution : forcer la distance à MAX_DISTANCE si lecture = 0.

Code final de lecture (variable globale distance) :

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Détection de passage

Logique : l'ultrason doit détecter une distance critique (ex: moitié largeur de porte) → certitude qu'on franchit le seuil.

La lumière ne bascule que quand quelque chose passe devant. Si on reste immobile devant, rien ne se passe.

Code de détection :

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Félicitations ! C'est terminé. Je joins le projet Visual Studio complet (petite modif bibliothèque : allocation dynamique au lieu de tableaux à taille variable – VS ne les supporte pas – + documentation).

Composants électroniques sur utsource.net

Merci de respecter ce projet si utile. Autres projets :

Code

Smart House Light (Arduino)

Ce code lit l'ultrason et pilote le relais en conséquence :

#define TRIGGER_PIN 12   // Broche Arduino reliée à Trig du HC-SR04
#define ECHO_PIN 11      // Broche Arduino reliée à Echo du HC-SR04
#define MAX_DISTANCE 200 // Distance max ping (cm). Capteur max 400-500cm. [valeur arbitraire]
#define RELAY_LINE1_PIN 8

#include "NewPing.h"

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Config broches et distance max
unsigned int critical_distance_cms = 50; // Distance seuil bascule lumière [arbitraire]
bool state = 0;

void setup() {
  Serial.begin(9600); // Moniteur série 115200 baud pour voir les pings
  pinMode(RELAY_LINE1_PIN, OUTPUT);
  digitalWrite(RELAY_LINE1_PIN, HIGH); // Éteint la lumière (relais actif bas)
}

void loop() {
  delay(50); // 50ms entre pings (~20/sec). 29ms min.
  unsigned int distance = readDistance(); // Distance actuelle objet face au capteur
  Serial.print("Ultrasonic: ");
  Serial.print(distance);
  Serial.println("cm");

  // Quelqu'un près de la porte ?
  if (distance < critical_distance_cms) {
    // Attend qu'il s'éloigne
    while (distance < critical_distance_cms) {
      distance = readDistance();
      delay(5);
    }
    state = !state; // Inverse état relais
    if (state) {
      Serial.println("Porte Ouverte!");
      digitalWrite(RELAY_LINE1_PIN, LOW);  // Allume (actif bas)
    } else {
      Serial.println("Porte Fermée!");
      digitalWrite(RELAY_LINE1_PIN, HIGH); // Éteint
    }
  }
}

// Met à jour la lecture ultrason (filtre médian + gestion 0)
unsigned int readDistance() {
  // Lit 7 valeurs, prend la médiane (filtre médian) – élimine bruit
  unsigned int distance = sonar.convert_cm(sonar.ping_median(7));
  // 0 = rien devant → mettre à MAX_DISTANCE pour éviter bascule intempestive
  if (distance == 0) {
    distance = MAX_DISTANCE;
  }
  return distance;
}
Ultrasonic test (Arduino)

Code test simple – affiche la distance lue :

// ---------------------------------------------------------------------------
// Exemple NewPing : ping ~20 fois/seconde
// ---------------------------------------------------------------------------
#include <NewPing.h>

#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(115200);
}

void loop() {
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm()); // Distance cm (0 = hors portée)
  Serial.println("cm");
}
Smart House Lights (Projet Visual Studio complet)

Projet complet pour Visual Studio avec bibliothèque modifiée :
https://github.com/shakram02/Arduino_SmartHouseLights.git

Schématiques

Schéma complet du projet :

Éclairage AC intelligent avec Arduino UNO et relais – Contrôle automatique

Processus de fabrication

  1. Détecteur de langue TinyML avec Edge Impulse sur Arduino Nano 33 BLE Sense
  2. Construire un jeu gyroscopique temps réel avec Arduino Nano et capteur MPU-6050
  3. Dé numérique Arduino sur écran LCD 16x2 – Générateur aléatoire à bouton poussoir
  4. Enregistreur de Température et Humidité Arduino avec DHT11 et Shield Ethernet
  5. Système d'arrosage automatique pour plantes piloté par Arduino
  6. Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
  7. Chaussures auto-laçantes intelligentes avec récupération d'énergie piézoélectrique
  8. Mesure de distance en temps réel par sonar Arduino et visualisation Processing
  9. Célébrez avec Lumière et Son : Projet Arduino Anniversaire DIY