Tutoriel Domotique

by moh.hallah09 in Circuits > Arduino

1313 Views, 0 Favorites, 0 Comments

Tutoriel Domotique

59731319_1001741403356721_67276294710099968_n.jpg
59684954_1514609888672857_5205908285860872192_n.jpg

Ce tutoriel représente une simple domotique permettant de détecter différentes grandeurs à temps réel. Composée de quartes parties; 1-Détection de température. 2-détection du fumée et gaz. 3-Serrure codée (système de verrouillage d'une porte) . 4-Allumer / Éteindre une ou plusieurs LEDs en utilisant une reconnaissance vocale. Pour cela, on aura besoin d'une carte Arduino ou Raspberry, des capteurs, Shiled Bluetooth ou Wifi, des résistances, des LEDs, une application MIT inventer et un code d’exécution Arduino pour le fonctionnement de notre domotique.


Liste Des Composants

-Carte Arduino Mega

https://www.amazon.fr/Elegoo-Carte-ATmega2560-ATME...

-Capteur de température de type "DS18B20"

https://www.amazon.com/SUNKEE-DS18B20-Temperature-...

-Détecteur du fumée & gaz "MQ135"

https://www.amazon.com/Waveshare-MQ-135-Gas-Sensor...

-Shield bluetooth "HC-05"

https://www.amazon.com/Bluetooth-Master-Slave-Conf...

-Résistances, Diodes de type "LED" , fils

-App MIT inventor (pour créer une application android"

http://ai2.appinventor.mit.edu/#6019177031270400

-Code Arduino (Lien de téléchargement)

https://www.arduino.cc/en/Main/Software

N.B: Vous pouvez utiliser une carte Raspberry et d'autres références pour les composants, il faut juste vérifier le montage selon chaque type de composant et le code Arduino aussi.

Les Différentes Parties Du Projet

FM0SSHMJGNWR74H.LARGE.jpg
59460374_343472036520752_358345992136818688_n.jpg
HC-05-Bluetooth-Module-Circuit Connections.png
60040523_397660244157988_39075745602994176_n.jpg
MQ135.jpg
sonde-capteur-temperature-etanche-ds18b20-1-metre-thermometre.jpg
59787247_330846517626375_527127594005430272_n.jpg
  • Partie 1 : Détection de température:

Une résistance est connectée en parallèle avec le Vcc et le Data du thermocouple. Le Data vers la pin 2 de la carte Arduino, et une résistance en série avec une diode L4 sont utilisées comme détection alarme.

  • Partie 2 : Détection du fumée et gaz

Le Data de détecteur "MQ135" est connecté à la pin A0 de la carte Arduino, et une résistance en série avec la diode L5 qui sont utilisée comme détection alarme.

  • Partie 3 :Serrure codée :

Les pins TX et RX du Bluetooth vont être branchées sur l'Arduino en inverse (TX de Bluetooth à RX d'Arduino et RX de Bluetooth à TX d'Arduino) afin de transmettre et recevoir correctement les données par le Bluetooth.

Et pour cela, on aura besoin d'une application Inventer pour envoyer un code en essayant d'ouvrir la porte. Dans notre cas, le déverrouillage de la porte sera l'allumage de la diode L6.

  • Partie4 : Allume/Éteindre les LEDs via une reconnaissance vocale :

La connexion du Bluetooth reste la même que la partie serrure codée, 3 diodes (L1 L2 et L3) sont utilisées pour allumer ou éteindre selon notre besoin, et pour cela on fait appel à notre app Inventor.

Pour le branchement des résistances sur la carte Arduino, est comme suivant:

Des résistances sont connectées en série avec les diodes afin de limiter le courant traversant ces dernières.

Les résistances sont connectées à la carte arduino comme suivant

Résistance 1 - Pin 43

Résistance 2 - Pin 45

Résistance 3 - Pin 47

Résistance 4 - Pin 49

Résistance 5 - Pin 33

.

Code Arduino

000000.jpg
111.jpg
222222.jpg

Avant de commencer à faire les le noyau du code il faut tout d'abord chercher les bonnes bibliothèques pour chaque composants dans le circuit, ça vous évitera d'écrire d’éviter les erreurs et de gagner de temps.

Le programme montré ci dessus, est un multiplexage des différents codes de chaque partie.

//Déclaration de la partie de détection de temperature
#include // Bibliothèque de thermocouple #include // Bibliothheque de thermocouple
#define ONE_WIRE_BUS 2               // Connection de Data au pin  digital 2
OneWire oneWire(ONE_WIRE_BUS);       //Décclaration de variable utlisable dans la bibliotheqe Onewire
DallasTemperature sensors(&oneWire);// Declaration de variable utlisable dans la bibliotheque DallasTemperature
//Decclaration des LEDs
int L1= 43; // pin 43 
int L2= 45;
int L3= 47;
int L4= 49;
int L6= 33;
//Déclaration de la partie gaz & fumée
int sensorValue;                   // Delaration de variable utlisable dans le prinipe programme de gaz et fumee
int  temp;
const int L5=51;
// Variable pour la reconnaissance vocale
int state = 0; 
void setup() {
//Initialisation et configuration des LEDs
 pinMode(L1, OUTPUT);
 pinMode(L2, OUTPUT);
 pinMode(L3, OUTPUT);
 pinMode(L4, OUTPUT);
 pinMode(L5, OUTPUT);
// Configuration de la partie temperature
 sensors.begin();                       // Activer une partie de sa bibliotheque¨que dans le programme 
 Serial.begin(9600);                     //Monitor serie
}
void loop() {
//  Programme d'execution de la partie reconnaissance vocale
 if(Serial.available() > 0){             // Est ce qu'on reit des infos donnes par le Bluetooth
 state = Serial.read();                  // Lire les données envoyees par le bluetooth et les implimenter dans la variable state
 }
 if (state == '1') {
 digitalWrite(L1, HIGH);                // LED 1 s'allume
 }
 else if (state == '2') {
 digitalWrite(L1, LOW);               // LED1 s'eteint
}
else if (state == '3') {
 digitalWrite(L2, HIGH);
}
else if (state == '4') {
 digitalWrite(L2, LOW);
}
else if (state == '5') {
 digitalWrite(L3, HIGH);
}
else if (state == '6') {
 digitalWrite(L3, LOW);
}
else if (state == '7') {
 digitalWrite(L1, HIGH);            // Allume toutes les LEDs
 digitalWrite(L2, HIGH);
 digitalWrite(L3, HIGH);
}
else if (state == '8') {
 digitalWrite(L1, LOW);             // Eteintre toutes les LEDs
 digitalWrite(L2, LOW);
 digitalWrite(L3, LOW);
}
//Programme d'execution de la partie Serrure codee
else if (state == '9') {
 digitalWrite(L6, HIGH);            //Déverouiller la porte
}
else if (state == '0') {
 digitalWrite(L6, LOW);             // Verrouiller la porte
}
//Programme d'execution de la partie temperarature
sensors.requestTemperatures();// Lire la temp
 temp = sensors.getTempCByIndex(0);
if (temp>=28){
digitalWrite(L4, HIGH); 
 }
 if (temp<28){
digitalWrite(L4, LOW); 
 } 
// Programme d'execution de la partie gaz & fumee
sensorValue = analogRead(0);            // Lire les donnees envoyees par le MQ135   
 if (sensorValue>=100){
digitalWrite(L5, HIGH); 
 }
 if (sensorValue<100){
digitalWrite(L5, LOW); 
 }
Serial.println(temp);
Serial.println(sensorValue);
delay(1000);     
                       
}

App Inventor

5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
10.jpg
11.jpg
12.jpg