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

Automatisation domotique Arduino : circuit, code source et guide DIY

Projet de système d'automatisation domotique intelligent utilisant Arduino

L'automatisation (telle que l'automatisation domestique et industrielle) est devenue importante dans le monde d'aujourd'hui car elle permet d'accomplir une tâche avec moins d'assistance humaine et de manière plus intelligente. Les maisons deviennent plus intelligentes et développées de nos jours grâce aux dispositifs d'automatisation. Les appareils électroménagers utilisent des interrupteurs télécommandés plutôt que des interrupteurs conventionnels. Dans le monde d'aujourd'hui, la plupart des gens ont accès aux smartphones et leur utilisation est devenue très populaire et essentielle dans nos vies. Nous pouvons utiliser les smartphones pour contrôler les appareils électroménagers en un seul clic ou un seul message. Avec l'aide de contrôleurs et de dispositifs de communication, les appareils domestiques peuvent être contrôlés à distance. Dans ce projet, nous utiliserons la carte Arduino UNO pour le développement du projet d'automatisation domotique intelligente avec le module Bluetooth HC-05 qui est contrôlé à distance par un smartphone. Cela peut être vraiment utile pour les personnes paralysées qui ne peuvent pas faire leur travail elles-mêmes et de tels dispositifs peuvent devenir une grande aide pour ces personnes.

Automatisation domotique Arduino : circuit, code source et guide DIY

Composants requis

Arduino UNO

Arduino est une plateforme open-source utilisée pour développer des projets électroniques. Elle peut être facilement programmée, effacée et reprogrammée à tout moment. Il existe de nombreuses cartes Arduino disponibles sur le marché comme Arduino UNO, Arduino Nano, Arduino Mega, Arduino Lilypad, etc., avec différentes spécifications selon leur utilisation. Dans ce projet, nous allons utiliser Arduino UNO pour contrôler automatiquement les appareils domestiques. Il possède un microcontrôleur ATmega328 qui fonctionne à une vitesse d'horloge de 16 MHz. C'est une carte puissante qui peut fonctionner sur les protocoles de communication USART, I2C et SPI. Cette carte est généralement programmée à l'aide du logiciel Arduino IDE via un câble micro USB. L'ATmega328 est livré avec un chargeur de démarrage (bootloader) préprogrammé embarqué ce qui facilite le téléversement du code sans l'aide de matériel externe. Il a de vastes applications dans la réalisation de projets ou produits électroniques. Les langages C et C++ sont utilisés pour programmer la carte, ce qui est très facile à apprendre et à utiliser. L'IDE Arduino facilite grandement la programmation. Il sépare le code en deux parties : void setup() et void loop(). La fonction void setup() s'exécute une seule fois et est utilisée principalement pour initialiser certains processus, tandis que void loop() contient la partie du code qui doit être exécutée en continu.

Ce modèle comporte 6 broches d'entrée analogiques et 14 broches GPIO numériques qui peuvent être utilisées comme entrées-sorties, dont 6 fournissent une sortie PWM et analogique en utilisant les fonctions pinMode(), digitalWrite(), digitalRead() et analogRead(). Les 6 canaux d'entrée analogiques vont des broches A0 à A5 et offrent une résolution de 10 bits. La carte peut être alimentée soit par un câble USB fonctionnant à 5 volts, soit par une prise jack CC fonctionnant entre 7 et 20 volts. Il y a un régulateur de tension embarqué pour générer 3,3 volts pour alimenter les dispositifs à faible consommation. Puisque l'ATmega328 fonctionne sur les protocoles de communication USART, SPI et I2C, il dispose des broches 0 (Rx) et 1 (Tx) pour la communication USART, SDA (A4) et SCL (A5) pour I2C et SS (10), MOSI (11), MISO (12) et SCK (13) pour le protocole de communication SPI. Ces spécifications rendent la carte Arduino Uno parfaite pour le projet d'automatisation domotique.

Module Bluetooth HC-05

Le HC-05 est un module Bluetooth utilisé pour la communication sans fil. Il est principalement utilisé pour établir une communication série bidirectionnelle sans fil entre microcontrôleurs, smartphones, ordinateurs, capteurs, etc. La portée de ce module Bluetooth est inférieure à 100 mètres et dépend également des conditions atmosphériques. Il fonctionne sur le protocole USART (Universal Synchronous Asynchronous Receiver Transmitter) pour communiquer avec d'autres dispositifs. Il peut fonctionner à la fois en mode maître et esclave avec des débits en bauds supportés de 9600, 19200, 38400, 57600, 115200, 230400 et 460800. Par défaut, il fonctionne en mode esclave et le mode maître peut être configuré à l'aide de commandes AT. Il peut être utilisé pour transférer des données dans les deux sens, d'un microcontrôleur vers n'importe quel dispositif et vice versa. Le module Bluetooth HC-05 fonctionne en mode commande et mode données. Le mode commande est utilisé pour accéder aux paramètres de configuration du HC-05 à l'aide de certaines commandes AT et le mode données est utilisé pour envoyer les données en série. Le mode commande peut être accédé en mettant la broche « key » à la masse et en utilisant des commandes AT, nous pouvons modifier ses paramètres. Voici quelques commandes AT :

Projet connexe : Circuit d'éclairage d'urgence LED automatique utilisant LDR

Brochage du HC-05 :

Broche EN/Key : Cette broche est utilisée pour mettre le module Bluetooth soit en mode commande soit en mode données. Le mode commande peut être accédé en mettant cette broche à l'état haut et le mode données en la mettant à l'état bas. Par défaut, elle est réglée sur bas en mode données.

Broche sur HC-05 Description
EN/keyHaut – Mode commande, Bas – Mode données
VCC3,3 V à 5 V
GNDMasse
TXDTransmettre données série
RXDRecevoir données série
StateIndique module connecté ou non

Dans ce projet, le HC-05 est utilisé pour établir une communication série sans fil entre Arduino Uno et Smartphone. Cela peut être fait en connectant le HC-05 avec l'Arduino Uno et en installant une application sur le smartphone. Bien qu'il existe diverses applications pour connecter un smartphone au HC-05, ici nous allons utiliser Bluetooth Terminal HC-05 qui peut être téléchargé depuis le Play Store. Connectez le HC-05 avec l'Arduino UNO comme indiqué dans le schéma de circuit. La broche TXD du HC-05 va vers RX (broche 0) et la broche RXD du HC-05 va vers TXD (broche 1) de l'Arduino Uno. EN/key est réglé sur BAS. Activez le Bluetooth de votre smartphone et recherchez les dispositifs Bluetooth. Connectez-vous au dispositif Bluetooth nommé « HC-05 ». Le mot de passe par défaut est soit « 0000 » soit « 1234 ».

Le module Bluetooth HC-05 possède une LED rouge intégrée qui indique l'état de la connexion. Avant toute connexion, elle clignote continuellement de manière périodique et après la connexion, sa vitesse de clignotement ralentit.

Applications du module Bluetooth HC-05 :

Relais

Un relais est un interrupteur électromagnétique qui est actionné par un faible courant électrique pour ouvrir ou fermer un ou plusieurs circuits plus importants. Il se compose d'une bobine d'électroaimant qui devient un aimant temporaire lorsqu'un faible courant électrique la traverse. Un courant relativement faible est utilisé pour créer un champ magnétique dans une bobine avec un noyau et cela est utilisé pour actionner un interrupteur qui peut contrôler un courant beaucoup plus important. Auparavant, les relais étaient utilisés dans les télégraphes et les centraux téléphoniques pour amplifier les signaux. Après l'invention des ordinateurs, les relais étaient utilisés pour effectuer des opérations booléennes et logiques. Les relais existent en différentes tailles et variétés selon leur utilisation dans les circuits. Les principales applications du relais incluent le contrôle de moteur, les applications automobiles, les applications industrielles, l'automatisation domestique, etc.

Dans ce projet, nous allons utiliser un relais électromagnétique pour allumer et éteindre les appareils domestiques comme les tubes fluorescents, ampoules, ventilateurs ou toute source alimentée en courant alternatif dans notre maison en envoyant des signaux CC depuis l'Arduino UNO. Le relais a 6 broches, dont deux, VCC et Masse, sont utilisées pour alimenter le relais. Une broche est la broche de données qui reçoit le signal « 1 » ou « 0 » du microcontrôleur. Les 3 autres broches Normalement Fermé (NF), Commun, Normalement Ouvert (NO) sont utilisées pour connecter les appareils alimentés en courant alternatif. Ce relais fonctionne dans deux conditions : soit en Normalement Ouvert, soit en Normalement Fermé :

Normalement Ouvert : Il ferme le circuit lorsque le relais est activé et l'ouvre lorsque le relais est désactivé.

Normalement Fermé : Il ouvre le circuit lorsque le relais est activé et le ferme lorsque le relais est désactivé.

Brochage du relais :
Broche sur RELAIS Description
VCC5V
GNDMasse
Broche de données« 1 » ou « 0 » du microcontrôleur
NFPour circuit normalement fermé
COMCommun
NOPour circuit normalement ouvert

Applications du relais :

Projet connexe : Système de contrôle d'éclairage public automatique utilisant LDR

Schéma de circuit

Le circuit est conçu en utilisant Arduino, Bluetooth, relais et LEDs. Nous avons connecté le Bluetooth en série avec l'Arduino. Le relais est utilisé pour actionner les appareils domestiques. Nous avons utilisé quatre relais pour quatre appareils. Vous pouvez changer le nombre de relais pour actionner divers appareils domestiques en conséquence. Lors du passage au matériel, les LEDs seront remplacées par des ampoules.

La commande pour contrôler les appareils domestiques sera envoyée via l'« application Bluetooth Terminal HC-05 » depuis votre smartphone vers le Bluetooth connecté à l'Arduino. Ensuite, l'Arduino lit les données arrivant en série vers le Bluetooth. Ainsi, des actions sont effectuées selon la commande venant du Bluetooth vers l'Arduino.

Fonctionnement de l'automatisation domotique basée sur Arduino

Réalisez les connexions pour le projet d'automatisation domotique comme indiqué dans le schéma de circuit. Tout d'abord, nous connectons l'ampoule avec les sources alimentées en courant alternatif et avec les relais comme indiqué dans le schéma. Ensuite, les relais reçoivent une alimentation CC de la carte Arduino Uno. Les broches de données des relais sont connectées aux broches 8, 9, 10 et 11 de l'Arduino qui sont les broches de sortie de l'Arduino. Puis connectez le module HC-05 avec la carte Arduino comme montré dans le diagramme et alimentez la carte Arduino. Téléversez le code donné à la fin du projet en utilisant l'IDE Arduino. Activez le Bluetooth sur votre smartphone et connectez le module HC-05 en entrant le mot de passe. Par défaut, le mot de passe est « 0000 » ou « 1234 ». Après avoir connecté avec succès votre smartphone au HC-05, ouvrez l'« application Bluetooth Terminal HC-05 sur votre smartphone » et elle affichera votre dispositif connecté au HC-05. Envoyez maintenant les données « Ampoule1 allumer » ou « Ampoule2 éteindre » pour allumer ou éteindre n'importe quelle ampoule. C'est ainsi que vous pouvez contrôler les lumières de votre maison à distance.

Code du projet

#include <SoftwareSerial.h>

int ampoule1 = 8;
int ampoule2 = 9;
int ampoule3 = 10;
int ampoule4 = 11;

SoftwareSerial bt(0,1); /* (Rx,Tx) */

String str;

void setup() {
  bt.begin(9600);
  Serial.begin(9600);

  pinMode(ampoule1, OUTPUT);
  pinMode(ampoule2, OUTPUT);
  pinMode(ampoule3, OUTPUT);
  pinMode(ampoule4, OUTPUT);
}

void loop() {
  if (bt.available()) {
    str = bt.readString(); // Corrigé : readString() au lieu de read() pour lire la chaîne complète
    Serial.println(str);
    
    // ampoule1
    if (str == "ampoule1 on") {
      digitalWrite(ampoule1, HIGH);
      Serial.println("AMPULE 1 EST ALLUMÉE");
    } else if (str == "ampoule1 off") {
      digitalWrite(ampoule1, LOW);
      Serial.println("AMPULE 1 EST ÉTEINTE");
    } else {
      digitalWrite(ampoule1, LOW);
    }
    
    // ampoule2
    if (str == "ampoule2 on") {
      digitalWrite(ampoule2, HIGH);
      Serial.println("AMPULE 2 EST ALLUMÉE");
    } else if (str == "ampoule2 off") {
      digitalWrite(ampoule2, LOW);
      Serial.println("AMPULE 2 EST ÉTEINTE");
    } else {
      digitalWrite(ampoule2, LOW);
    }
    
    // ampoule3
    if (str == "ampoule3 on") {
      digitalWrite(ampoule3, HIGH);
      Serial.println("AMPULE 3 EST ALLUMÉE");
    } else if (str == "ampoule3 off") {
      digitalWrite(ampoule3, LOW);
      Serial.println("AMPULE 3 EST ÉTEINTE");
    } else {
      digitalWrite(ampoule3, LOW);
    }
    
    // ampoule4
    if (str == "ampoule4 on") {
      digitalWrite(ampoule4, HIGH);
      Serial.println("AMPULE 4 EST ALLUMÉE");
    } else if (str == "ampoule4 off") {
      digitalWrite(ampoule4, LOW);
      Serial.println("AMPULE 4 EST ÉTEINTE");
    } else {
      digitalWrite(ampoule4, LOW);
    }
  }
}

Explication du code de programmation

Inclure les bibliothèques requises pour le projet, la bibliothèque SoftwareSerial.h est importée pour la communication série avec le module Bluetooth HC-05.

#include <SoftwareSerial.h>

Déclaration des variables des broches de sortie de l'Arduino aux broches 8, 9, 10 et 11 qui vont vers la broche de données de chacun des quatre relais. La variable chaîne « str » stocke les données que nous recevons du smartphone en utilisant le module Bluetooth HC-05.

int ampoule1 = 8;

int ampoule2 = 9;

int ampoule3 = 10;

int ampoule4 = 11;

String str;

pinMode(ampoule1, OUTPUT);

pinMode(ampoule2, OUTPUT);

pinMode(ampoule3, OUTPUT);

pinMode(ampoule4, OUTPUT);

La communication série Bluetooth et le moniteur série sont initialisés à 9600 bauds.

bt.begin(9600);

Serial.begin(9600);

Si les données reçues du smartphone via le module Bluetooth HC-05 sont « ampoule1 on », alors nous allumons l'ampoule 1 en mettant la broche de données du relais à HIGH. Si les données sont « ampoule1 off », nous éteignons l'ampoule en mettant la broche de données du relais à LOW. Si aucune donnée n'est reçue pour l'ampoule 1, nous mettons notre ampoule 1 à LOW. La même chose est faite pour l'ampoule 2, l'ampoule 3, l'ampoule 4.

if (str == "ampoule1 on")

{

digitalWrite(ampoule1, HIGH);

Serial.println("AMPULE 1 EST ALLUMÉE");

}

else if (str == "ampoule1 off")

{

digitalWrite(ampoule1, LOW);

Serial.println("AMPULE 1 EST ÉTEINTE");

}

else

{

digitalWrite(ampoule1, LOW);

}

Ainsi, vous pouvez contrôler n'importe quel appareil électroménager dans votre maison en utilisant Arduino UNO, Bluetooth et relais. Nous avons également fourni les informations techniques pour les composants requis pour construire ce projet. Le schéma de circuit consiste en des LEDs qui seront remplacées par les ampoules à courant alternatif utilisées dans la maison.

Projets connexes :

Technologie industrielle

  1. Comment la technologie maison intelligente transforme la vie quotidienne
  2. Silicon Labs Présente les Solutions Wireless Gecko Avancées pour Maison Intelligente et Automatisme Bâtiment à Embedded World 2019
  3. Design serrure intelligente & capteurs : stratégies expertes protection circuit & détection pour smart homes sécurisés
  4. Surmonter 5 Obstacles à l'Expédition en Télétravail pour Équipes Distantes
  5. SERENA : Système d'Alarme Arduino Mega 2560 Personnalisé avec Écran Tactile TFT LCD
  6. Construire un système domotique et de sécurité intelligent avec 1Sheeld
  7. Contrôle Arduino UNO depuis Python 3 – Communication Série et Démo LED
  8. Système de pointage RFID temps réel avec Arduino et Google Sheets
  9. Octopod : Solution domotique IoT intelligente pour maison et industrie