Système domotique intelligent - Circuit et code source
Projet de système domotique intelligent utilisant Arduino
L'automatisation (telle que la domotique et l'automatisation industrielle, etc.) 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 de plus en plus intelligentes et développées de nos jours avec l'aide de 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. À l'aide de contrôleurs et d'appareils de communication, les appareils ménagers peuvent être contrôlés à distance. Dans ce projet, nous utiliserons la carte Arduino UNO pour le développement du projet Smart Home Automation avec le module Bluetooth HC-05 qui est contrôlé à distance par un smartphone. Cela peut être très utile pour les personnes paralysées qui ne peuvent pas faire leur travail par elles-mêmes et de tels appareils peuvent devenir une aide précieuse pour ces personnes.
- Article connexe : Système domotique basé sur la reconnaissance vocale
Composants requis
- Arduino UNO
- Module Bluetooth HC-05
- Relais
- Câbles volants
- Ampoules
- Application Bluetooth Terminal HC-05 (téléchargement depuis Play Store)
Arduino UNO
Arduino est une plate-forme open-source utilisée pour développer des projets électroniques. Il peut être facilement programmé, effacé et reprogrammé à tout instant. Il existe de nombreuses cartes Arduino disponibles sur le marché comme Arduino UNO, Arduino Nano, Arduino Mega, Arduino lilypad, etc. avec des spécifications différentes en fonction de leur utilisation. Dans ce projet, nous allons utiliser Arduino UNO pour contrôler automatiquement les appareils électroménagers. Il est doté d'un microcontrôleur ATmega328 qui fonctionne à une vitesse d'horloge de 16 MHz. C'est un puissant 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 à l'aide d'un câble micro USB. ATmega328 est livré avec un chargeur de démarrage intégré préprogrammé qui facilite le téléchargement du code sans l'aide d'un matériel externe. Il a une vaste application dans la fabrication de projets ou de produits électroniques. Le langage C et C++ est utilisé pour programmer la carte qui est très facile à apprendre et à utiliser. Arduino IDE facilite grandement la programmation. Il sépare le code en deux parties, à savoir void setup() et void loop(). La fonction void setup() ne s'exécute qu'une seule fois et est principalement utilisée pour lancer un processus, tandis que void loop() consiste en la partie du code qui doit être exécutée en continu.
Ce modèle se compose de 6 broches d'entrée analogiques et de 14 broches GPIO numériques qui peuvent être utilisées comme entrée-sortie, dont 6 fournissent une sortie PWM et analogique en utilisant pinMode(), digitalWrite( ), les fonctions digitalRead() et analogRead(). 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 à l'aide d'un câble USB qui fonctionne à 5 volts, soit par une prise DC qui fonctionne entre 7 et 20 volts. Il y a un régulateur de tension intégré pour générer 3,3 volts pour faire fonctionner des appareils à faible puissance. Étant donné que l'ATmega328 fonctionne sur les protocoles de communication USART, SPI et I2C, dispose de broches 0 (Rx) et 1 (Tx) pour la communication USART, broches 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 les projets de domotique.
- Article connexe : Circuit oculaire électronique utilisant LDR et IC 4049 pour le contrôle de sécurité
Module Bluetooth HC-05
HC-05 est un module Bluetooth utilisé pour la communication sans fil. Il est principalement utilisé pour établir des communications sans fil bidirectionnelles en série entre des microcontrôleurs, des smartphones, des ordinateurs, des 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 appareils. Il peut fonctionner à la fois en mode maître et esclave avec des débits en bauds pris en charge 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 des commandes AT. Il peut être utilisé pour transférer des données dans les deux sens d'un microcontrôleur à n'importe quel appareil et d'un appareil à un microcontrôleur. Le module Bluetooth HC-05 fonctionne en mode commande et en mode données. Le mode de commande est utilisé pour accéder aux paramètres de configuration du HC-05 à l'aide de certaines commandes AT et le mode de données est utilisé pour envoyer les données en série. Le mode de commande est accessible en mettant à la terre la broche "clé" et en utilisant les commandes AT, nous pouvons modifier son réglage. Il existe des commandes AT qui peuvent être utilisées pour modifier le nom, le mot de passe, le débit en bauds, etc. du module. Voici quelques commandes AT :
- AT - pour vérifier si le module communique ou non
- AT+NAME =hc-05 - pour changer le nom de l'appareil en "hc-05"
- AT+PSWD =1234 – pour changer le mot de passe en 1234
- AT+UART =9600, 1, 0 - pour changer le débit en bauds à 9600, le bit d'arrêt à 1 et le bit de parité à 0.
Projet connexe : Circuit d'éclairage de secours à LED automatique utilisant LDR
Pin Out de HC-05 :
FR/Broche de clé :Cette broche est utilisée pour définir le module Bluetooth en mode de commande ou mode données . Le mode de commande est accessible en mettant cette broche à l'état haut et le mode de données est accessible en la mettant à l'état bas. Par défaut, il est défini sur bas en mode données.
- VCC :Il s'agit de la broche d'alimentation qui est connectée au 5 V ou au 3,3 V.
- Mise à la terre :Il s'agit de la broche de masse du module Bluetooth.
- TXD :Cette broche est utilisée pour la transmission série des données.
- RXD :Cette broche est utilisée pour recevoir les données en série.
- État :Cette broche indique si le module est connecté ou déconnecté avec l'autre appareil.
Épingler sur HC-05 | Description |
FR/clé | Haut - Mode Commande, Bas - Mode Données |
VCC | 3,3 V à 5 V |
TERRE | Sol |
TXD | Transmettre des données série |
RXD | Recevoir des données série |
État | Affiche le module connecté ou non |
Dans ce projet, 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 à l'Arduino Uno et en installant une application sur le smartphone. Bien qu'il existe diverses applications disponibles pour connecter un smartphone au HC-05. mais ici, nous allons utiliser le terminal Bluetooth HC-05 qui peut être téléchargé depuis le Play Store. Connectez le HC-05 avec Arduino UNO comme indiqué dans le schéma de circuit. La broche TXD de HC-05 va à RX (broche 0) de la broche RXD de HC-05 va à TXD (broche 1) de l'Arduino Uno. La touche EN/ est réglée sur LOW. Activez le Bluetooth de votre smartphone et recherchez les appareils Bluetooth. Connectez-vous au périphérique Bluetooth nommé « HC-05 ». Par défaut, le mot de passe est "0000" ou "1234".
Le module Bluetooth HC-05 a une led rouge intégrée qui indique l'état de la connexion. Avant toute connexion, il clignote en permanence de manière périodique et une fois connecté, sa vitesse de clignotement ralentit.
- Projet connexe : Circuit de commutateur tactile simple utilisant une minuterie 555 et un transistor BC547
Application du module Bluetooth HC-05 :
- Ordinateur et périphériques
- Récepteur GPS
- Contrôle industriel
- Projets de microcontrôleurs
Relais
Un relais est un interrupteur électromagnétique qui est actionné par un petit courant électrique pour allumer ou éteindre un ou plusieurs circuits plus gros. Il se compose d'une bobine d'électroaimant qui se transforme en un aimant temporaire lorsqu'un petit courant électrique le 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 faire fonctionner un interrupteur qui peut contrôler un courant beaucoup plus important. Les relais antérieurs é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 ont été utilisés pour effectuer des opérations booléennes et logiques. Les relais sont disponibles en différentes tailles et variétés en fonction de leur utilisation dans les circuits. Les principales applications du relais incluent le contrôle moteur, les applications automobiles, les applications industrielles, la domotique, etc.
Dans ce projet, nous allons utiliser un relais électromagnétique pour allumer et éteindre les appareils électroménagers comme la lampe à tube, l'ampoule, le ventilateur ou toute autre source d'alimentation en courant alternatif dans notre maison en donnant Signaux CC de l'Arduino UNO. Le relais a 6 broches, dont deux VCC et Ground sont utilisées pour alimenter le relais. Une broche est la broche de données qui est utilisée pour prendre le signal "1" ou "0" des microcontrôleurs. D'autres 3 broches normalement fermées (NC), communes, normalement ouvertes (NO) sont utilisées pour connecter des 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 chaque fois que le relais est activé et il ouvre le circuit chaque fois que le relais est désactivé.
Normalement fermé :Il ouvre le circuit chaque fois que le relais est activé et ferme le circuit chaque fois que le relais est désactivé.
- Projet connexe : Lampe de nuit automatique utilisant Arduino et LDR
Pinout du relais :
Épingler sur RELAIS | Description |
VCC | 5V |
GND | Sol |
Broche de données | "1" ou "0" du microcontrôleur |
NC | Pour un circuit normalement fermé |
COM | Commun |
NON | Pour un circuit normalement ouvert |
Applications du relais :
- Le relais est utilisé pour fournir une logique critique pour la sécurité.
- Ils sont utilisés pour contrôler un circuit haute tension avec un petit signal de tension.
- Les relais sont également utilisés à des fins de protection.
- Les relais sont utilisés dans les sous-stations et les réseaux lors de la fourniture d'électricité d'un point à un autre.
Projet connexe : Système de contrôle automatique de l'éclairage public à l'aide de LDR
Schéma du circuit
Le circuit est conçu à l'aide d'Arduino, de Bluetooth, de relais et de LED. Nous avons connecté le Bluetooth en série avec l'Arduino. Le relais est utilisé pour faire fonctionner les appareils électroménagers. Nous avons utilisé quatre relais pour quatre appareils. Vous pouvez modifier les numéros du relais pour faire fonctionner divers appareils ménagers en conséquence. Lors du passage au matériel, les LED seront remplacées par des ampoules.
La commande de contrôle des appareils électroménagers sera envoyée via une « application terminal Bluetooth HC-05 » de votre smartphone au Bluetooth, connecté à l'Arduino. Ensuite, Arduino a lu les données arrivant en série sur le Bluetooth. Par conséquent, les actions sont effectuées en fonction de la commande provenant du Bluetooth vers l'Arduino.
- Projet connexe : Projet électronique de contrôle des feux de circulation à l'aide de la minuterie IC 4017 et 555
Fonctionnement de la domotique basée sur Arduino
Effectuez la connexion pour le projet domotique comme indiqué dans le schéma de circuit. Tout d'abord, nous connectons l'ampoule avec des sources d'alimentation en courant alternatif et avec des relais comme indiqué dans le schéma de circuit. 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 à l'Arduino qui sont les broches de sortie de l'Arduino. Connectez ensuite le module HC-05 à la carte Arduino comme indiqué sur le schéma et alimentez la carte Adruino. Téléchargez le code donné à la fin du projet à l'aide de l'IDE Arduino. Activez le Bluetooth dans votre smartphone et connectez le module HC-05 en saisissant le mot de passe. Par défaut, le mot de passe est « 0000 » ou « 1234 ». Après avoir réussi à connecter votre smartphone avec le HC-05, ouvrez "l'application du terminal Bluetooth HC-05 sur votre smartphone " et il montrera votre appareil connecté à 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 à distance les lumières de votre maison.
- Projet connexe : Projet électronique de circuit de commutation Clap utilisant une minuterie 555
Code du projet
#include
int bulb1 =8;
int bulb2 =9;
int bulb3 =10;
int bulb4 =11;
LogicielSerial bt(0,1); /* (Rx,Tx) */
Chaîne str;
void setup() {
bt.begin(9600);
Serial.begin(9600);
pinMode(bulb1,OUTPUT);
pinMode(bulb2,OUTPUT);
pinMode(bulb3,OUTPUT);
pinMode(bulb4,OUTPUT);
}
annuler la boucle() {
if (bt.available())
{
str =bt.read();
Serial.println(str);
//bulb1
if(str ==”bulb1 on”)
{
digitalWrite(bulb1,HIGH);
Serial.println(“BUlB 1 is ON”);
}
else if (str==”bulb1 off”)
{
digitalWrite(bulb1,LOW);
Serial.println(“BUlB 1 is OFF”);
}
else
{
digitalWrite(bulb1,LOW);
}
//bulb2
if(str==”bulb2 on”)
{
digitalWrite(bulb2,HIGH);
Serial.println("BUlB 2 is ON");
}
else if(str=="bulb2 off")
{
digitalWrite(bulb2,LOW);
Serial.println("BUlB 2 is OFF");
}
else
{
digitalWrite(bulb2, LOW );
}
////bulb3
if(str==”bulb3 on”)
{
digitalWrite(bulb3,HIGH);
Serial.println(“BUlB 3 is ON”);
}
else if(str==”bulb3 off”)
{
digitalWrite(bulb3,LOW);
Serial.println("BUlB 3 is OFF");
}
else
{
digitalWrite(bulb3,LOW);
}
//bulb4
if(str==”bulb4 on”)
{
digitalWrite (bulb4,HIGH);
Serial.println("BUlB 4 is ON");
}
else if(str=="bulb4 off")
{
digitalWrite(bulb4,LOW);
Serial.println("BUlB 4 is OFF");
}
else
{
digitalWrite(bulb4,LOW);
}
}
}
Explication du code de programmation
Incluez 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
Déclaration des variables des broches de sortie d'Arduino à 8, 9, 10 et 11 qui va à la broche de données de chacun des quatre relais. La chaîne variable "str" stocke les données que nous obtenons du smartphone à l'aide du module Bluetooth HC-05.
int bulb1 =8 ;
int bulb2 =9 ;
int bulb3 =10 ;
int bulb4 =11 ;
Chaîne str ;
pinMode(bulb1,OUTPUT);
pinMode(bulb2,OUTPUT);
pinMode(bulb3,OUTPUT);
pinMode(bulb4,OUTPUT);
La communication série Bluetooth et le moniteur série sont lancés à un débit de 9 600 bauds.
bt.begin(9600);
Serial.begin(9600) ;
Si les données obtenues du smartphone à l'aide du module Bluetooth HC-05 sont « ampoule1 allumée », nous allumons l'ampoule 1 en réglant la broche de données du relais sur ÉLEVÉ. Si les données sont "bulb1 off", nous éteignons l'ampoule en réglant la broche de données du relais sur LOW. Si aucune donnée n'est reçue pour l'ampoule 1, nous réglons notre ampoule 1 sur BAS. La même chose est faite pour l'ampoule 2, l'ampoule 3, l'ampoule 4.
if(str==”bulb1 on”)
{
digitalWrite(bulb1,HIGH) ;
Serial.println("BUlB 1 is ON");
}
else if(str==”bulb1 off”)
{
digitalWrite(bulb1,LOW) ;
Serial.println("BUlB 1 is OFF");
}
autre
{
digitalWrite(bulb1,LOW) ;
}
Par conséquent, vous pouvez contrôler n'importe quel appareil électroménager de votre maison en utilisant Arduino UNO, Bluetooth et un relais. Nous avons également fourni les informations techniques pour les composants nécessaires à la construction de ce projet. Le schéma électrique se compose de LED qui seront remplacées par les ampoules AC utilisées dans la maison.
Projets associés :
- Système d'arrosage et d'irrigation automatique des plantes – Circuit, code et rapport de projet
- Circuit d'alarme de pluie - Projet de détecteur de neige, d'eau et de pluie
- Schéma du circuit de l'indicateur de niveau d'eau :deux projets simples
- Plus de projets d'ingénierie électrique et électronique
Technologie industrielle
- Applications de la domotique
- Silicon Labs présentera des solutions de connectivité pour la maison intelligente et l'automatisation des bâtiments
- Conception intelligente de protection et de détection de circuits pour les serrures et les contrôles d'accès des maisons intelligentes
- Cinq obstacles à l'expédition du bureau à domicile — et comment les surmonter
- Système d'alarme Arduino :SERENA
- Système de domotique et de sécurité intelligent utilisant 1Sheeld
- Communication Python3 et Arduino
- Système de présence basé sur Arduino et la feuille de calcul Google
- Octopod :projet d'automatisation de la maison/de l'industrie Smart IoT